1、去PHP官网下载PHP7.2版本
wget http://cn2.php.net/distributions/php-7.2.12.tar.gz
- 如果执行命令后提示:-bash: wget: command not found ,用 yum install wget 安装即可
2、解压 **.tar.gz 安装包
tar -xzvf php-7.2.12.tar.gz
3、如果安装中提示缺少各种依赖包的话,请直接安装下面的所有包:
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
4、进入PHP文件夹编译
./configure --prefix=/usr/local/php7.2 --with-config-file-path=/usr/local/php7.2/etc --enable-mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-cli --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --with-gettext --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --with-iconv --enable-zip --enable-soap --enable-short-tags --enable-static --with-xsl --with-pear --with-fpm-user=www --with-fpm-group=www --enable-opcache=no --enable-maintainer-zts --enable-ftp
5、编译完成之后,执行安装命令:
make && make install
---------------------
至此已经安装完毕,接下来有需要的可以配置PHP,步骤如下:
6、在编译的源码包中,找到 php.ini-production,复制到/usr/local/php7.2下,并改名为php.ini
[root@localhost php-7.2.12]# cp php.ini-production /usr/local/php7.2/etc/php.ini
如果你不确定php.ini的目录位置的话 可以用如下查看
[root@localhost ~]# /usr/local/php7.2/bin/php --ini Configuration File (php.ini) Path: /usr/local/php7.2/etc
7、复制php-fpm启动脚本
[root@localhost php-7.2.12]# cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm [root@localhost php-7.2.12]# chmod +x /etc/init.d/php-fpm
8、加入开机启动项
[root@localhost ~]# cd /etc/init.d/ [root@localhost init.d]# chkconfig --add php-fpm
9、给PHP做个软链接便于使用
[root@localhost php-7.2.12]# ln -s /usr/local/php7.2/bin/php /usr/bin/php
或者是直接将bin目录加入PATH环境变量中,如果你有多个版本还是建议软链接的方式好点。
[root@localhost php-7.2.12]# export PATH=/usr/local/php7.2/bin:$PATH
OK,完毕!
--------------------
常见错误:
问题1:
今天编译时出现xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution这个问题,没安装libxslt libxslt-devel软件包
解决方法:
yum -y install libxslt libxslt-devel
问题2:Nothing matches the include pattern
[root@mycloud etc]# service php-fpm start Starting php-fpm [12-Dec-2020 11:13:05] WARNING: Nothing matches the include pattern '/usr/local/php7.2/etc/php-fpm.d/*.conf' from /usr/local/php7.2/etc/php-fpm.conf at line 125. [12-Dec-2020 11:13:05] ERROR: No pool defined. at least one pool section must be specified in config file [12-Dec-2020 11:13:05] ERROR: failed to post process the configuration [12-Dec-2020 11:13:05] ERROR: FPM initialization failed failed [root@mycloud etc]# [root@mycloud etc]# [root@mycloud etc]# [root@mycloud etc]# pwd /usr/local/php7.2/etc [root@mycloud etc]# cd php-fpm.d/ [root@mycloud php-fpm.d]# ll total 20 -rw-r--r-- 1 root root 18866 Dec 12 11:00 www.conf.default [root@mycloud php-fpm.d]# cp www.conf.default www.conf [root@mycloud php-fpm.d]# ll total 40 -rw-r--r-- 1 root root 18866 Dec 12 11:14 www.conf -rw-r--r-- 1 root root 18866 Dec 12 11:00 www.conf.default
[root@mycloud php-fpm.d]# /usr/local/php7.2/sbin/php-fpm -t
[12-Dec-2020 11:14:42] NOTICE: configuration file /usr/local/php7.2/etc/php-fpm.conf test is successful
问题3:ERROR: [pool www] cannot get uid for user 'www'
vi www.conf
修改用户为当前系统用户名或者创建 www用户