環境:
php5.4.45+nginx1.13.6+mysql5.7.20+ecshopV2.7.3
問題:如下
作業系統…………………………………………………Linux
PHP 版本…………………………………………………5.4.45
是否支援MySQL…………………………………………………不支援
GD 版本…………………………………………………2
是否支援 JPEG…………………………………………………不支援
是否支援 GIF…………………………………………………支援
是否支援 PNG…………………………………………………支援
重要檔案是否完整…………………………………………………完整
伺服器是否開啟安全模式…………………………………………………關閉
解決方式:
1、php版本不能太高,用php5.7的會出現不支援問題;本次使用的php版本為php5.4.45。
2、編譯方式之前的出現了一些問題,我這兒重新編譯了一下,發現有四個地方是一定要有的,否則會出錯,我的編譯程式碼如下:
./configure --prefix=/usr/local/php-fpm
--with-config-file-path=/usr/local/php-fpm/etc
--enable-fpm
--with-fpm-user=php-fpm
--with-fpm-group=php-fpm
--enable-mysqlnd ##一定要有
--with-mysql=/usr/local/mysql/ ##一定要有
--with-mysql-sock=/usr/local/mysql/mysql.sock ##一定要有
--with-mysqli=/usr/local/mysql/bin/mysql_config ##一定要有
--with-mysqli=shared,mysqlnd ##一定要有
--with-pdo-mysql=shared,mysqlnd ##一定要有
--with-gd
--enable-gd-native-ttf
--enable-gd-jis-conv
--with-libxml-dir
--with-jpeg-dir
--with-png-dir
--with-freetype-dir
--with-iconv-dir
--with-zlib-dir
--with-mcrypt
--enable-soap
--enable-ftp
--enable-exif
--disable-ipv6
--with-curl
--enable-mbstring
--with-pear
--with-openssl
分析原因:
php檢測不到mysql,或者是php所檢測到的mysql是新的驅動方式,而ecshop由於程式碼比較老,不支援。
傳統的安裝php的方式中,我們在編譯PHP時,一般需要指定以下幾項:
–with-mysql=/usr/local/mysql
–with-pdo-mysql=/usr/local/mysql
這實際上就是使用了mysql官方自帶的libmysql驅動, 這是比較老的驅動, PHP 5.3開始已經不建議使用它了, 而建議使用mysqlnd.