開啟php對GD庫的支持,好心酸


一直安穩地使用直接下載官方原版的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官方說,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