解決PHP開啟gd庫無效的問題


最近需要重新安裝PHP,以前一直使用的都是XAMPP,基本上都不需要自己配置,現在准備直接下載官方原版的Apache和PHP,自己來慢慢摸索如何繼承配置。

我下載的Apache版本為2.2.25,PHP版本為5.4.19,將Apache與PHP集成配置好后(PHP安裝目錄為:F:\php5.4.19),記得PHP默認沒有開啟GD庫的支持,需要自行開啟。於是就打開PHP安裝目錄/php.ini配置文件,找到如下內容:

;extension=php_gd2.dll

按照網上搜索得來的方法,去掉前面表示注釋的符號”;”,然后重新啟動Apache服務器,結果發現還是不行,通過phpinfo()函數仍然無法看到任何與GD庫相關的信息。看到網上很多關於“PHP開啟GD庫”的文章,都是直接說一句“去掉xxx前面的分號”,就沒有下文了。事實證明,僅僅這么做明顯是不行的,至少官方zip版本的php這么配置是不行的。

於是就只好自己檢查php.ini的配置內容,最后發現其中有如下一行:

;extension_dir = "ext"

很明顯,extension_dir指令被注釋掉了,導致php連擴展庫的文件夾ext都找不到,自然不可能找到擴展庫中的php_gd2.dll了,gd庫支持自然也沒有開啟。

於是,照貓畫虎地去掉extension_dir指令前面的注釋符號”;”,再次重啟服務器,結果……還是不行。這不科學啊,難道extension_dir指令的值”ext”有問題?最后在php官方文檔查詢得知如下圖:


extension_dir指令的官方說明

 

PHP官方說,PHP5搜索擴展庫的默認位置為C:\php5,於是嘗試着按照官方的說法,仍然讓extension_dir保持被注釋掉的現狀,在C盤下新建了一個php5文件夾,然后將php_gd2.dll復制進去,再次重新啟動服務器,結果……還是不行。

此時,通過phpinfo()函數查看得知,在php.ini中沒有開啟extension_dir指令時,phpinfo()上的extension_dir顯示的值居然是C:\php——難道官方的說明文檔也出錯了,或者說PHP 5.4這個版本已經作了變更、而官方文檔還沒有及時更新?其他的先不管那么多了,先試試C:\php行不行,於是將php5重命名為php,其他一切照舊,接着重新啟動服務器,然后通過phpinfo()函數查看到gd庫已經開啟了。——這至少證明,在PHP 5.4.19中,擴展庫的默認搜索位置為C:\php

當然,眾所周知,extension_dir指令是支持絕對路徑的,上面折騰半天,主要是為了搞明白extension_dir指令的作用與影響。最后還是將extension_dir前面的注釋符號”;”去掉,然后將其值改為ext文件夾的絕對路徑,詳細代碼如下:

extension_dir = "F:/php5.4.19/ext"

綜上所述,對於php官方版而言,要開啟gd庫支持,不僅要去掉extension=php_gd2.dll前的注釋符號,還要去掉extension_dir指令前的注釋符號,並將其值作對應修改。當然,不僅僅是gd庫,如果需要開啟其他PHP擴展庫,例如php_mysql、php_mysqli,方法也是類似的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM