CentOS7 源码编译安装PHP7.2

原创文章 作者:月光光 2017年12月27日 13:40helloweba.net 标签:PHP  CentOS 

PHP是一种创建动态交互性站点的强有力的服务器端脚本语言,它是免费高效开源的。本文介绍了在CentOS7下源码编译安装PHP7.2,笔者亲自动手安装将安装步骤记录下来,分享给大家。

准备安装依赖

首先我们需要准备安装所需的依赖包。


yum -y install libxml2 libxml2-devel
yum -y install curl-devel libjpeg-devel libpng-devel freetype-devel
yum -y install libicu-devel
yum -y install libxslt-devel

编译安装

目前PHP最新稳定版是7.2.0,我们可以到php官网上下载安装包:http://php.net/get/php-7.2.0.tar.gz/from/a/mirror


tar -zxvf php-7.2.0.tar.gz
cd php-7.2.0

./configure这一步非常重要,启用需要的扩展模块,并指定php的安装目录等。配置和编译的时间稍长,一般10分钟左右,请耐心等待。


./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir=/usr/local/freetype --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-mbregex --enable-mbstring --enable-intl --enable-pcntl --enable-ftp --with-gd --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --disable-fileinfo --enable-opcache --with-xsl

make
make install

配置

这个时候我们还在解压后的源码目录,我们把php.ini拷贝到安装目录下的配置文件目录。


cp php.ini-production /usr/local/php/etc/php.ini

将php-fpm控制脚本加入到/etc/init.d/下,并给予可执行权限。


cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm

修改配置文件。


cd /usr/local/php/etc
vim php-fpm.conf

新建php-fpm.conf文件,加入以下内容。


[global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log = /usr/local/php/var/log/php-fpm.log
log_level = notice

[www]
listen = /tmp/php-cgi.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 20
pm.start_servers = 10
pm.min_spare_servers = 10
pm.max_spare_servers = 20
request_terminate_timeout = 100
request_slowlog_timeout = 0
slowlog = var/log/slow.log

保存即可,具体各项参数的意义我们会在接下来的文章中专门讲解。

启动和停止

PHP的启动、停止和重启通过使用php-fpm命令如下:


/etc/init.d/php-fpm start  #启动
/etc/init.d/php-fpm stop  #停止
/etc/init.d/php-fpm restart  #重启
# 开机启动
chkconfig php-fpm on

添加环境变量

安装好php后,我们要想在系统中可以直接使用像php -v这样的命令的话,需要将php加入到环境变量中。


echo 'PATH=$PATH:/usr/local/php/bin' >> /etc/profile
export PATH
source /etc/profile

然后运行php -v就可看到php的版本信息了。


PHP 7.2.0 (cli) (built: Dec 23 2017 01:00:23) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2017 Zend Technologies

让Nginx支持PHP

回到我们之前的文章:CentOS7使用源码编译安装Nginx。Nginx默认不支持PHP,需要配置好PHP引擎相关设置才行。这里我们先直接修改Nginx.conf配置文件。


vim /usr/local/nginx/conf/nginx.conf

在server模块添加如下配置:


location ~ [^/]\.php(/|$)
{
    try_files $uri =404;
    fastcgi_pass  unix:/tmp/php-cgi.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
}

保存好后,重新启动Nginx使配置生效:


/usr/local/nginx/sbin/nginx -s reload

然后在站点目录下,新建文件t.php,添加测试php内容:


<php
phpinfo();

浏览器打开网页,如果看到以下内容,那么恭喜你php安装成功!

接下来我们会有文章介绍php配置优化以及PHP扩展模块的安装。

声明:本文为原创文章,helloweba.net和作者拥有版权,如需转载,请注明来源于helloweba.net并保留原文链接:https://www.helloweba.net/server/498.html

2条评论

  • 跨省少年_1

    这里建议楼主配置改成tcp的,我特地去网上筛选了下,争议颇多,但是就选择来看,tcp在线上比sock用的多,也比较稳定

  • 月光光_1

    启动php-fpm的时候报错:ERROR: [pool www] cannot get uid for user 'www'
    [30-May-2018 22:13:55] ERROR: FPM initialization failed
    需要添加www系统用户和组:
    groupadd www
    useradd -s /sbin/nologin -g www www