CentOS 6.8 搭建LNAMP環境(四)- 源碼安裝PHP 7.0

1、安裝PHP7

一、yum安裝編譯php須要的包

yum -y install libxml2 libxml2-devel curl-devel libpng-devel freetype-devel libmcrypt-devel libjpeg-develphp

二、下載php源碼包,將源碼包放到/usr/local/src/目錄下 

下載頁面:http://www.php.net/downloads.phpcss

這裏用的是 php-7.0.24.tar.gzhtml

三、進入/usr/local/src/目錄,解壓PHP源碼包

cd /usr/local/src/mysql

tar -xvf php-7.0.24.tar.gznginx

四、進入php源碼目錄,編譯安裝(配置參數:http://php.net/manual/zh/configure.about.php)

 cd php-7.0.24web

./configure --prefix=/usr/local/php --with-mcrypt=/usr/include --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql-sock=/var/lib/mysql/mysql.sock --enable-fpm --enable-ftp --enable-xml --enable-zip --enable-soap --enable-pcntl --enable-shmop --enable-bcmath --enable-shared --enable-mysqlnd --enable-opcache --enable-session --enable-sockets --enable-sysvsem --enable-mbregex --enable-mbstring --enable-gd-native-ttf --enable-inline-optimization --with-gd --with-curl --with-zlib --with-mhash --with-iconv --with-xmlrpc --with-gettext --with-jpeg-dir --with-freetype-dir --with-fpm-user=nginx --with-fpm-group=nginx --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --without-gdbm --without-pear --disable-debug --disable-rpath --disable-fileinfosql

make && make installapache

 若./configure報錯configure: error: mcrypt.h not found. Please reinstall libmcrypt.vim

yum install -y epel-release
yum install -y libmcrypt-develapi

注:兩個不能一塊兒安裝,由於CentOS6默認的yum源沒有 libmcrypt-devel這個包,只能藉助epel的yum源,所

以先安裝epel,再安裝libmcrypt。 

五、複製配置文件

cp /usr/local/src/php-7.0.24/php.ini-development /usr/local/php/etc/php.ini

六、將php命令加入環境變量,修改profile文件

vim /etc/profile

七、 在文件末尾加入下面內容,保存退出

PATH=$PATH:/usr/local/php/bin
export PATH

 八、使/etc/profile裏的配置當即生效

source /etc/profile

 2、配置Apache支持PHP7

一、修改apache配置文件httpd.conf

vim /usr/local/apache/conf/httpd.conf

二、找到下面位置,加入紅色標記部分,保存退出

DirectoryIndex index.html index.php

AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
Addtype application/x-httpd-php .php .phtml 

 三、重啓apache

service httpd restart

 四、在apache的web目錄下添加php文件,如/var/www/html/phpinfo.php

<?php

phpinfo();

訪問URL,如:http://192.168.198.119:8080/phpinfo.php

頁面顯示正常,則配置成功 

3、配置Nginx支持PHP7

一、配置php-fpm

php-fpm.conf是 php-fpm 進程服務的配置文件

www.conf這是 php-fpm 進程服務的擴展配置文件

cd /usr/local/php/etc

mv php-fpm.conf.default php-fpm.conf

mv php-fpm.d/www.conf.default php-fpm.d/www.conf

編輯www.conf文件,將user和group改爲和nginx.conf中的user和group一致(默認是nobody用戶和用戶組)

vim /usr/local/php/etc/php-fpm.d/www.conf

找到

user = nginx
group = nginx

改成

user = nobody
group = nobody

二、將php-fpm服務腳本加入到init.d/目錄 

cp /usr/local/src/php-7.0.24/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

三、爲php-fpm添加可執行權限 

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

四、將php-fpm加入系統服務 

chkconfig --add php-fpm

五、修改服務的默認啓動等級

chkconfig php-fpm on

六、 啓動php-fpm

service php-fpm start

七、修改nginx配置文件nginx.conf

vim /usr/local/nginx/conf/nginx.conf

八、找到location的添加位置,在後面添加下面這個location 

location / {
                root /var/www/wwwroot;    #指定web根目錄
                fastcgi_pass 127.0.0.1:9000;    #php-fpm的默認端口是9000
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }

 九、重啓nginx

service nginx restart

十、在nginx的web目錄下添加php文件,如/var/www/wwwroot/phpinfo.php

<?php

phpinfo();

訪問URL,如:http://192.168.198.119/phpinfo.php

頁面顯示正常,則配置成功

PIS:從5.3.9開始,php官方加入了一個配置"security.limit_extensions",默認狀態下只容許執行擴展名

爲".php"的文件,形成了其餘類型的文件不支持的問題。因此訪問其餘類型文件會出現 「Access denied

修改php-fpm 進程服務的擴展配置文件

vim /usr/local/php/etc/php-fpm.conf

在後面加上一行:

security.limit_extensions = .php .asmx .html .js .css .jpg .jpeg .gif .png .htm

4、測試PHP7操做MySQL

在web目錄下添加php文件,如/var/www/wwwroot/test.php

<?php
$host = 'localhost';
$user = 'root';
$pass = 'root';
$database = 'mysql';
$sql = 'SELECT * FROM user LIMIT 1';
/*鏈接PDO*/
try {
    $dbh = new PDO("mysql:host=$host;dbname=$database", $user, $pass);
    foreach ($dbh->query($sql) as $row) {
        print_r($row);
    }
    $dbh = null;
} catch (PDOException $e) {
    print "PDO Error: " . $e->getMessage() . "<br/>";
}

訪問URL,如:http://192.168.198.119/test.php

頁面顯示正常,則配置成功

PHP7安裝完畢!

相關文章
相關標籤/搜索