1 建立php使用者和使用者群組,並在github下載php7來源碼
先建立一個名為php且沒有登入權限的使用者和一個名為php的使用者群組,然後去GitHub下載php7來源碼包。
#######新php使用者和php群組
[root@typecodes ~]# groupadd -r php && useradd -r -g php -s /bin/false -d /usr/local/php7 -M php
######從GitHub下載php7安裝套件
[root@typecodes ~]# wget -c --no-check-certificate -O php7-src-master.zip https://github.com/php/ php-src/archive/master.zip
######開始解壓縮php7套件
[root@typecodes ~]# unzip -q php7-src-master.zip && cd php-src-master
#### #安裝編譯php7時需要的依賴套件
[root@typecodes php-src-master]# yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcpt-de PHP7編譯參數的設定
準備工作做好後,就開始正式設定php7的安裝明細了。注意,操作時一定要先把下面反斜線「」後面加上的註解文字去掉! ! !
######開始產生設定檔
[root@typecodes php-src-master]# ./buildconf
buildconf: checking installation...
buildconf: autoconf version 2.69 (ok)
. configure
rebuilding main/php_config.h.in
######開始設定
[root@typecodes php-src-master]# ./configure
--prefix=/usr/local/php7 P7安裝的根目錄]
--exec-prefix=/usr/local/php7
--bindir=/usr/local/php7/bin
--sbindir=/usr/local/php7/sbin
--includedir=/usr/usr/local /php7/include
--libdir=/usr/local/php7/lib/php
--mandir=/usr/local/php7/php/man
--with-config-file-path=/usr/local/ php7/etc [PHP7的設定目錄]
--with-mysql-sock=/var/run/mysql/mysql.sock [PHP7的Unix socket--with文件]--within/mco-crywo-prywrywo/mcm/mcpto--三/mcpto--cryo-crywryo-crywo/mcpt with-mhash
--with-openssl
--with-mysqli=shared,mysqlnd sql my [PHP7依賴mysql函式庫]
--with-gd
--with-iconv
--with-zlib
--enable-zip
--enable-inline-optimization
--disable-debug
--disable-rpath = --enable-bcmath
--enable-shmop
--enable-sysvsem
--enable-mbregex
--enable-mbstring
--enable-ftp
--enable-gd-native-ttable
--enable-ftp
--enable-gd-native-ttable
--enable-ftp
--enable-gd-native-ttable
--enable- pcntl
--enable-sockets
--with-xmlrpc
--enable-soap
--without-pear
--with-gettext
--enable-session [允許php會話session]
--with-curl 允許curl擴充]
--with-jpeg-dir
--with-freetype-dir
--enable-opcache=no
--with-fpm-user=nginx [ php-fpm的使用者]
--with-fpm-group=nginx 中對下的使用者組上進行相結合時的用戶組 - = /usr/local/php7 --exec-prefix=/usr/local/php7 --bindir=/usr/local/php7/bin --sbindir=/usr/local/php7/sbin --includedir=/usr/local /php7/include --libdir=/usr/local/php7/lib/php --mandir=/usr/local/php7/php/man --with-config-file-path=/usr/local/php7/etc
--with-mysql-sock=/var/run/mysql/mysql.sock --with-mcrypt=/usr/include --with-mhash --with-openssl --with-mysqli=shared,mysqlnd --with -pdo-mysql=shared,mysqlnd --with-gd --with-iconv --with-zlib --enable-zip --enable-inline-optimization --disable-debug --disable-rpath
--enable-shared --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-mbregex --enable-mbstring --enable-ftp --enable-gd-native-ttf - -enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --without-pear --with-gettext --enable-session --with-curl
--with-jpeg-dir --with-freetype-dir --enable-opcache=no --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --without-gdbm - -disable-fileinfo
錯誤訊息:configure: error: mcrypt.h not found. Please reinstall libmcrypt
解決方法:下載libmcrypt-2.5.8.tar.gz 然後編譯安裝
下載位址:http://sourceforge.net/ projects/mcrypt/files/Libmcrypt/
如果重新編譯了libmcrypt 記住安裝目錄,然後php的編譯項目--with-mcrypt=你的libmcrypt安裝目錄
./configure --prefix=/usr/local/php7 --exec-prefix=/usr/local/php7 --bindir=/usr/local/php7/bin --sbindir=/usr/local/php7/sbin - -includedir=/usr/local/php7/include --libdir=/usr/local/php7/lib/php --mandir=/usr/local/php7/php/man --with-config-file-path=/ usr/local/php7/等
--with-mysql-sock=/var/run/mysql/mysql.sock --with-mcrypt=/usr/local/libmcrytp/ --with-mhash --with-openssl --with-mysqli=mysqlnd -- with-pdo-mysql=mysqlnd --with-gd --with-iconv --with-zlib --enable-inline-optimization --disable-debug --disable-rpath --enable-shared
--enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-mbregex --enable-mbstring --enable-ftp --enable-gd-native-ttf --enable-pcntl - -enable-sockets --with-xmlrpc --enable-soap --without-pear --with-gettext --enable-session --with-curl --with-jpeg-dir
--with-freetype-dir --enable-opcache --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --without-gdbm --disable-fileinfo
編譯時遇到到問題:不知道如何在這個系統上定義struct資源,設定--enable-opcache=no
解決方法:(我最終用這些方法還是沒有解決)
一、yum groupinstall「開發工具」。二、編輯/etc/ld.so.conf 加入/usr/local/lib,在執行ldconfig -v
提示:我在/usr/lib libmysqlclient.so so在編輯/etc/ld.so.conf的時候看到,需要看一下,這裡面是否有
3開始編譯安裝PHP7
相對編譯安裝MySQL的大量CPU和記憶體消耗,PHP7的編譯安裝輕鬆多了,整個過程大約1個小時左右存在。時候,把--enable-opcache=no設為no,去掉了--enable-zip,完成安裝後,需要單獨把這兩個當作擴充安裝
[root@typecodes php-src-master]# make clean && make && make install
如果遇到錯誤可參考:http://blog.chinaunix.net/uid-20776139-id-5421615.html
4 選做步驟:執行make test指令進行測試
這是一個非常簡單的操作步驟,執行make test指令。一致後面的PHP7安裝目錄
由於需要和MySQL進行通信,所以需要特別查看PHP7安裝後面的lib擴展庫目錄(/usr/local/php7/lib/php/extensions/no-debug-non-zts-20141001/ ) 。設定檔複製到PHP7的設定目錄(/usr/local/php7/etc/),建議使用《PHP7中php.ini、php-fpm和www.conf的設定》文中整理的3個PHP7設定檔和php - fpm服務控制腳本。 /php .ini
[root@typecodes php-src-master]# cp /php-src-master/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[ root@typecodes php- src-master]# cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
[root@typecodes php-src- master]# cp / usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
#########方法二:使用https://typecodes.com/web/php7configure.html 文中的設定
[root@typecodes php-src-master]# mv ~/php.ini /usr/local/php7/etc/php.ini && mv ~/ php-fpm /etc/init.d/php-fpm
[root@typecodes php-src-master]# mv ~/php-fpm.conf /usr/local/php7/etc/php-fpm.conf conf && mv ~/www.conf /usr/local/php7/etc/php-fpm.d/www.conf
7加入php的環境變數
將php編譯產生的bin目錄加入到目前Linux系統的環境變數中
[root@typecodes ~]# echo -e 'nexport PATH=/usr/local/php7/bin:/usr/local/php7/sbin:$PATHn' >>> /etc/profile && source /etc/profile
8 設定PHP日誌目錄和php-fpm進程檔案(php-fpm.sock)目錄
其中,設定php-fpm進程目錄的使用者和使用者群組為nginx,並建立php會話會話目錄。
#######設定PHP日誌目錄和php-fpm的運行進程ID檔案(php-fpm.sock)目錄
[root@typecodes ~]# mkdir -p /var/log/php-fpm/ && mkdir -p /var/run/php-fpm && cd /var/run/ && chown -R nginx:nginx php-fpm
######修改session的目錄配置
[root@typecodes etc]# mkdir -p /var/lib/php/session
[root@typecodes etc]# chown -R nginx:nginx /var/lib/php
9 設定PHP開機啟動以及測試設定檔是否正確
######設定開機自啟動,增加到主機sysV服務
[root@typecodes php-src-master]# chmod +x /etc/init.d/php-fpm
[root@typecodes php-src-master]# chkconfig --add php-fpm
[root@typecodes php-src-master]# chkconfig php-fpm on
######測試PHP的設定檔是否正確合法
[root@typecodes sbin]# php-fpm -t
[ 03-May-2015 17:50:04] NOTICE: configuration file /usr/local/php7/etc/php-fpm.conf test is successful
10 啟動php服務
在完成上面的操作後,就可以正式使用php服務了。啟動php行程服務的指令如下:
[root@typecodes sbin]# service php-fpm start
Starting php-fpm done
11 安裝opcache
教學:http://blog.jjonline.cn/linux/135.html
教學:http://blog.ich8.com/post/4142
教學:http://my.oschina.net/u/919580/blog/406900 實務證明這個可用
安裝:
Linux
安裝Zend Opcache(pecl版本):
刪除eaccelerator、xcache、apc:
yum remove php-eaccelerator php-xcache php-apcu
沒有使用則跳過。
對系統執行升級:
yum update
安裝Zend Opcache(pecl 版本)
yum install php-pecl-zendopcache PS:但是在centos7上還是沒有找到php-pecl-zendopcache擴展,所以下面無法繼續安裝操作
時產生的opcache 的設定檔位於預設的/etc/php.d 目錄中:
opcache-default.blacklist
opcache.ini
這個設定檔採用的基本上就是README 中的建議設置,只有幾個地方需要修改。
vi /etc/php.d/opcache.ini
對照如下建議配置修改並儲存即可:
opcache.memory_c>opcache.interned_strings_buffer=8
opcache.max_accelerated_files=400000cm>> 1
opcache.enable_cli=1
不需要修改php.ini 配置,重起Apache 服務使之生效:
service httpd restart
查詢一下看看是否正確啟動了:
php -v
輸出結果類似於:
PHP 7 (cli) (built: Apr 11 2013 11:04:35)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, , Copyright (c) 1999-2013, 由 Zend Technologies
以上就介紹了CentOS 71編譯安裝PHP7,包含了方面的內容,希望對PHP教學有興趣的朋友有幫助。