Mac mini Server: 開機啟動 Apache 與 MySQL

原本以為簡單到不行的工作,讓我吃足了苦頭啊。

這些工作以前在FreeBSD跟Linux上做好多次了,都是簡簡單單的完成。這次要在Mac mini上來完成這工作,可是小小的困擾了我一下。困擾我的不是安裝方法,而是開機時的啟動。一開始,想說跟FreeBSD一樣,去找開機的Script,但總覺得不是很對,接下來發現,似乎有一個特定的程序,可以讓我們加入自己要的Service。

下載MySQL, Apache, PHP最新版本,然後開始安裝,我相信這很簡單。

configure, make al install……. 這些動作,請參考網路上的資訊啦。

這個是我常忘記的東西,寫在這邊提醒一下自己:

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

編譯好要的資料後,接下來就是讓這些東西變成每次開機都會自動執行的Service。先從Web Server開始,先確定我們安裝的Apache是否可以正確起動。並且是否能抓取到Mac的使用者結構。Mac的使用者結構跟FreeBSD不同,是放在/Users/XXX,而網頁則是在/Users/XXX/Sites。利用我們安裝好的apachectl來測試。

~apache2/apachectl start

如果可以正確使用,接下來才是重頭戲。

先看一下 /etc/hostconfig ,這邊存放的就是每次開機可能會啟動的東西列表。利用YES,NO來區分。

# This file is going away

AFPSERVER=-NO-
AUTHSERVER=-NO-
AUTOMOUNT=-YES-
NFSLOCKS=-AUTOMATIC-
NISDOMAIN=-NO-
TIMESYNC=-YES-
QTSSERVER=-NO-
WEBSERVER=-NO-
SMBSERVER=-NO-
SNMPSERVER=-NO-

APACHE22=-YES-

上面的APACHE22=-YES- ,就是這次我們要加入的啟動行列的服務。接下來,我們要讓系統去做關聯性的設定,不然,只會看到要開啟APACHE22,可是確不曉得執行的地方。

在MacOS X裡,有一個地方專門就是放這種服務的,在 /System/Library/StartUpItems/。請在這目錄建立要的目錄。

$ make Apache22
$ cd Apache22
$ sudo vi StartupParameters.plist

上面這些動作,會開啟一個檔案,來填寫要執行的參數。請依下列的格式填入要的東西:

{

Description = “Apache22 Daemon”;

Provides = (“APACHE22”);

  Requires = (“Network”);

  Uses = (“Network”);

  OrderPreference = “None”;

  Messages =

  {

start = “Starting Apache22 daemon”;

stop = “Stopping Apache22 daemon”;

restart = “Restart Apache22 daemon”;

  };

}

上面是一些提供給系統辨識用的資訊,跟產生訊息的資料,以及這個Service所需要的服務跟載入順序。

接下來,則是要做軟體的呼叫。先開個檔。

$ sudo vi Apache22

填入以下的程式:

#!/bin/sh

. /etc/rc.common

if [ “${APACHE22:=-NO-}” = “-YES-” ]; then

ConsoleMessage “Starting Apache22 WEB services”

/usr/local/apache/bin/apachectl start

fi

然後,記得把權限設定正確,重開機後,看有沒跑起來。就這樣!

對了,系統辨識的地方是在Apache22那檔案的判斷式,所以,目錄名稱跟裡面的設定,自己可以做一些更動,讓文字更好讀。

這寫好,也別急著開機,這是有辦法Debug的,像我寫這份文件時,就因為打錯字而造成了錯誤。Debug方法很簡單,就執行看看嘍。方法如下:

sudo /sbin/SystemStarter -d

而,MySQL的設定,跟Apache相同,就不多加說明了。

參考資料就看看這邊吧:

http://www.macdevcenter.com/pub/a/mac/2003/10/21/startup.html
http://tasuka.idv.tw/blog/static.php?page=static050324-023203

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *