本文介紹遷移到新服務器上的PHP網站,使用瀏覽器訪問時提示“不支持MySQL”等信息的問題描述、問題原因和解決方案。
問題描述
PHP網站(該網站需使用PHP執行程序代碼)遷移到新服務器后,在使用瀏覽器訪問時提示如下任意一種信息。
系統不支持MySQL。
PHP不支持MySQL擴展。
其他類似錯誤信息,示例如下。
問題原因
因為MySQL擴展功能自PHP 5.5.0版本開始被廢棄,并且從PHP 7.0.0版本開始被移除,當網站遷移到新服務器時一般會遷移到PHP 7.0.0及以上版本,由于網站遷移后的新服務器的PHP版本過高,網站程序無法再連接MySQL,導致該問題。
您可以使用php -v
命令,查看當前服務器的PHP版本,如圖所示。
解決方案
您可以在新服務器上安裝并運行5.5.0以下版本的PHP源碼包,來為網站提供MySQL擴展功能。
本文操作步驟以在CentOS 7.9操作系統為例,具體操作以您實際的操作系統版本為準。
登錄遷移后的ECS實例。
具體操作,請參見連接方式概述。
執行如下命令,安裝PHP依賴的軟件包。
yum install -y gcc gcc-c++ libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel curl curl-devel libxslt-devel openssl-devel
執行如下命令,從PHP官網下載PHP 5.5.0及以下版本的源碼包。
說明后續操作均以下載PHP 5.4.45版本的源碼包為例,具體版本號以您實際源碼包版本為準。
wget https://www.php.net/distributions/php-5.4.45.tar.gz
安裝PHP。
執行如下命令,解壓下載的源碼包。
tar -zxvf php-5.4.45.tar.gz
執行如下命令,進入源碼包目錄。
cd php-5.4.45
執行如下命令,安裝PHP源碼包。
./configure --prefix=/usr/local/php5.4.45 --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysql --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-sockets --enable-sysvsem --enable-xml --enable-zip
如果回顯顯示
Thank you for using PHP
,則表示PHP源碼包配置成功,如圖所示。如果安裝過程中缺少某個軟件包,會出現相關的報錯,您可以根據報錯提示安裝缺失的軟件包,然后再重新安裝PHP源碼包。
執行如下命令,編譯并安裝PHP。
make && make install
等待PHP安裝完成即可。
配置PHP運行版本為5.4.45版本。
執行如下命令,進入PHP的安裝目錄。
cd /usr/local/php5.4.45/etc
執行如下命令,把默認的配置文件復制為
php-fpm.conf
。cp php-fpm.conf.default php-fpm.conf
執行如下命令,啟動PHP服務。
/usr/local/php5.4.45/sbin/php-fpm
重新訪問網站。
如果訪問成功,該問題解決。