老服務器已經有幾個項目在運行,PHP的環境配置是:php
系統:CentOS 6.5 64位html
nginx:1.0.15mysql
php:5.3nginx
如今要上新項目,又不能影響舊項目的運行,新項目使用PHP7開發,所以要在系統中安裝php7,使系統同時支持php5.3和php7。web
1.下載php7:sql
wget http://cn2.php.net/distributions/php-7.0.4.tar.gz
2.解壓api
tar -zxvf php-7.0.4.tat.gz
3.進入解壓後的目錄服務器
cd php-7.0.4
4.安裝依賴包php7
yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel
5.編譯安裝到/usr/local/php7目錄下curl
./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-libxml \ --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
6.若是有configure error信息則根據error分別安裝依賴包,若是沒有error信息,就能夠執行下邊的安裝了:
make && make install
7.配置php-fpm,分別複製和配置如下
cp php.ini-development /usr/local/php7/lib/php.ini 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 cp -R ./sapi/fpm/php-fpm /etc/init.d/php-fpm7
8.建立軟鏈接,這樣之後php-v 顯示的是原來的PHP,php7 -v顯示的是php7的相關信息
ln -s /usr/local/php7/bin/php /usr/bin/php7
9.配置www.conf,打開在/usr/local/php7/etc/php-fpm.d/www.conf,修改大約36行的listen = 127.0.0.1:9001
10.啓動php7
/etc/init.d/php-fpm7
11.查看是否啓動成功
ps -aux|grep php
12.修改nginx的配置文件(有的每一個項目有一個配置文件),如存放在nginx/conf.d/aaa.conf, nginx/conf.d/bbb.conf,通常修改fastcgi_pass
#默認使用原來的php運行 server { listen 80; server_name *.test.com; location / { root /usr/nginx/html/my_project; index index.php index.html index.htm; } location ~ \.php$ { root /usr/nginx/html/my_project; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } #project2使用php7運行 server { listen 80; server_name project2.test.com; location / { root /usr/nginx/html/project2; index index.php index.html index.htm; } location ~ \.php$ { root /usr/nginx/html/project2; fastcgi_pass 127.0.0.1:9001; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
13.重啓web服務
service nginx restart
phpinfo
1.下載路徑,有的教程是鍵入這個:wget http://cn2.php.net/get/php-7.0.4.tar.gz/from/this/mirror
可是我看到下載了mirror,下一步解壓php-7.0.4.tar.gz的話提示無此文件,因此直接使用wget http://cn2.php.net/distributions/php-7.0.4.tar.gz
2.先安裝軟件開發依賴包再編譯安裝,不然可能報錯
3.編譯命令./configure這一大段直接複製粘貼到命令窗口就行,注意格式,若是粘貼過去不行,先放到一TXT文件再複製粘貼,編譯命令解釋
configure --prefix=/指定安裝路徑
不指定prefix,則可執行文件默認放在/usr /local/bin,庫文件默認放在/usr/local/lib,配置文件默認放在/usr/local/etc。其它的資源文件放在/usr /local/share。你要卸載這個程序,要麼在原來的make目錄下用一次make uninstall(前提是make文件指定過uninstall),要麼去上述目錄裏面把相關的文件一個個手工刪掉。
指定prefix,直接刪掉一個文件夾就夠了
--prefix指的是安裝路徑,--with指的是安裝本文件所依賴的庫文件。
4.注意/etc/init.d/php-fpm7 的文件權限,可能要修改chmod +x /etc/init.d/php-fpm7