1. 先下載PHP7安裝套件
使用wget http://am1.php. net/distributions/php-7.2.0.tar.bz2,或直接存取下載,然後ftp到linux伺服器
2. 解壓縮壓縮套件
tar –xjf php-7.0.2.tar.bz2
3. 進入資料夾,cd php-7.0.2 ,安裝必要的依賴工具,
yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel这里主要是升级,一般在php5都安装了,所以这一步可以省略
4. 安裝幾個依賴(必須安裝,否則後面無法生成apache所使用的libphp7.so檔)
yum -y install perl yum –y install perl-devel yum -y install httpd-devel find /usr -name apxs 取得所用路径,后面编译时用到。
5.準備編譯工作
./configure --prefix=/usr/local/php7 --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --enable-fpm --enable-bcmath -enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip --enable-pcntl --with-curl --with-fpm-user=nginx --enable-ftp --enable-session --enable-xml --with-apxs2=/usr/bin/apxs **注意:其中的 –enable-gd-native-ttf 可以不安装,处理图形用的,如果有需求可以以后以扩展形式装
–with-apxs2=/usr/bin/apxs 後面的路徑改為第4步得到的路徑
–prefix=/usr/local/php7單獨安裝在php7的資料夾,避免和php5衝突**
6.編譯
make
這一步容易出現很多問題,
#如果遇見譬如:undefine 。 。 。 。
/ext/cli./php …
Openssl
等等錯誤,而且確定安裝了相關的模組,則一般清除先前的編譯,刪除相關檔案後重新編譯
make clean rm –rf /usr/local/php7
一般都可以解決問題。
其他的錯誤可以參考這篇部落格查閱這篇部落格:
http://www.cnblogs.com/sweetXiaoma/p/5855732.html
http://www.linuxidc.com/Linux/2017-08/146220.htm
關鍵還是自行解決,介於linux發行版太多,而且每台伺服器的環境配置都不同,所以會遇到很多奇葩的問題。
7.安裝
Make install
8.準備設定檔
cp php.ini-developement /etc/php.ini //根据实际情况,可以使用production或者development默认配置 cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
9.需要修改apache的設定檔案
Vi /etc/httpd/conf/httpd.conf 找到LoadModule php7_module modules/libphp7.so,如果沒有手動加上,
將LoadModule php5_module modules/libphp5.註解掉
cp /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php.conf_5
Vi /etc/httpd/conf.d/php .conf
改為下面這樣:(將牽涉到php5的註解掉,改為php7相關模組)
<IfModule prefork.c> LoadModule php7_module modules/libphp7.so </IfModule> <Files ".user.ini"> <IfModule mod_authz_core.c> Require all denied </IfModule> <IfModule !mod_authz_core.c> Order allow,deny Deny from all Satisfy All </IfModule> </Files> DirectoryIndex index.php # mod_php options <IfModule mod_php7.c> <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch> php_value session.save_handler "files" php_value session.save_path "/var/lib/php/session" php_value soap.wsdl_cache_dir "/var/lib/php/wsdlcache" </IfModule>
10.重啟apache伺服器
#service httpd restart
更多PHP相關知識,請造訪PHP中文網!
以上是Centos下PHP5升級PHP7的詳細內容。更多資訊請關注PHP中文網其他相關文章!