首先从PHP官网下载最新版本的php(目前最新release版本为7.2RC4),官网下载地址为:https://downloads.php.net/~remi/php-7.2.0RC4.tar.gz
依次命令(一行为一句)为:
cd ~
wget https://downloads.php.net/~remi/php-7.2.0RC4.tar.gz
tar -xvf php-7.2.0RC4.tar.gz
cd php-7.2.0RC4
此时已经解压完毕,并已经cd进入.PHP7.2源代码根目录。编译PHP之前我们需要yum安装一些必备的拓展,php主要以apache模块和php-fpm两种方式运行,将根据编译参数编译出对于的apache模块和php-fpm,此处我们编译以php-fpm方式运行,编译之前先安装必须的拓展
yum命令如下:
yum install -y gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libpng libpng-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses curl openssl-devel gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel readline-devel libxslt-devel expat-devel xmlrpc-c xmlrpc-c-devel
安装完毕必须的拓展,此时准备编译工作已经完毕,使用编译参数进行编译
./configure \
--prefix=/usr/local/php \
--with-config-file-path=/etc/php \
--with-config-file-scan-dir=/etc/php/conf.d \
--enable-fpm \
--with-fpm-user=web \
--with-fpm-group=www \
--enable-soap \
--with-openssl \
--with-openssl-dir \
--with-pcre-regex \
--with-zlib \
--with-iconv \
--with-bz2 \
--enable-calendar \
--with-curl \
--with-cdb \
--enable-dom \
--enable-exif \
--with-pcre-dir \
--enable-ftp \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-gettext \
--with-gmp \
--with-mhash \
--enable-mbstring \
--with-libmbfl \
--with-onig \
--enable-pdo \
--with-pdo-mysql \
--with-zlib-dir \
--with-readline \
--enable-session \
--enable-shmop \
--enable-simplexml \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-libxml-dir \
--with-xsl \
--enable-zip \
--enable-mysqlnd \
--with-mysqli \
--without-pear
如果不出意外没有看到报错那么编译参数配置完毕,
make 后依次 make install 完成基本php编译安装。值得说明的是,此时php没有软连接至系统path目录,那么直接在命令行中无法使用php 命令,需自行软连接即可。安装完毕,需配置一下nginx和php-fpm。至此PHP安装完毕,但是仍需配置之。
首先切换回到php源代码目录,将php-fpm注册到系统服务,后修改php-fpm配置文件,
将php.ini配置到/etc/php/目录
cd ~/php-7.2.0RC4/sapi/fpm
mv php-fpm.service /usr/lib/systemd/system/
cd ~/php-7.2.0RC4
mv php.ini-development /etc/php/php.ini
mkdir /etc/php/conf.d
此时可以使用systemctl 或service对php-fpm进行启动重启,但不出意外会失败,因为默认编译的php-fpm配置文件没有被修改.
cd /usr/local/php/etc
mv php-fpm.conf.default php-fpm.conf
cd php-fpm.d
mv www.conf.default www.conf
此时修改配置文件完毕,但仍然无法启动服务,因为php-fpm用户和用户组不存在,创建之
groupadd www
useradd -M -g www -s /sbin/nologin web
systemctl start php-fpm
ps -e|grep php-fpm
创建组www以及不允许登录并不创建用户目录的用户web.并启动,ps进程中可以看到php-fpm进程。
修改nginx 将php文件请求指向php-fpm监听的端口
location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
访问。大功告成
网友评论