我 的Iceblog從2005年春天開始,做做停停,總算能夠顯示出來了,前臺的很多功能還沒來得及做,不過后臺基本上做好了。于是買了一個一百元/年的虛 擬主機,準備把程序放上去。PHP開發,一直以來我都是用PEAR+Smarty的,而且我的blog是UTF8編碼的,所以對雙字節文字的處理使用了 mbstring模塊。本來我以為把程序上載上去,數據做一下import,就萬事ok了,其實還是太大意了……
我本機的開發環境是apache2+php5+mysql; 虛擬主機是IIS6+php4+mysql; 貌似沒什么,買空間之前我只確認了gd2模塊是否已經安裝了,因為我的blog程序的登錄部分用到了圖形驗證。忘記問mbstring的事情了,以為是默 認安裝的…… 其實也就是我能用上這個小日本發明的垃圾function,因為我在以前的項目中被日本人要求用過…… 處理UTF8的中文還就必須用這個,否則字符串處理直接亂碼給你看。不過跟虛擬主機提供商交涉了一下,那個哥們比較好說話,按照我告訴他的在 php.ini里頭把extension中的dll加載了。不過PEAR就完全沒有辦法,主機上安裝的PHP4不知道是什么發布版本,根本不帶PEAR, 我也不知道怎么跟他說安裝的方法,因為的確比較麻煩,需要從pear.php.net下載之后copy到php安裝目錄,然后運行go- pear.bat,然后用pear -install DB的命令從Internet上安裝DB package,然后在php.ini中加上include_path='.;c:\php\pear'; 這才能算完。看來PEAR只能自己搞定了。
開始我只是把需要用到的PEAR文件copy到我的blog目錄中,直接指定絕對路徑include,需要改很多地方,而且還是不好用,使用DB.php的時候根本不能創建object,也不能建立數據庫連接。
后來在網上搜索了半天找了一些文章,不過上面都是說怎么通過SSH登錄到主機安裝,再不就是說用ftps遠程安裝。使用ssh是不用想了,ftps要求必須php5.0以上,而且php打開了openssl的模塊,我也不符合這些要求。
后來經過摸索找到了一個可行的解決方法:
1、在本機環境中安裝PEAR,并且安裝好需要的模塊(我安裝了DB模塊)。
2、upload所有的PEAR目錄到虛擬主機的相關目錄下(d:\web\blog\PEAR)
3、修改pear.ini如下:(修改紅色字部分為目前PEAR的實際目錄,然后save)
#PEAR_Config 0.9
a:8:{s:15:"preferred_state";s:6:"stable";s:7:"bin_dir";s:6:"D:\php";s:7:"php_dir";s:11:"D:\web\blog\pear";s:7:"doc_dir";s:16:"D:\web\blog\pear\docs";s:8:"data_dir";s:16:"D:\web\blog\pear\data";s:8:"test_dir";s:17:"D:\web\blog\pear\tests";s:7:"php_bin";s:16:"D:\php\.\php.exe";s:10:"__channels";a:2:{s:12:"pecl.php.net";a:0:{}s:5:"__uri";a:0:{}}}
a:8:{s:15:"preferred_state";s:6:"stable";s:7:"bin_dir";s:6:"D:\php";s:7:"php_dir";s:11:"D:\web\blog\pear";s:7:"doc_dir";s:16:"D:\web\blog\pear\docs";s:8:"data_dir";s:16:"D:\web\blog\pear\data";s:8:"test_dir";s:17:"D:\web\blog\pear\tests";s:7:"php_bin";s:16:"D:\php\.\php.exe";s:10:"__channels";a:2:{s:12:"pecl.php.net";a:0:{}s:5:"__uri";a:0:{}}}
4、程序代碼中加入:
# 擴展include_path
set_include_path( get_include_path() . PATH_SEPARATOR . 'D:\web\blog\pear');
set_include_path( get_include_path() . PATH_SEPARATOR . 'D:\web\blog\pear');
這樣就可以了,不用SSH也不用FTPS,更不用麻煩Administrator
另外,這個主機配置的php.ini基本上都是用的default值,我比較討厭magic_quotes_gpc也是on的。以下代碼可以搞定,
# 關閉Get_magic_quotes_gpc
if (get_magic_quotes_gpc()) {
if (get_magic_quotes_gpc()) {
$_POST = array_map('stripslashes_deep', $_POST);
$_GET = array_map('stripslashes_deep', $_GET);
$_COOKIE = array_map('stripslashes_deep', $_COOKIE);
}
$_GET = array_map('stripslashes_deep', $_GET);
$_COOKIE = array_map('stripslashes_deep', $_COOKIE);
}
該文章的原文地址為: http://www.wujianrong.com/archives/2007/04/phppear.html
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
