文章

目前顯示的是 五月, 2011的文章

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

php物件導向簡介

物件導向的寫法可以減低我們製作大量重複動作的時候的負擔
好的物件可以讓你上天堂不好的物件會讓你快抓狂~~~

一般而言,最簡單的寫法是這樣:


class a{
    function a_f(){
        動作內容;
        return 結果;
    }
}
如上面寫的 class表示一個類別 function表示類別中要執行的動作,執行完動作以後就會用return丟出執行結果。一個class中可以包含多個function 其中可以互相有相依性也可以單純只是你覺得放一起比較好??

正常的用法我們要使用整個class的東西的時候必須要將類別建立成物件
$a = new a;

上面這一段的語法就是把類別建立成物件實體,之後才可以使用物件實體的動作內容。
echo $a->a_f;
上面這一段就表示把a_f這個動作直接echo出來。當然你也可以拿來幹其他的事情。
==============================================================================

剛剛介紹的是要載入整個class的方式,不過有些時候我們並不需要使用整個class我們只需要用到其中一個小小的function而已我們也可以用靜態的方式來進行呼叫。
echo a::a_f();
這樣的效果就和上面那一段的結果是一樣的喔,就不需要特別new一個實體出來。