Write the Code. Change the World.

6月 21

下载

官方地址: http://php.net/downloads.php

Nginx官网提供了三个类型的版本
1. Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版
2. Stable version:最新稳定版,生产环境上建议使用的版本
3. Legacy versions:遗留的老版本的稳定版

打开下载页面,选择适合的版本(当前最新版本是7.1.4),进入镜像页面。找到对应的镜像地址。进入存储目录,开始下载。

cd  /usr/local/src/php
wget  http://cn2.php.net/distributions/php-7.1.4.tar.gz
tar -xzvf php-7.1.4.tar.gz
cd php-7.1.4

下载完成后,用tar解压。

准备编译环境

在编译安装php之前,需要安装一些依赖包。

yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel bzip2 bzip2-devel libzip-devel libxslt-devel

yum跳过已经安装过的依赖包。

开始安装

php-fpm的用户组和nginx一致,都为nginx

  1. 编译参数配置。
./configure --prefix=/alidata/service/php \
 --with-config-file-path=/alidata/service/php/etc \
 --with-config-file-scan-dir=/alidata/service/php/etc/php.d \
 --enable-mysqlnd \
 --with-mysqli \
 --with-pdo-mysql \
 --enable-fpm \
 --with-fpm-user=nginx\
 --with-fpm-group=nginx\
 --with-gd \
 --with-iconv \
 --with-zlib \
 --enable-xml \
 --enable-shmop \
 --enable-sysvsem \
 --enable-inline-optimization \
 --enable-mbregex \
 --enable-mbstring \
 --enable-ftp \
 --with-openssl \
 --enable-pcntl \
 --enable-sockets \
 --with-xmlrpc \
 --enable-zip \
 --enable-soap \
 --without-pear \
 --with-gettext \
 --enable-session \
 --with-curl \
 --with-jpeg-dir \
 --with-png-dir \
 --with-zlib-dir \
 --enable-exif \
 --with-freetype-dir \
 --with-iconv-dir \
 --with-kerberos \
 --with-libdir=lib64 \
 --with-libxml-dir \
 --with-pcre-regex \
 --with-pdo-sqlite \
 --with-pear \
 --with-png-dir \
 --with-jpeg-dir \
 --with-xsl \
 --with-bz2 \
 --with-mhash \
 --enable-bcmath \
 --enable-libxml \
 --enable-sysvshm \
 --enable-opcache

参数配置成功后的画面。如果中间有报错,请先解决报错。一般都是依赖包没有引起的。

遇到

system libzip must be upgraded to version >= 0.11

请参考: https://www.cnblogs.com/itbsl/p/10208926.html

安装最新版本的cmake

yum  -y remove libzip-devel

如果报 configure: WARNING: unrecognized options: --with-mcrypt, --enable-gd-native-ttf 这个警告,是php7.1之后,去掉了这些扩展。详情,请看这个博客。
https://blog.csdn.net/towtotow/article/details/78956086

  1. 编译安装。
make && make install

安装完成之后,可以通过命令 make test 检查一下。

  1. 配置环境变量。

在终端中,任意位置都能使用的命令,需要配置环境变量。就如在win下一样。liunx下,只要编辑 /etc/profile文件并source就可以。

vi /etc/profile

在末尾追加

PATH=$PATH:/alidata/service/php/bin
export PATH

保存,然后source。

source /etc/profile
echo $PATH  #看到配置的环境变量了
php -v #查看php的版本信息
  1. 配置文件。
    刚安装完成,你并不会发现php-fpm.confwww.conf以及php.ini文件。这几个重要文件,其实都有,前边两个文件只是将名字后边加了.default。第三个文件在源码包的根目录里,而且有两个,一个是php.ini-development,另一个是php.ini-production。既然找到了对应文件的位置,只需要复制一份过来就可以了。注意复制过来的路径(-with-config-file-path对应)和名字。

先来一个插曲,怎么找文件。找英语就是find。在这里也用find。

find  /  -name  php.ini  #这个时候,你会发现找不到php.ini文件。
find / -name  php.ini-production  #这个时候,你会发现在你的源码包里。

现在,正式填充上边三个文件。

cp /alidata/service/php/etc/php-fpm.conf.default  /alidata/service/php/etc/php-fpm.conf
cp /alidata/service/php/etc/php-fpm.d/www.conf.default /alidata/service/php/etc/php-fpm.d/www.conf
cp /usr/local/src/php/php-7.1.4/php.ini-production  /alidata/service/php/etc/php.ini
cp /usr/local/src/php/php-7.1.4/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm  #开机自启动

开启可以这样

#启动服务
service php-fpm start 
#停止服务
service php-fpm stop  
#重启服务
service php-fpm reload

到此,我们熟悉的/etc/init.d/php-fpm start回来了。

/etc/init.d/php-fpm start   #开启
/etc/init.d/php-fpm stop  #关闭
/etc/init.d/php-fpm restart  #重启

额外

这些配置环境变量,配置/etc/init.d/其根本还是文件本身。比如在你配置php的环境变量后,你可以任意位置使用php -v来获取php的版本。可是,你通过/data/server/php/bin/php -v一样可以获取到php的版本。这个才是根本。

网站目录,用户组以及权限的设定:

chown -R www:root www  
chmod -r 755 www

可以将www用户不再设置为nologin,处理www目录下的文件时候,可以切换到www用户。

su www

还是不要按上边来吧。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注