文章

目前顯示的是 四月, 2012的文章

解決 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 …

Linux 中安裝 php-zip 模組

圖片
php-zip模組在phpexcel這個功能套件中是屬於必要的項目,但是很不幸的,這個東西沒辦法直接用yum來安裝。
這個時候google一下大部分的都會教你自己下載package安裝。不過這個對於我們來說實在是太麻煩了~因為還要自己編譯。
翻了一個晚上以後終於找到有趣的方法了
用PECL的方式安裝
步驟1.
yum -y install pcre-devel gcc zlib zlib-devel 步驟2.
pecl install zip 快好了~~步驟3.
請在php.ini中加上
extension_dir= "./usr/lib/php/modules/";
extension=zip.so; 其中extension_dir的路徑其實在執行完步驟2之後就會有訊息提示你摟
最後:
service httpd restart

成功以後phpinfo()會多出這個:

參考文章: Install zip module php-zip on Fedora 16 在 Fedora 13 安裝 pecl! linux下安装php zip模块(不用重新编译PHP)


解決PHP JSON 中文亂碼的問題

圖片
通常我們在和其他廠商串接資料時的API除了使用XML製作外,JSON格式也是一個選項。
小灰狼通常會用XML作為API的介質,不過總是會遇到例外。

在PHP中要將資料轉換成JSON格式只需要用json_encode這個函示就可以搞定。
$arr = array('a'=>'小灰狼');
echo json_encode($arr); 不過,有趣的是,PHP中若是把中文做json_encode會變成亂碼。當然這也是有解藥的(不然我寫這個幹嘛)
$arr = urlencode(array('a'=>'小灰狼'));
echo urldecode(json_encode($arr)); 這個原理很簡單,因為只有中文會讓json_encode出現亂碼,那麼我們先用urlencode讓字串不會有中文,當被編碼後的字串被JSON處理過後,再利用urldecode將剛剛的字串轉回來。

參考資料:

PHP 输出中文 JSON 字符串