本文章以php7.1.31和php7.3.9版本为例进行安装
php7.1.31安装
1.安装依赖包
1 | yum install -y gcc gcc-c++ make zlib zlib-devel pcre pcre-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers |
2.下载安装包
1 | cd /usr/local |
3.解压
1 | tar -zxvf php-7.1.31.tar.gz |
4.检查当前的环境是否满足要安装软件的依赖关系
在php-7.1.31里面执行 预编译
1 | ./configure --prefix=/usr/local/php71 --with-config-file-path=/usr/local/php71/etc --with-config-file-scan-dir=/usr/local/php71/etc --enable-mbstring --enable-ftp --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --without-pear --enable-sockets --with-freetype-dir=/usr --with-zlib --with-libxml-dir=/usr --with-xmlrpc --enable-zip --enable-fpm --enable-xml --enable-sockets --with-gd --with-zlib --with-iconv --enable-zip --with-freetype-dir=/usr/lib/ --enable-soap --enable-pcntl --enable-cli --with-curl --with-openssl |
特别注意:
–prefix=/usr/local/php71是编译后的文件路径,如果需要安装多个php版本,最好是区分出来,如果不区分,后续安装其他版本的时候,会覆盖掉之前的版本,导致/usr/local/下面的php文件夹冲突。
–with-config-file-path=/usr/local/php71/etc预编译php配置文件php.ini位置,建议是放在该路径下,否则会出现加载不了php.ini的情况
–with-config-file-scan-dir=/usr/local/php71/etc 预编译扫描php的配置文件路径
5.编译安装
1 | make && make install |
注意编译完成后的错误提示,没有则编译完成。编译完成之后会在 /usr/local/下生成一个php71的文件夹,里面就是php7.1.31的执行文件夹。
6.在之前编译的源码包中,找到 php.ini-production,复制到/usr/local/php71下,并改名为php.ini:
1 | cd /usr/local/php7.1.31 |
将下载文件夹中的php配置文件拷贝到执行文件夹下面
7.[可选项] 设置让PHP错误信息打印在页面上
1 | vi /usr/local/php71/etc/php.ini |
编辑php配置文件php.ini,搜索并设置dislay_errors=on。
8.复制启动脚本
1 | cd /usr/local/php7.1.31 |
将php7.1.31下的启动脚本拷贝到/etc/init.d下面,赋予可执行权限,注意区分版本
9.修改php-fpm配置文件
1 | cd /usr/local/php71/etc |
去掉pid=run/php-fpm.pid前面的分号
特别注意:
将pid=改成pid=/usr/local/php71/var/run/php-fpm.pid,不能直接去掉分号完事,后续在启动的时候会报错,同时搜索并修改error_log=/usr/local/php71/var/log/php-fpm.log,同样不改后面启动会报错
1 | /usr/local/php71/etc/php-fpm.d |
php-fpm 基本命令
1 | $ /etc/init.d/php-fpm start #php-fpm启动命令 |
10.开机自启动
1 | vi /etc/rc.local |
11.设置别名
1 | vim ~/.bashrc |
12.更改侦听端口(127.0.0.1:9000 为默认的)
1 | cd /usr/local/php71/etc/php-fpm.d |
改成自己需要设置的端口即可
13.校验&&检查
1 | ps -ef | grep php 或者 ps -A | grep -i php #查看是否已经成功启动PHP |
php7.3.9安装
1.下载安装包
1 | cd /usr/local |
2.解压
1 | tar -zxvf php-7.3.9.tar.gz |
3.检查当前的环境是否满足要安装软件的依赖关系
在php-7.3.9里面执行
1 | ./configure --prefix=/usr/local/php73 --with-config-file-path=/usr/local/php73/etc --with-config-file-scan-dir=/usr/local/php73/etc --enable-mbstring --enable-ftp --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --without-pear --enable-sockets --with-freetype-dir=/usr --with-zlib --with-libxml-dir=/usr --with-xmlrpc --enable-zip --enable-fpm --enable-xml --enable-sockets --with-gd --with-zlib --with-iconv --enable-zip --with-freetype-dir=/usr/lib/ --enable-soap --enable-pcntl --enable-cli --with-curl --with-openssl |
特别注意:
上面需要改成–prefix=/usr/local/php73 –with-config-file-path=/usr/local/php73/etc这样在编译的时候才会执行编译到php73里面去,与之前的7.1.31独立开来
4.编译安装
1 | make && make install |
注意编译完成后的错误提示,没有则编译完成。编译完成之后会在 /usr/local/下生成一个php73的文件夹,里面就是php7.3.9的执行文件夹。
然后重复上面安装7.1.31的第6个步骤持续进行
特别注意:
多个版本的php编译后的文件夹一定要注意区分,多个版本需要改不同的端口
特别注意:
最后检查php每个版本对应的php加载的配置文件是否生效
如果你的结果与我上面一致,恭喜你!已经完全安装完成!
最后的目录结构为:
启动状态:
其它
查看php安装时的预编译
1 | php71 -i | grep config |