Apache-2.4

在 centOS 6.7 上使用 PHP 5.6.11 和 Apache 2.4.16 安裝 Ioncube 時出現問題

  • January 1, 2016

這就是我在 cenOS 6.7 上使用 apache2 2.4.16 編譯 PHP 5.6.11 的方式:

./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/lib --with-mysql --with-curl --with-openssl --disable-fileinfo --enable-bcmath --enable-calendar --enable-ftp --enable-libxml --enable-mbstring --enable-sockets --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-wddx --with-kerberos --with-mcrypt --enable-sockets --with-zlib --with-pdo-mysql --with-mysqli --with-gettext --enable-cgi --enable-mbstring --with-gd --enable-pdo --with-pdo-mysql --with-pdo-pgsql --with-mysqli=/usr/bin/mysql_config --with-mysql-sock=/var/lib/mysql/mysql.sock '--with-snmp' '--enable-soap'

但是當我在 php.ini 中包含 ioncube loader 時:

zend_extension = /usr/lib64/php/modules/ioncube_loader_lin_5.6.so

它開始在 php 版本檢查時給我這個錯誤:

php -v 載入 /usr/lib64/php/modules/ioncube_loader_lin_5.6.so 失敗:

/usr/lib64/php/modules/ioncube_loader_lin_5.6.so: undefined symbol: executor_globals PHP 5.6.11 (cli) (built: Dec 28 2015 17:35:58) Copyright (c) 1997-2015 The PHP Group Zend Engine v2.6.0,版權所有 (c) 1998-2015 Zend Technologies

我也確定擴展目錄,因為我明白了:

php -i | grep extension_dir 載入 /usr/lib64/php/modules/ioncube_loader_lin_5.6.so 失敗:

/usr/lib64/php/modules/ioncube_loader_lin_5.6.so:未定義符號:executor_globals extension_dir => /usr/lib64/php/modules/ => /usr/lib64/php/modules/ sqlite3.extension_dir => 無值 = > 沒有價值

所以,我把 ioncube_loader_lin_5.6.so 放在 modules 目錄中。

同時,我在 ioncube 編碼頁面上出現黑屏。我試圖找出錯誤“未定義的符號:executor_globals”,通常在 php 和 ioncube 之間存在版本差異時出現。但我為 php 5.6.11 使用了正確的載入器 5.6。

請幫我擺脫這個討厭的事情。

根據要求,並獲得更多可見性:

ionCube Loader 和 PHP 二進製文件中的執行緒安全php -i | grep "Thread Safety" -i必須匹配 - 例如,如果顯示為啟用,則必須使用執行緒安全的 ionCube Loader。

引用自:https://serverfault.com/questions/746305