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。