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

codeIgniter 環境配置 將welcome 改為index

當我們一開始下載下來 CodeIgniter 以後,會發現它的初始路徑是用 controllers 中的 welcome.php 開始,這件事讓我感到非常的不愉快,怎麼看怎麼覺得奇怪,於是我在 config 資料夾中的 rotues.php 找到這個設定值:
$route['default_controller'] = "welcome";
原本以為這樣就大功告成了,不過卻出現了另一個問題,如下圖



Severity: Notice
Message: Undefined property: Index::$load
Filename: controllers/index.php
Line Number: 8

這就奇怪了,經過反覆確認 controllers 和 view 的對應並沒有錯誤,問題出在哪裡呢?
原來 Index 是保留字,也就是說 codeIgniter 是不允許我們使用 index 當作 controllers 的。不過我們只要寫成這樣:
class Index extends CI_Controller {
public function __construct()
{
parent::__construct();
// Your own constructor code
}
}
一樣也是可以用的喔


參考資料
http://codeigniter.org.cn/forums/thread-9556-1-1.html
http://www.codeigniter.org.tw/user_guide/general/reserved_names.html

留言

這個網誌中的熱門文章

[JavaScript] 將 CSV 檔案轉換成 JSON 資料

JavaScript 將 Array 和 Object 轉成 JSON

讓 PHP 接收 post 的 json 資料