發表文章

目前顯示的是 六月, 2008的文章

解決 mongodb 無法啟動的問題

某天起床後 mongo 忽然活不回來了
查了一下錯誤訊息的 log:

Docs: https://docs.mongodb.org/manual
  Process: 120107 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=1/FAILURE)
  Process: 120104 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (code=exited, status=0/SUCCESS)
  Process: 120101 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (code=exited, status=0/SUCCESS)
  Process: 120099 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (code=exited, status=0/SUCCESS)

 1月 15 04:01:26 foso-test systemd[1]: Starting MongoDB Database Server...
 1月 15 04:01:29 foso-test mongod[120107]: about to fork child process, waiting until server is ready for connections.
 1月 15 04:01:29 foso-test mongod[120107]: forked process: 120112
 1月 15 04:01:29 foso-test systemd[1]: mongod.service: control process exited, code=exited status=1
 1月 15 04:01:29 foso-test systemd[1]: Failed to start MongoDB Database Server.



看起來應該是權限的問題: 發現很多人都遇到相同的狀況,主要有兩個資料夾勢必要擁有 mongod 這個權限擁有才可以。 所以大部分的解決說明都是這樣作:
chown -R mongod:mongod …

使用nl2br 讓php5裡面自動補上br的換行方式

前幾天遇到的一個案子,要讓使用者在表單中填入多行文字。
本來我很呆的在後面加上說明(要換行請輸入
)。不過這種方法真的很不人性化。
今天終於被我問出了解決的方法
本來只能輸入多行文字進資料庫,但是資料輸出後因為沒有找到換行字元所以會變成同一行。
利用nl2br 的方式可以讓程式自動補上換行
字元。
使用方式:

$變數內容 = 多行資料的值;
echo nl2br($變數內容);

參考網站:http://tw2.php.net/nl2br

使用範例:
$row_bra = $bra_row["desc"];
echo nl2br($row_bra);

顯示整段網址列語法

echo $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];

前面PHP_SELF是檔案位址,QUERY_STRING是參數的內容。

這個語法用來debug很好用說。
不過如果要秀出最完整的網址要自己加上domain喔!
變成是這樣
echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
domain後面不用再加斜線了說

報告完畢

MySQL 強制設定為utf-8內容

使用虛擬主機有一個壞處,就是環境沒有辦法自己設定
就拿智邦來說吧!他的phpMyadmin版本預設是big5的,但是我的通通都是用utf-8寫的。
這樣會產生亂碼耶!怎麼辦!!
這個不難處理啦
經過智邦的工程師說明後
我們只要在sql的語法中加入

SET NAMES utf8;
SET CHARACTER_SET_CLIENT=utf8;
SET CHARACTER_SET_RESULTS=utf8;

這樣在上傳的時候就會強制用utf-8處理資料摟