如何在centos8自定义目录安装php7.3


Posted in PHP onNovember 28, 2019

1.目录结构

源码目录:/home/werben/pkgsrc/php-7.3.11

安装目录:/home/werben/application/php7.3.11

2.下载php源码

# 官网地址:https://www.php.net/downloads.php
wget https://www.php.net/distributions/php-7.3.11.tar.bz2

3.解压源码

tar --bzip -xvf php-7.3.11.tar.bz2 php-7.3.11

4.安装编译工具和库

yum install -y gcc gcc-c++
yum -y install libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel libicu-devel freetype-devel openldap-devel openldap openldap-devel

5.配置编译参数

#创建用户组和用户
groupadd www
useradd -g www www

#配置fpm的用户组和用户,以及安装其他扩展
./configure --prefix=/home/werben/application/php7.3.11 \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--enable-mysqlnd-compression-support \
--with-iconv-dir \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-mbstring \
--enable-intl \
--with-mcrypt \
--with-libmbfl \
--enable-ftp \
--with-gd \
--enable-gd-jis-conv \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--with-gettext \
--disable-fileinfo \
--enable-opcache \
--with-pear \
--enable-maintainer-zts \
--with-ldap=shared \
--without-gdbm


#上面的步骤可能会出现很多问题,如需要重新安装libzip,需要安装ldap,需要安装cmake

#重新安装libzip需要安装cmake,这里记录一下cmake的安装步骤,其他问题自己百度解决了,
#不记录了,中间自己去官网下了几个最新的cmake版本,编译过程中都出错了。
#发现宝塔用的是2.8.X的版本。这里我用的版本是3.5.2的版本

wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz
tar xvf cmake-3.5.2.tar.gz
cd cmake-3.5.2
./bootstrap --prefix=/usr/local/cmake
gmake
gmake install

cd /usr/local/cmake/bin
ln -s /usr/local/cmake/bin/cmake /usr/bin/
cmake --version

#接下来安装libzip
wget https://libzip.org/download/libzip-1.5.2.tar.gz
tar -zxf libzip-1.5.2.tar.gz
cd libzip-1.5.2
mkdir build
cd build 
cmake ..
make -j4
make install

6.安装make工具

#如果提示make命令找不到,则才需要安装make工具
yum -y install gcc automake autoconf libtool make

7.编译安装

make && make install

8.映射全局命令

ln -s /home/werben/application/php7.3.11/sbin/* /usr/local/sbin/
ln -s /home/werben/application/php7.3.11/bin/* /usr/local/bin/

9.配置php.ini

#查看php.ini的位置
php -r "phpinfo();" | grep 'php.ini'

#将源码中的php.ini*拷贝到php.ini的位置
cp /home/werben/pkgsrc/php-7.3.11/php.ini-* /home/werben/application/php7.3.11/lib/

#重命名php.ini文件
cp /home/werben/application/php7.3.11/lib/php.ini-production /home/werben/application/php7.3.11/lib/php.ini

10.安装目录结构

#/home/werben/pkgsrc/php-7.3.11安装目录的结构
├── bin
│  ├── pear
│  ├── peardev
│  ├── pecl
│  ├── phar -> phar.phar
│  ├── phar.phar
│  ├── php
│  ├── php-cgi
│  ├── php-config
│  ├── phpdbg
│  └── phpize
├── etc
│  ├── pear.conf
│  ├── php-fpm.conf.default
│  └── php-fpm.d
├── include
│  └── php
├── lib
│  ├── php
│  ├── php.ini
│  ├── php.ini-development
│  └── php.ini-production
├── php
│  ├── man
│  └── php
├── sbin
│  └── php-fpm
└── var
  ├── log
  └── run

ps:下面将展示如何将PHP与Nginx和Apache集成。

配置PHP以与Apache一起使用

如果你将Apache用作Web服务器,请使用以下命令重新启动httpd服务,可以使用:

$ sudo systemctl restart httpd

配置PHP以与Nginx一起使用

默认情况下,PHP FPM以用户apache的身份运行,为避免权限问题,我们将用户更改为nginx,为此,请编辑相关的行,即user = nginx和group = nginx:

$ sudo nano /etc/php-fpm.d/www.conf
...
user = nginx
..
group = nginx

确保/var/lib/php目录具有正确的所有权:

$ chown -R root:nginx /var/lib/php

完成后,重新启动PHP FPM服务:

$ sudo systemctl restart php-fpm

接下来,编辑Nginx主机指令,并添加以下位置块,以便Nginx可以处理PHP文件:

server {

 # . . . other code

 location ~ \.php$ {

try_files $uri =404;

fastcgi_pass unix:/run/php-fpm/www.sock;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

 }

}

为了使新配置生效,请重新启动Nginx服务:

$ sudo systemctl restart nginx

总结

以上所述是小编给大家介绍的如何在centos8自定义目录安装php7.3,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

PHP 相关文章推荐
用PHP连接Oracle数据库
Oct 09 PHP
ThinkPHP写第一个模块应用
Feb 20 PHP
php插入中文到sqlserver 2008里出现乱码的解决办法分享
Jul 19 PHP
基于PHP读取csv文件内容的详解
Jun 18 PHP
PHP callback函数使用方法和注意事项
Jan 23 PHP
PHP性能分析工具XHProf安装使用教程
May 13 PHP
php使用escapeshellarg时中文被过滤的解决方法
Jul 10 PHP
php根据数据id自动生成编号的实现方法
Oct 16 PHP
利用Homestead快速运行一个Laravel项目的方法详解
Nov 14 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
Feb 06 PHP
php获取微信基础接口凭证Access_token
Aug 23 PHP
PHP+Apache实现二级域名之间共享cookie的方法
Jul 24 PHP
PHP的new static和new self的区别与使用
Nov 27 #PHP
Laravel 微信小程序后端实现用户登录的示例代码
Nov 26 #PHP
Laravel 微信小程序后端搭建步骤详解
Nov 26 #PHP
php 使用expat方式解析xml文件操作示例
Nov 26 #PHP
thinkphp框架类库扩展操作示例
Nov 26 #PHP
如何在Laravel5.8中正确地应用Repository设计模式
Nov 26 #PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
Nov 26 #PHP
You might like
php的计数器程序
2006/10/09 PHP
php实现的太平洋时间和北京时间互转的自定义函数分享
2014/08/19 PHP
深入解析PHP的Laravel框架中的event事件操作
2016/03/21 PHP
php文件上传、下载和删除示例
2020/08/28 PHP
php实现socket推送技术的示例
2017/12/20 PHP
脚本吧 - 幻宇工作室用到js,超强推荐share.js
2006/12/23 Javascript
jQuery 处理网页内容的实现代码
2010/02/15 Javascript
引用 js在IE与FF之间的区别详细解析
2013/11/20 Javascript
由ReactJS的Hello world说开来
2015/07/02 Javascript
jquery实现隐藏在左侧的弹性弹出菜单效果
2015/09/18 Javascript
浅谈Webpack打包优化技巧
2018/06/12 Javascript
JavaScript设计模式之单例模式简单实例教程
2018/07/02 Javascript
vue.js编译时给生成的文件增加版本号
2018/09/17 Javascript
js验证身份证号码记录的方法
2019/04/26 Javascript
vue计算属性+vue中class与style绑定(推荐)
2020/03/30 Javascript
[05:08]顺网杯ISS-DOTA2赛歌 少女偶像Lunar青春演绎
2013/12/05 DOTA
python 从远程服务器下载日志文件的程序
2013/02/10 Python
python实现apahce网站日志分析示例
2014/04/02 Python
详解Python2.x中对Unicode编码的使用
2015/04/03 Python
使用python爬取B站千万级数据
2018/06/08 Python
解决Python安装后pip不能用的问题
2018/06/12 Python
Python 存储字符串时节省空间的方法
2019/04/23 Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
2019/08/12 Python
PyCharm 无法 import pandas 程序卡住的解决方式
2020/03/09 Python
numpy实现RNN原理实现
2021/03/02 Python
Pharmacy Online中文直邮网站:澳洲大型药房
2020/06/27 全球购物
会计专业自荐信范文
2013/12/02 职场文书
园林资料员岗位职责
2013/12/30 职场文书
教师节促销活动方案
2014/02/14 职场文书
社团个人总结范文
2015/03/05 职场文书
永不妥协观后感
2015/06/10 职场文书
六一儿童节新闻稿
2015/07/17 职场文书
欢送领导祝酒词
2015/08/12 职场文书
教师理论学习心得体会
2016/01/21 职场文书
学法用法心得体会(2016推荐篇)
2016/01/21 职场文书
tensorboard 可视化之localhost:6006不显示的解决方案
2021/05/22 Python