要利用 LinkStation 來架各種網站(個人網頁、Blog、Wiki 還是討論區),不能或缺的是 Linux 上必備的 AMP (Apache + MySQL + PHP),有了這些基本服務,只要抓程式碼回來解壓縮、做點調整,就可以提供各種 Web-based 的服務和功能。
第一個動作先來裝 Apache 這個 Web Server:
apt-get install apache2
安裝完畢,系統會自動啟動 Apache 服務(還會看到一些錯誤訊息,先不管),因為還沒搞好設定的部分,我們先停掉服務:
/etc/init.d/apache2 stop
如果未來有執行 Perl/CGI 的需求,記得要順道安裝給 Apache 用的 Perl 套件:
apt-get install libapache2-mod-perl2
安裝完畢,先檢查是不是服務會在系統啟動的時候一併啟動,檢查設定檔:
cat /etc/default/apache2
內容應該是下面這樣,預設是開機啟動 (NO_START=0),不想開機啟動再改成 1:
# 0 = start on boot; 1 = don't start on boot
NO_START=0
接下來是調整主要設定檔:
nano /etc/apache2/apache2.conf
第一行是設定預設網頁編碼,改成 UFT-8,第二行補上對 Perl/CGI 附檔名的識別支援(記得這兩行前面的 # 要拿掉),再來是修改網頁服務的工作帳號和群組,最後那一行要自己塞在設定檔的最後(或是把 localhost 改成你自己的主機名稱),用來避免服務啟動的錯誤訊息:
...
AddDefaultCharset UTF-8
...
AddHandler cgi-script. .cgi .pl
...
User www
Group users
...
ServerName localhost
存檔離開。另外說明一下關於工作帳號和群組的修改。系統裡預設是用 www-data 這個帳號和 www-data 這個群組,為了好看 (?!)、還有和其他服務共享的目的,所以我新增一個帳號 www,並且更改群組到 user,要手動修改帳號資訊,要編輯 /etc/passwd:
nano /etc/passwd
原來 www-data 的紀錄是這樣(也許每個系統在 ID 上會不一樣):
www-data:x:33:33:www-data:/var/www:/bin/sh
我在最後面新增了一列:
www:x:104:100:www:/www:/bin/false
新增的帳號名稱是 www,帳號 ID 是 104 (請自己找一個不重複的)、群組 ID 是 100 (屬於 users 這個群組,不確定可以看 /etc/group 內容)、帳號說明以及所屬根目錄 /www,而且也不允許登入。以上非硬性規定,可以根據個人需要調整。處理完設定檔和帳號群組,最後要處理的最重要的,就是實際網頁檔案放置的目錄,也就是網頁對外提供服務的根目錄。這裡先處理預設的網站,系統裝好用的預設目錄是 /var/www,對應到網站的根目錄 (http://localhost),要修改關於預設站台的設定檔:
nano /etc/apache2/sites-available/default
這裡抓出兩段來改(其他的部分望文生義根據這個範例自行調整):
DocumentRoot /www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /www/>
Options -Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place
#RedirectMatch ^/$ /apache2-default/
</Directory>
ScriptAlias /cgi-bin/ /www/cgi-bin/
<Directory "/www/cgi-bin">
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
以上的修改主要是把預設根目錄從 /var/www 改到 /www、在 Index 前面加一個 '-''、並且 Remark 一段轉址的設定,接下來是設定預設 CGI 程式的目錄,建立一個別名 cgi-bin,對應到 /www/cgi-bin 目錄(這個目錄不存在要自己建立),我們上面有安裝關於 CGI 的支援,以後如果有 CGI 程式可以都放到 /www/cgi-bin 目錄,要存取的時候就是 http://localhost/cgi-bin/(如果有其他目錄別名要設定,可以參照建立一樣的結構)。設定檔都搞定了,可以啟動伺服器囉(以上設定都正確的話,應該沒有任何錯誤訊息):
/etc/init.d/apache2 start
接下來檢驗服務是否有啟動(每個服務驗證都適用喔):
nmap localhost
裡面應該要有一筆 Port 80 的記錄(像這樣:80/tcp open http),代表服務在跑囉~可以隨便做個文字檔,塞點文字進去:
echo "Hello World" > /www/index.html
然後用你的瀏覽器直接連 http://機器的IP位址,看到 Hello World 就成功啦!如果要在 Apache 上面做 Virtual Host (不同網址、指定到同一個 IP、卻指向不同目錄的網頁目錄),在 /etc/apache2/sites-available 目錄下建立一個設定檔,假設以網域名稱當檔名 (範例的網域叫做 forum.test.com,而對應到的實體路徑是 /www/forum):
nano forum.test.com.conf
然後貼入以下內容(請依網域名稱和網頁目錄更改):
<VirtualHost *>
ServerAdmin webmaster@localhost
Servername forum.test.com
DocumentRoot /www/forum
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /www/forum>
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
在 /www/forum 放入一個測試的首頁檔,接下來在 /etc/apache2/sites-enabled 目錄下建立虛擬網站的連結(該目錄應該已經有一個上述 default 的網站連結),以上面的設定檔為例:
ln -s /etc/apache2/sites-available/forum.test.com.conf ./001-forum.test.com
接著重啟 Apache (/etc/init.d/apache2 restart) 就可以生效了!搞定網頁伺服器,依照順序 (AMP),來安裝 MySQL:
apt-get install mysql-server
安裝過程會要求你輸入 MySQL Server 資料管理員 root 的密碼(和系統 root 帳號不一樣),安裝完也會順便啟動服務,可以用下面的命令(和剛剛設定的密碼)去檢查:
mysqladmin -u root -p ping
如果想實際登入,用命令列操作本機的資料庫,可以用以下命令:
mysql -p
這樣預設是以管理者帳號 (root) 登入本機 (localhost),只要輸入剛剛建立的密碼就行了,登入之後有什麼命令、怎麼使用資料庫,請參閱中文參考手冊。最後把 PHP 支援給裝上,主要包括 PHP5 (for Apache),和對 MySQL 資料庫的支援:
apt-get install php5 php5-mysql
完成之後就通通搞定了。以上套件都安裝完先不要重啟,還有設定要改。接下來對 PHP 做設定,編輯設定檔:
nano /etc/php5/apache2/php.ini
按 Ctrl+W 搜尋把下面那行前面的 ';' Remark 給去掉,以增加對 MySQL 的支援。
...
extension=mysql.so
...
現在可以重啟 Apache 了 (/etc/init.d/apache2 restart)。要驗證 PHP 能不能動,可以做一個測試檔,然後看看能不能顯示完整的 PHP 和相關功能。在網頁目錄下做一個 test.php (nano /www/test.php),填入下面的內容:
<?php
phpinfo();
?>
接著用瀏覽器連接 http://機器的IP位址/test.php,會秀出 PHP 的資訊。有了 PHP,我們先來裝一套一套透過 PHP 來管理 MySQL 的網頁工具:PHPMyAdmin,為求安裝單純和程式的最新版,我們直接上官網找最新版,到下載頁面找最後的版本,複製連結後在 LinkStation 裡再 wget 下載。舉例說明,我下載的是 2.10.2 全語系版,下載並解壓縮在 /tmp 下面(以下連結不一定能用,請確定官網的最新連結和檔名),刪除下載的檔案、最後還把整個目錄改名稱搬到我們預設的網頁根目錄下 (/www):
cd /tmp
wget http://nchc.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-2.10.2-all-languages.tar.bz2
tar -xjf phpMyAdmin-2.10.2-all-languages.tar.bz2
rm -f phpMyAdmin-2.10.2-all-languages.tar.bz2
mv phpMyAdmin-2.10.2-all-languages /www/phpMyAdmin
接下來要做個設定檔(預設沒有),並且自訂一個 cookie secret (這個步驟是參考官網的 Quick Install):
cp config.sample.inc.php config.inc.php
nano config.inc.php
找到下面這一行,填入一段十六進位的亂數,長度內容不限(下面紅色那個是範例,請訂自己專用的):
$cfg['blowfish_secret'] = 'ba17c1ec07d65003'; // use here a value of your choice
這樣就搞定了。 瀏覽器輸入 http://機器的IP位址/phpMyAdmin,用剛剛安裝 MySQL 那組帳號 (root) 和密碼就能登入。如果嫌 phpMyAdmin 名字太長,可以去更改網頁根目錄下面 phpMyAdmin 這個目錄名稱就行了,登入後,新增一個資料庫管理者帳號像是 admin,設定完整權限後再砍掉原先的 root 帳號,會比較不容易和系統 root 搞混。
為避免未來安裝其他程式和存取共用的問題,可以把整個網頁根目錄 (/www) 的使用者和群組通通設定成上述我們新增的那個工作帳號 (www) 及所屬群組 (users):
chown -R www /www
chgrp -R users /www
到此 AMP 就都裝好了,我們有一個強大的網頁伺服器 Apache、還可以設定虛擬站台,有 PHP5 的支援,還有一套 MySQL 資料庫,這個資料庫還有 Web 介面的管理工具:PHPMyAdmin,有了這個環境,不管是單純做個網站,還是要架設討論區、Blog,都可以用這樣的環境來架設





