Apache-Httpd
需要為舊版本的 PHP 啟用 gd
PHP版本是5.6,太老了。使用
apt-get install php5-gd
將不再起作用。我可以找到這些
gd.so
:/usr/lib/php/20151012/gd.so /usr/lib/x86_64-linux-gnu/libgd.so.3 -- links to 3.0.0 below /usr/lib/x86_64-linux-gnu/libgd.so.3.0.0
要啟用,我想我必須在,等
gd
中設置其中之一。mods_available``mods_enabled
我猜我需要
gd.so
在一個公共位置有一個別名,該別名連結到上述之一,但是放在哪裡,以及連結到哪個?是否有手動設置的分步指南?
嘗試
gd
直接安裝,但不再可用:$ sudo apt-get install php5-gd Reading package lists... Done Building dependency tree Reading state information... Done Package php5-gd is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source E: Package 'php5-gd' has no installation candidate
似乎也沒有
ppa:ondrej/php
,這是最好的選擇。我們確實有一個現有的 SO,所以這些是我嘗試修補它的步驟。
找到另一個 SO:
$ locate gd.so ... /usr/lib/php/20151012/gd.so ...
在 PHP 擴展目錄中創建一個連結
20131226
到現有的:$ cd /usr/lib/php/20131226 $ sudo ln -s /usr/lib/php/20151012/gd.so gd.so
為此 SO 創建一個 INI 文件:
$ cd /etc/php/5.6/mods-available $ echo -e '; configuration for php common module\n; priority=20\nextension=gd.so' | sudo tee gd.ini ; configuration for php common module ; priority=20 extension=gd.so
啟用模組:
$ cd /etc/php/5.6/apache2/conf.d $ sudo ln -s /usr/lib/php/5.6/mods-available/gd.ini 20-gd.ini
重啟 Apache 看看會發生什麼:
$ sudo service apache2 restart $ cat /var/log/apache2/error.log ... PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20131226/gd.so' - /usr/lib/php/20131226/gd.so: undefined symbol: zend_list_close in Unknown on line 0 ...
是的,沒用,但看起來它找到了它並試圖載入它。撤消一切並重新啟動以確保一切恢復正常:
$ cd /etc/php/5.6/apache2/conf.d $ sudo rm 20-gd.ini $ cd /etc/php/5.6/mods-available $ sudo rm gd.ini $ cd /usr/lib/php/20131226 $ sudo rm gd.so $ sudo service apache2 restart
唯一的解決方案是建議升級到更高版本的 PHP!