ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 安装PHP7.3 参考文档: [php7源码编译安装](https://www.cnblogs.com/huanhang/p/8250992.html) [php7源码编译安装](https://blog.csdn.net/xiao_zhui/article/details/72556781) [详细介绍CentOS7编译安装PHP7的示例代码](http://www.php.cn/php-weizijiaocheng-359129.html) ### 安装基础软件包 系统启动后,我们测试一下网络: 用root账号登录CentOS,输入命令: :-: ![测试连接](https://box.kancloud.cn/7ba809a422041f5cd0f828021f595331_636x152.jpg) OK,网络正常,按Ctrl + C结束ping命令。 #### 开启SSH登录 ~~~ 修改/etc/ssh/sshd-config文件. 将其中的PermitRootLogin no修改为yes PubkeyAuthentication yes修改为no AuthorizedKeysFile .ssh/authorized_keys前面加上#屏蔽掉, PasswordAuthentication no修改为yes就可以了。 ~~~ 下面开始安装需要的软件。 #### 让yum跑的快一点 ~~~ [root@localhost ~]# yum makecache fast ~~~ #### 安装net-tools ~~~ [root@localhost ~]# yum -y install net-tools ~~~ 安装完成后,执行 ~~~ [root@localhost ~]# ifconfig ~~~ OK,可以看到网络配置情况了 #### 安装Vim和wget ~~~ [root@localhost ~]# yum -y install vim [root@localhost ~]# yum -y install wget ~~~ 这个时候我们可以关机,做一个给系统拍一个快照 ~~~ [root@localhost ~]# shutdown now ~~~ 关机后,选择VMWare Workstations的菜单“虚拟机”-->“快照”-->“拍摄快照”,起个名字保存即可。如果以后我们想有一个全新的环境,可以从这个快照启动。 然后重新启动虚拟机,用root账号登录,我们开始安装PHP 7.3 ### 安装PHP 我们选择从Github下载PHP源码: PHP项目地址是`https://github.com/php/php-src` 我们要先安装 Git客户端 ~~~ [root@localhost ~]# yum -y install git ~~~ 创建一个目录保存我们的源码包 ~~~ [root@localhost ~]# mkdir packages [root@localhost ~]# cd packages ~~~ 通过Git下载PHP源码 ~~~ [root@localhost packages]# git clone https://github.com/php/php-src.git ~~~ 这个包比较大,要下载一阵子。出去抽支烟回来,OK,下载完了。 稍等,我拍个快照先…… 好了,拍完了,我们要编译PHP了。编译PHP需要依赖挺多东西的,我们先安装起来: ~~~ [root@localhost packages]# yum -y install libxml2 libxml2-devel openssl openssl-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel pcre pcre-devel libxslt libxslt-devel bzip2 bzip2-devel autoconf automake libtool bison [root@localhost packages]# wget https://nih.at/libzip/libzip-1.2.0.tar.gz [root@localhost packages]# tar zxf libzip-1.2.0.tar.gz [root@localhost packages]# cd libzip-1.2.0 [root@localhost libzip-1.2.0]# ./configure [root@localhost libzip-1.2.0]# make [root@localhost libzip-1.2.0]# make install [root@localhost libzip-1.2.0]# echo '/usr/local/lib64 /usr/local/lib /usr/lib /usr/lib64'>>/etc/ld.so.conf&&ldconfig -v [root@localhost libzip-1.2.0]# cp /usr/local/lib/libzip/include/zipconf.h /usr/local/include/zipconf.h ~~~ OK,万事俱备了,开始编译PHP ~~~ [root@localhost libzip-1.2.0]# cd ../php-src [root@localhost php-src]# ~~~ 看一看PHP源码里的版本分支 :-: ![php_git版本库](https://box.kancloud.cn/3bd76d9ba6d6f365b9d5375473184ed2_327x681.jpg) 好吧,好多,你想要哪个?我想要PHP-7.3,我们检出它 ~~~ [root@localhost php-src]# git checkout PHP-7.3 ~~~ 开始编译吧 ~~~ [root@localhost php-src]# ./buildconf [root@localhost php-src]# ./configure --prefix=/usr/local/php --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip [root@localhost php-src]# make ~~~ 很久很久以后……终于make完了,如果你看到最后输出的信息是: ~~~ Build complete. Dont't forget to run 'make test'. ~~~ 恭喜你,一次成功了!接下来我们安装编译好的PHP ~~~ [root@localhost php-src]# make install ~~~ PHP默认安装在`/usr/local/php`下。如果要改变这个安装路径。需要修改编译选项中的`--prefix=/usr/local/php`。 更多的编译选项可以使用命令`./configure --help`查看 另外注意一个地方就是php.ini配置文件的位置可以在编译前配置参数中设置,编译参数可以写成:`--with-config-file-path=/usr/local/php` ,这样的话php就会去指定的目录下读取php.ini配置文件,如果不加这个参数默认位置就是php安装目录下的lib目录,具体也可以在phpinfo()输出界面查看,如果php.ini放到其他位置,php读取不到,那么所有的配置修改后都是不生效的,这点要注意。 接下来把php.ini拷贝到指定位置。我们使用PHP提供的php.ini-development(在php-src目录下)作为开发服务器的php.ini文件: ~~~ [root@localhost php-src]# cp php.ini-development /usr/local/php/lib/php.ini [root@localhost php-src]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf [root@localhost php-src]# ln -s /usr/local/php/sbin/php-fpm /usr/local/bin ~~~ 然后设置php.ini,使用: `vim` 打开php配置文件` /usr/local/php/lib/php.ini`,找到cgi.fix_pathinfo配置项,这一项默认被注释并且值为1,根据官方文档的说明,这里为了当文件不存在时,阻止Nginx将请求发送到后端的PHP-FPM模块,从而避免恶意脚本注入的攻击,所以此项应该去掉注释并设置为0。 现在需要配置PHP运行使用的账号 ~~~ [root@localhost php-src]# groupadd www [root@localhost php-src]# useradd -g www www ~~~ 查看php-fpm.conf文件配置是否正确: ~~~ [root@localhost php-src]# vim /usr/local/php/etc/php-fpm.conf ~~~ 文件最后一行是要包含php-fpm.d目录下的所有.conf文件,查看路径配置是否正确。如果编译时添加--prefix选项,这里的路径会配置为正确的路径,否则会是一个NONE字样,修改为正确路径即可。 :-: ![错误的路径](https://box.kancloud.cn/10a50742640137d0d5e13bfa5de06c57_437x163.png) 把上图中错误的路径修改为下图正确的路径即可 ![修改为正确的路径](https://box.kancloud.cn/c974b74c4a53fae150dd7d6b48ce6fe4_431x123.png) 默认情况下php-fpm.d下有一个名为`www.conf.defalut`的配置用户的文件,复制一个新文件并且打开: ~~~ [root@localhost php-src]# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf [root@localhost php-src]# vim /usr/local/php/etc/php-fpm.d/www.conf ~~~ 找到文件中的下面部分: :-: ![](https://box.kancloud.cn/2daace24b1401e84eff91b14c954e4c0_670x92.jpg) 修改为我们新增的用户www和组www: :-: ![](https://box.kancloud.cn/7298e807547ffabdb60d0cbaca153891_651x99.jpg) 接下来我们配置php-fpm服务。 用`vim`创建一个文件 `/etc/init.d/php-fpm` ~~~ [root@localhost php-src]# vim /etc/init.d/php-fpm ~~~ 粘贴文件内容如下: ~~~ #!/bin/sh # chkconfig: 2345 15 95 # description: PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI implementation \ # with some additional features useful for sites of any size, especially busier sites. # DateTime: 2016-09-20 # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ] && exit 0 phpfpm="/usr/local/php/sbin/php-fpm" prog=$(basename ${phpfpm}) lockfile=/var/lock/subsys/phpfpm start() { [ -x ${phpfpm} ] || exit 5 echo -n $"Starting $prog: " daemon ${phpfpm} retval=$? echo [ $retval -eq 0 ] && touch $lockfile return $retval } stop() { echo -n $"Stopping $prog: " killproc $prog -QUIT retval=$? echo [ $retval -eq 0 ] && rm -f $lockfile return $retval } restart() { configtest || return $? stop start } reload() { configtest || return $? echo -n $"Reloading $prog: " killproc ${phpfpm} -HUP RETVAL=$? echo } force_reload() { restart } configtest() { ${phpfpm} -t } rh_status() { status $prog } rh_status_q() { rh_status >/dev/null 2>&1 } case "$1" in start) rh_status_q && exit 0 $1 ;; stop) rh_status_q || exit 0 $1 ;; restart|configtest) $1 ;; reload) rh_status_q || exit 7 $1 ;; status) rh_status ;; *) echo $"Usage: $0 {start|stop|status|restart|reload|configtest}" exit 2 esac ~~~ 注意修改`phpfpm="/usr/local/php/sbin/php-fpm"`为你的真实路径。 保存退出。 把php-fpm添加到服务里: ~~~ [root@localhost php-src]# chkconfig --add php-fpm [root@localhost php-src]# chkconfig php-fpm on [root@localhost php-src]# chmod a+wrx /etc/init.d/php-fpm [root@localhost php-src]# service php-fpm start [root@localhost php-src]# service php-fpm status ~~~ 现在php-fpm服务做好了,会和系统一起启动。 接下来我们把php路径添加到环境变量里。编辑`/etc/profile`文件: ~~~ [root@localhost php-src]# vim /etc/profile ~~~ 在文件末尾加入如下几行: ~~~ PHP_HOME=/usr/local/php/bin PATH=$PATH:$PHP_HOME export PHP_HOME PATH ~~~ 然后加载新的配置: ~~~ [root@localhost php-src]# source /etc/profile ~~~ 现在可以在任何路径下执行php命令了。看看成果吧: 命令行执行: :-: ![](https://box.kancloud.cn/fcae610f0bdf4792fa90bc1606a24706_534x70.jpg) php-fpm服务 :-: ![](https://box.kancloud.cn/24425ebf0c950e673459ab92e0c41d03_642x235.jpg) PHP 7.3编译安装结束 现在,我们关闭虚拟机,拍摄快照,继续下面的安装