1. 程式人生 > >ECS裡Centos7.2下編譯安裝PHP-7.2.11(PHP-FPM)

ECS裡Centos7.2下編譯安裝PHP-7.2.11(PHP-FPM)

centos7下編譯安裝php-7.2.11(PHP-FPM)

一、下載php7原始碼包

1

http://php.net/downloads.php

如:php-7.2.11.tar.gz

二、安裝所需依賴

> yum -y install gd-devel zlib-devel libjpeg-devel libpng-devel libiconv-devel freetype-devel libxml2 libxml2-devel openssl openssl-devel curl-devel libxslt-devel libmcrypt-devel mhash mcrypt


如果無法安裝libiconv,請手動下載安裝

1

http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

1

2

3

4

> tar xf libiconv-1.14.tar.gz

> cd libiconv-1.14

> ./configure --prefix=/usr/local/libiconv

> make && make install

如果出現如下問題,說明你係統版本較高。
./stdio.h:1010:1: 錯誤:‘gets’未宣告(不在函式內)

1

2

3

4

> cd srclib/

> sed -i -e '/gets is a security/d' ./stdio.in.h

> cd ../

> make && make install

如果安裝libmcrypt-devel、mhash、mcrypt出錯,則重新配置yum源。

1

2

http://mirrors.163.com/.help/centos.html

http://mirrors.aliyun.com/help/centos

 
三、編譯PHP
建立賬號

> useradd -s /sbin/nologin -M nginx
> cd /usr/local/src
> wet http://tw2.php.net/get/php-7.2.11.tar.gz/from/this/mirror
> tar xf php-7.2.11.tar.gz
> cd /usr/local/src/php-7.2.11
> ./configure --prefix=/usr/local/php \
--with-openssl \
--with-pcre-regex \
--with-kerberos \
--with-libdir=lib \
--with-libxml-dir \
--with-mysqli=shared,mysqlnd \
--with-pdo-mysql=shared,mysqlnd \
--with-pdo-sqlite \
--with-gd \
--with-iconv \
--with-zlib \
--with-xmlrpc \
--with-xsl \
--with-pear \
--with-gettext \
--with-curl \
--with-png-dir \
--with-jpeg-dir \
--with-freetype-dir \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--enable-mysqlnd \
--enable-zip \
--enable-inline-optimization \
--enable-shared \
--enable-libxml \
--enable-xml \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-mbregex \
--enable-mbstring \
--enable-ftp \
--enable-gd-native-ttf \
--enable-pcntl \
--enable-sockets \
--enable-soap \
--enable-session \
--enable-opcache \
--enable-fpm \
--enable-maintainer-zts \
--enable-fileinfo \

 

 

1

> make && make install

四、make && make install

五、配置檔案

1

2

3

4

> cp /usr/local/src/php-7.2.11/php.ini-development /usr/local/php/lib/php.ini

> cp -R /usr/local/src/php-7.2.11/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

> cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

> cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

六、修改php.ini

1

2

mkdir /usr/local/php/tmp

chmod 766 /usr/local/php/tmp

1

2

3

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20151012/"

session.save_path = "/usr/local/php/tmp"

date.timezone = PRC

七、新增環境變數

1

2

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

> source /etc/profile

八、新增自啟動

1

2

3

> chkconfig --add php-fpm

> chkconfig php-fpm on

> chkconfig --list php-fpm

九、啟動服務

1

2

3

chmod 755 /etc/init.d/php-fpm

> service php-fpm start

> ps -ef|grep php-fpm

十、php-fpm重啟
php-fpm的pid檔案預設在你php安裝目錄下var/run/php-fpm.pid

當然這是可以更改的,在/data/php7/etc/php-fpm.conf檔案中

關閉

1

> kill -INT `cat /usr/local/php/var/run/php-fpm.pid`

重啟

1

> kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`