1. 程式人生 > >centos7.5環境下安裝php-7.1.9

centos7.5環境下安裝php-7.1.9

安裝包請自行到官網下載

http://php.net/downloads.php

 

一:安裝相關依賴包

yum -y install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel

yum -y install freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel

yum -y install libmcrypt-devel

yum -y install mhash

yum -y install mcrypt

yum -y install bzip2 bzip2-devel

yum install gcc bison bison-devel zlib-devel libmcrypt-devel mcrypt mhash-devel openssl-devel libxml2-devel libcurl-devel readline-devel libedit-devel

 

二:編譯安裝php

解壓安裝包

tar   -xf    php-7.1.9.tar.gz

cd   php-7.1.9

編譯

./configure \

--prefix=/usr/local/php7 \

--with-config-file-path=/usr/local/php7 \

--enable-inline-optimization \

--disable-debug \

--disable-rpath \

--enable-shared \

--enable-opcache \

--enable-fpm \

--with-fpm-user=nginx \

--with-fpm-group=nginx \

--with-mysql=mysqlnd \            #舊版本編譯引數

--with-mysqli=mysqlnd \

--with-pdo-mysql=mysqlnd \

--with-gettext \

--enable-mbstring \

--with-iconv \

--with-mcrypt \

--with-mhash \

--with-openssl \

--enable-bcmath \

--enable-soap \

--with-libxml-dir \

--enable-pcntl \

--enable-shmop \

--enable-sysvmsg \

--enable-sysvsem \

--enable-sysvshm \

--enable-sockets \

--with-curl \

--with-zlib \

--enable-zip \

--with-bz2 \

--with-readline \

--without-sqlite3 \

--without-pdo-sqlite \

--with-pear \

--with-libdir=lib64 \            #如果提示找不到lib包需加此引數

安裝

make  &&  make install

 

配置PHP環境

複製配置檔案

cp   /tools/php-7.1.9/php.ini-development   /etc/php.ini

php-fpm 服務

cp  /usr/local/php7/etc/php-fpm.conf.default  /usr/local/php7/etc/php-fpm.conf         #fpm配置檔案

cp  /tools/php-7.1.9/sapi/fpm/init.d.php-fpm  /etc/init.d/php-fpm         #啟動指令碼

 

啟動php-fpm

/etc/init.d/php-fpm start

遇到如下問題,該問題的主要原因是php-fpm的配置檔案中的125行有一個配置,include=/usr/local/php7/etc/php-fpm.d/*.conf,但是其從是並未在php-fpm.d資料夾下找到以.conf結尾的檔案,因此報錯。

可自行註釋掉這行配置,或者在php-fpm.d資料夾下建立一個.conf結尾的檔案。

 

新增 PHP 命令到環境變數

vim /etc/profile

 

PATH=$PATH:$HOME/bin:/usr/local/php7/bin

export PATH

 

測試php是否安裝成功

在nginx下新建一個虛擬主機  conf/conf.d/php.conf

 server {

        listen       80;

        server_name  blog.cong.org;

        location / {

            root   html/blog;

            index  index.html index.htm;

        }

        location ~ .*\.(php|php5)?$ {

            root   html/blog;

            fastcgi_pass  127.0.0.1:9000;

            fastcgi_index index.php;

            include fastcgi.conf;

        }

    }

 

在html/blog下編寫測試網頁

echo "<?php phpinfo();?>" > test_info.php

 

 

訪問127.0.0.1:8080/test_info.php

出現如下頁面則證明安裝成功

 

測試php連線資料庫是否成功

vim  dbtest_info.php

<?php

       $pdo = new PDO('mysql:host=127.0.0.1;dbname=mysql;port=3306','root','tqw961110') ;

       if($pdo){

               echo "mysql successful by cong";

       }else{

               echo mysql_error();

            }

?>

訪問127.0.0.1:8080/dbtest_info.php

顯示如下頁面則連線成功

 

在mysql-8.0系列中,身份認證採用caching_sha2_password的加密認證方式。

PHP:X DevAPI PHP擴充套件(mysql_xdevapi)支援 caching_sha2_password。

PHP:PDO_MySQL和ext / mysqli擴充套件不支援caching_sha2_password。此外,當與7.1.16之前的PHP版本和7.2.4之前的PHP 7.2一起使用時,default_authentication_plugin=caching_sha2_password 即使caching_sha2_password未使用它們也無法連線 。

 

在php7.1.16和php7.2.4版本前的php不支援caching_sha2_password的認證方式,即使mysql的使用者密碼用的是mysql_native_password的加密方式,也無法連線上mysql,這時候最直接的方法就是將mysql的預設認證方式修改成mysql_native_password。詳細請見部落格----centos7.5環境下安裝mysql-8.0.12。