1. 程式人生 > >centos 7.2 安裝PHP7及新增php-fpm開機啟動

centos 7.2 安裝PHP7及新增php-fpm開機啟動

centos 7 編譯安裝 php-7.2.11的步驟

在官網下載php-7.2.11的php壓縮包,centos 7 安裝 php-7.2.11的步驟,http://cn2.php.net/distributions/php-7.2.11.tar.gz

  1. cd /usr/local/src
  2. wget -c http://cn2.php.net/distributions/php-7.2.11.tar.gz

下載好後解壓 php-7.2.11.tar.gz 壓縮包,並進入解壓後的目錄

  1. tar -xzvf php-7.2.11.tar.gz
  2. cd php-7.2.11

安裝php7需要的一些依賴庫包 libxml2和一些其他依賴的擴充套件庫

yum -y install libxml2 
yum -y install libxml2-devel 
yum -y install openssl 
yum -y install openssl-devel 
yum -y install curl-devel 
yum -y install libjpeg-devel 
yum -y install libpng-devel 
yum -y install freetype-devel
yum -y install bzip2-devel
yum -y install libmcrypt libmcrypt-devel
yum -y install postgresql-devel
yum -y install aspell-devel
yum -y install readline-devel
yum -y install libxslt-devel
yum -y install net-snmp-devel
yum -y install unixODBC-devel
yum -y install libicu-devel
yum -y install libc-client-devel
yum -y install libXpm-devel
yum -y install libvpx-devel
yum -y install enchant-devel
yum -y install openldap
yum -y install openldap-devel
yum -y install db4-devel
yum -y install gmp-devel
yum -y install sqlite-devel
yum -y install mysql-devel

安裝前的環境配置檢查,php7的一些依賴包的檢查和php擴充套件的啟動,這個過程如果缺少php依賴的庫包會有報錯提示。

新增使用者和組 groupadd -r www && useradd -r -g www -s /sbin/nologin

./configure  --prefix=/usr/local/php  --with-config-file-path=/usr/local/php/etc  --enable-fpm  --with-fpm-user=www  --with-fpm-group=www  --enable-inline-optimization  --disable-debug  --disable-rpath  --enable-shared  --enable-soap  --with-xmlrpc  --with-openssl  --with-mcrypt  --with-pcre-regex  --with-sqlite3  --with-zlib  --enable-bcmath  --with-iconv  --with-bz2  --enable-calendar  --with-curl  --with-cdb  --enable-dom  --enable-exif  --enable-fileinfo  --enable-filter --with-pcre-dir  --enable-ftp  --with-gd  --with-openssl-dir  --with-jpeg-dir  --with-png-dir  --with-freetype-dir  --enable-gd-native-ttf  --enable-gd-jis-conv  --with-gettext  --with-gmp  --with-mhash  --enable-json  --enable-mbstring  --enable-mbregex  --enable-mbregex-backtrack  --with-libmbfl  --with-onig  --enable-pdo  --with-mysqli=mysqlnd  --with-pdo-mysql=mysqlnd  --with-zlib-dir  --with-pdo-sqlite  --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-compression-support  --with-pear  --enable-opcache

對php7進行編譯和安裝的操作

  1. make && make install

( 如果出現 make: *** [sapi/cli/php] Error 1 的錯誤,通過繼續執行 make ZEND_EXTRA_LIBS='-liconv' 命令解決

編譯成功,檢視php版本

  1. /usr/local/php/bin/php -v

執行php-fpm

  1. /usr/local/php/sbin/php-fpm
  2. /usr/local/php/sbin/php-fpm -D

啟動php-fpm可能會遇到的錯誤,基本都是配置檔案配置和重新命名的問題:

錯誤一:缺少www.conf配置檔案(WARNING: Nothing  matches the include pattern /usr/local/php/etc/php-fpm.d/*.conf),需要把/usr/local/php/etc/php-fpm.d/*.conf目錄中的www.conf.default重名名為www.conf。

錯誤二:缺少php-fpm.conf配置檔案 需要在/usr/local/php/etc/php-fpm.conf 把預設的配置檔案php-fpm.conf.default改成php-fpm.conf

錯誤三:缺少php.ini配置檔案 php7編譯安裝好後會發現沒有php.ini配置檔案,需要在解壓包的根目錄中複製php.ini-production或php.ini-development並重命名為php.ini到php編譯好的安裝目錄中的/usr/local/php/etc資料夾即可。


在centos7中編譯安裝好php後,系統重啟後並不會對php進行開機啟動,所以需要對centos7新增開機啟動指令碼對php進行開機啟動服務。

php7編譯安裝方法:http://zixuephp.net/article-207.html    

手動啟動:

  1. /usr/local/php/sbin/php-fpm

開機自動啟動:

開啟配置php-fpm pid

  1. #找到php-fpm.conf配置檔案
  2. /usr/local/php/etc/php-fpm.conf
  3. #開啟pid ,去掉分號註釋
  4. pid = run/php-fpm.pid

建立開機啟動指令碼

  1. vim /etc/init.d/php-fpm #編輯 i
#reboot script
#!/bin/sh
# chkconfig: 2345 15 95
# processname: php-fpm
# config: /usr/local/php/etc/php.ini
# description:  PHP-FPM
# Comments to support chkconfig on CentOS

set -e

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="php-fpm daemon"
NAME=php-fpm
DAEMON=/usr/local/php/sbin/$NAME

CONFIGFILE=/usr/local/php/etc/php-fpm.conf
PIDFILE=/usr/local/php/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0

d_start() {
  $DAEMON -y $CONFIGFILE || echo -n " already running"
}

d_stop() {
  kill -QUIT `cat $PIDFILE` || echo -n " not running"
}

d_reload() {
  kill -HUP `cat $PIDFILE` || echo -n " can't reload"
}

case "$1" in
  start)
        echo -n "Starting $DESC is success"
        d_start
        echo "."
        ;;
  stop)
        echo -n "Stopping $DESC is success"
        d_stop
        echo "."
        ;;
  reload)
        echo -n "Reloading $DESC configuration..."
        d_reload
        echo "reloaded."
  ;;
  restart)
        echo -n "Restarting $DESC is success"
        d_stop
        sleep 1
        d_start
        echo "."
        ;;
  *)
         echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
         exit 3
        ;;
esac

對開機啟動指令碼新增所有人都執行的許可權

  1. chmod a+x /etc/init.d/php-fpm

php-fpm加入開機啟動服務

  1. chkconfig --add php-fpm
  2. chkconfig php-fpm on

檢視開機啟動的所有服務

  1. chkconfig --list

服務操作

  1. #啟動服務
  2. service php-fpm start 
  3. #停止服務
  4. service php-fpm stop  
  5. #重啟服務
  6. service php-fpm reload

 

nginx demo 配置:(不要忘記chown www-data:www-data 網站目錄 不然沒許可權)

server {
	    listen      80;
	    server_name {{ server_name }};
	    access_log  /data/logs/nginx/{{ server_name }}/access.log;
	    error_log   /data/logs/nginx/{{ server_name }}/error.log;
    location / {
        index           index.php index.html index.htm;
        root            /data/www/wwwroot/{{ server_name }}/;
 
        if (!-e $request_filename) {
            rewrite ^/(.*)$ /index.php;
        }
    }
 
    location ~ \.php$ {
        include        fastcgi_params;
        fastcgi_pass   unix:/tmp/php-fcgi.sock;
        fastcgi_index  index.php;
    }
}
 

 

php-fpm配置 (重新命名兩個檔案 其他看實際情況配置(略。。。))
www.conf.default -> www.conf
php-fpm.conf.default -> php-fpm.conf
啟動: php-fpm -D
nginx -s reload


原文地址: http://zixuephp.net/article-265.html