Centos7.X下源码安装php7.2以及让systemd 管理php-fpm服务

1.安装php

1.下载源码包

wget -c http://cn2.php.net/distributions/php-7.2.4.tar.gz

2.解压源码包

tar -xzvf php-7.2.4.tar.gz

3.安装依赖

yum install -y libxml2*
yum install -y openssl*
yum install -y libcurl*
yum install -y libjpeg*
yum install -y libpng*
yum install -y freetype*
yum install -y libmcrypt*

4.指定安装目录和模块

//在php-7.2.4目录下进行
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysqli --with-pdo-mysql --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-simplexml --enable-xml --disable-rpath --enable-bcmath --enable-soap --enable-zip --with-curl --enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-mbstring --enable-sockets --with-gd --with-openssl --with-mhash --enable-opcache --disable-fileinfo

配置完成后会提示: Thank you for using PHP.
Centos7.X下源码安装php7.2以及让systemd 管理php-fpm服务_第1张图片
5.编译和安装

make & make install

6.添加配置文件

//进入/usr/local/php目录
cp php.ini-production /usr/local/php/etc/php.ini      
//进入/usr/local/php/etc目录
cp php-fpm.conf.default php-fpm.conf
//进入/usr/local/php/etc/php-fpm.d目录
cp www.conf.default www.conf

7.启动

//进入/usr/local/php/sbin
./php-fpm

8.提示
如果报错 [pool www] cannot get uid for user ‘www’,这是因为没有将www加入linux用户组和用户中,通过如下命令加入即可

groupadd www
useradd -g www www

打开/etc/passwd可以看到www已经加入进去
在这里插入图片描述

2.将php-fpm配置成systemctl服务

vim /usr/local/php/etc/php-fpm.conf
//修改如下内容
pid = /var/run/php-fpm.pid

新建 php-fpm 服务文件

vim /usr/lib/systemd/system/php-fpm.service
//内容如下
[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target

[Service]
Type=forking
PIDFile=/var/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm
ExecReload=/bin/kill -USR2 $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

重新加载systemctll配置

systemctl daemon-reload

启动

systemctl start php-fpm

配置nginx让其支持php

一、如果通过yum命令安装的php,则按照以下方式进行
yum命令方式安装的nginx目录结构如下,在conf.d目录下,只有一个default.conf配置文件
Centos7.X下源码安装php7.2以及让systemd 管理php-fpm服务_第2张图片
打开default.conf,把一下部分的注释去掉,并且把红色框中的/scripts修改为nginx的html目录(在这之前,确定已安装了php-fpm)
Centos7.X下源码安装php7.2以及让systemd 管理php-fpm服务_第3张图片
二、如果通过源码安装的php,则按照以下方式进行
目录结构如下
Centos7.X下源码安装php7.2以及让systemd 管理php-fpm服务_第4张图片
Nginx 与 php-fpm 通信过程是通过 nginx 的 fastcgi 模块来处理的,即 fastcgi 模块将来自客户端的关于 php 文件的请求转发给 php-fpm 来处理。既然是转发请求,那么必须要遵循一定的协议,也就是 fastcgi.conf 所规定的协议。
关于Nginx和php-fpm请参考 https://segmentfault.com/a/1190000007322358
打开nginx.conf修改配置文件,添加如下内容

 location ~ \.php$ {
            include /usr/local/openresty/nginx/conf/fastcgi.conf;
            fastcgi_intercept_errors on;
            fastcgi_pass 127.0.0.1:9000;
        }

重启nginx
在html目录下放置测试文件phpinfo.php


在浏览器上访问
Centos7.X下源码安装php7.2以及让systemd 管理php-fpm服务_第5张图片
将nginx和php加入环境变量
vim /etc/profile

PATH=$PATH:/usr/local/openresty/nginx/sbin
PATH=$PATH:/usr/local/php/bin

刷新

source /etc/profile

你可能感兴趣的:(PHP)