標籤:UI php5 init.d sharp find path ace blank 應該
最近LZ在做一個thinkphp的項目,用的是WAMP開發的。把代碼移植到ubuntu下,就出問題了,驗證碼無法顯示。之前也碰到過這樣的問題,無非是GD庫沒有載入,或者是session寫入許可權問題。
先說下這兩個問題的解決辦法:
① GD庫沒有載入
安裝gd庫
apt-get install php5-gd
搜到gd.so在/usr/lib/php5/20090626+lfs/目錄下 ,需要修改php.ini,php.ini在/etc/php5/apach2目錄下。
於是修改php.ini:
extension_dir="/usr/lib/php5/20060613+lfs/"
再添加一行
extension=gd.so
重啟 apach2:
/etc/init.d/apach2 restart
② session寫入許可權問題
<?php $sessionpath = session_save_path(); //擷取當前session的儲存路徑 echo $sessionpath;?>
修改許可權為777.
補充:還有童鞋說是bom問題 再此我也說下,可能好多童鞋可能不知道BOM 是什麼,在此我也說明下。
BOM:
為了識別 Unicode 檔案,Microsoft 建議所有的 Unicode 檔案應該以 ZERO WIDTH NOBREAK SPACE(U+FEFF)字元開頭。這作為一個“特徵符”或“位元組順序標記(byte-order mark,BOM)”來識別檔案中使用的編碼和位元組順序。
Linux/UNIX 並沒有使用 BOM,因為它會破壞現有的 ASCII 檔案的文法約定。 (– 這就是導致這次頁面出現空白行的原因)
dom不是好東西就是一個資料簽名,一串字串而已,經常導致頁面出現空白行,特別是PHP進行檔案引入require_once和include的時候。
③ Linux下尋找包含BOM頭的檔案和清除BOM頭命令
尋找包含BOM頭的檔案,命令如下:
點擊(此處)摺疊或開啟
grep -r -I -l $‘^\xEF\xBB\xBF‘ ./
\xef\xbb\xbf是UTF8 BOM的16進位表示
這個命令會把目前的目錄及所有子目錄下的BOM頭刪除掉。
點擊(此處)摺疊或開啟
find . -type f -exec sed -i ‘s/\xEF\xBB\xBF//‘ {} \;
另一種方法:
點擊(此處)摺疊或開啟
echo -ne ‘\xef\xbb\xbf123456‘ | awk ‘{if(NR==1)sub(/^\xef\xbb\xbf/,""); print}‘
BOM的詳細解釋
http://www.cnblogs.com/chengmo/archive/2010/10/30/1864004.html
本文轉載自http://blog.csdn.net/kunpeng1987/article/details/72876347
thinkphp在ubuntu下驗證碼無法載入或者驗證碼錯誤問題的解決