最近在用「網樂通」跑伺服器,發現坊間常用的Joomla或wordpress都太吃資源了,但有兩款部落格軟體還滿適合的,都是大陸製作的開放原碼軟體,分別是Bo-blog與Typecho,Bo-blog的功能還算滿齊全,比較適合一般使用者。
至於Typecho還滿清爽的,什麼都沒有,資源也相對較少,大多都要自己寫,很有挑戰性。像我剛開始使用Typecho就遇到一個問題,一開始設定網站跟目錄的時候用內網IP比較方便,但這個資訊是寫死在資料庫上面,對外連線時,他不會自行修改。如我用127.0.0.1,從外面連進來的時候仍然是127.0.0.1,這樣就會抓不到版模格式等等,而且如果原本的圖片、附件路徑用內網IP,到時候也要手動更改。所以我乾脆寫一個程式,讓他一鍵修改原始設定、網誌與附件的IP。
這個程式需要兩個php程式,雖然也可以寫在一起,但是為了以後的擴充性,我還是分開寫,首先要寫一個登入資訊,這個大同小異,我直接到網路上抓別人寫好的,只需要修改「資料庫設定」的那四行即可,寫完後儲存檔名成mysqlinc.php,程式碼如下:
<?php //資料庫設定 $dbServer="localhost";//資料庫位置 $dbName="typecho";//資料庫名稱 $dbUser="root";//帳號 $dbPass="86888";//密碼 //連線資料庫伺服器 if (!@mysql_connect($dbServer,$dbUser,$dbPass)) die ("無法連線資料庫伺服器"); //設定語系 mb_internal_encoding('utf8'); mysql_query("SET CHARACTER SET 'utf8'"); mysql_query("SET NAMES 'utf8'"); //選擇資料庫 if (!@mysql_select_db($dbName)) die ("無法使用資料庫"); ?>
接下來就是修改IP的php,檔名隨便取都沒差,如果你也是用Typecho,就不用修改。如果是用其他架站軟體,相信你知道要把$sql改成什麼,這裡就不說了,程式碼如下:
<?php include("mysqlinc.php");//呼叫登入資訊 $newip=$_POST['newip'];//傳過來的IP $res=mysql_query("SELECT * FROM `typecho_options` WHERE name='siteUrl'");//IP的資料欄位 $row=mysql_fetch_array($res); $oldip=$row['value']; $oldip=substr($oldip,7,-8);//去頭去尾 if($newip=="") echo"原本的IP:".$oldip; else { $sql="UPDATE `typecho_options` SET `value` = REPLACE (`value`, '".$oldip."', '".$newip."') WHERE `value` LIKE '%".$oldip."%' "; mysql_query($sql);//option的資料 $sql2="UPDATE `typecho_contents` SET `text` = REPLACE (`text`, '".$oldip."', '".$newip."') WHERE `text` LIKE '%".$oldip."%' "; mysql_query($sql2);//網誌上的資料 echo"修改完成。新的IP:".$newip; } ?>
還沒結束,在底下還要寫一個html的輸入框,程式碼如下:
<form action="" method="post" name="form1"> 要修改的IP(只需填數字) <input name="newip" type="text" id="newip" size="40" /> <input name="submit" type="submit" value="修改"> </form>
這個程式的原理是這樣的,先讀出原本在資料庫內的IP,當你給他一個新的IP,他就去取代舊的IP,就是這麼簡單。
全站熱搜