Ubuntu 8.10 Server 安裝步驟及Web服務配置方法
關鍵字: ubuntu 8.10 server 安裝 配置
Ubuntu 8.10 Server 安裝步驟及Web服務配置方法
以下內容轉自互連網:
Ubuntu 8.10 server,由於經驗匱乏,其間的一些問題反覆折磨了我好幾天,終於基本擺平,紀之以備忘。
0、目的和假定
目的是要配置一個基於 Ubuntu Linux 的 網頁伺服器。需要提供 HTML、JSP、Socket 服務。
假定均以 root 登入系統,如果不是 root,部分命令需要加上 sudo 命令首碼。
1、系統安裝
1.1 基本系統
Ubuntu 真的是個非常好的 Linux 實現,安裝非常簡便,手動安裝過 Windows NT/XP/2000/2003 的話,會發現過程沒太大區別。
1.2 隨機組件
因為要做 web 服務,所以在選擇安裝服務元件時,最好選中 LAMP 組件自動安裝部署,我在另一台機器上嘗試了手工安裝部署 LAMP,要麻煩很多。
可以裝上 OpenSSH,之後通過遠端管理伺服器非常方便。
別的組件根據需要選擇安裝。
2、系統配置
2.1 網卡配置
提供網路服務,是 Server 的主要存在意義,所以第一步是要保證接入網路。
系統安裝過程中有機會配置網卡,順利的話,www.britepic.org裝好後即可正常接入。若要修改配置,或是使用了另裝的驅動,需要手工配置網卡。
方法是用修改 /etc/network/interfaces 檔案(可用 vi 或 nano 等編輯器,下同)。
# 第一塊網卡配置
auto eth0
iface eth0 inet static
address 192.168.0.80
netmask 255.255.255.0
gateway 192.168.0.1
以上是靜態 IP 的情況,如果是動態獲得地址,只需將 static 改為 dhcp,且無需下面的參數。
沒有 VPN 的情況下,原來的 network、broadcast、dn-nameservers 都可以注釋掉。
2.2 系統升級
安裝完成後的 Ubuntu 已經可以穩定運行,幾乎不需要任何配置。但應該保持系統核心及外圍補丁的及時更新。可以用 apt-get update 檢測升級各項補丁。
(系統預設的源(apt sources)有可能比較慢,根據網路接入情況,可以換上速度較快的源。一開始用 cn99 的源,首次 udpate 花了近 5 小時,之後換了上海交大的網通源,速度還將就。)
2.3 其他裝置
沒有了。text-based 介面,終端的好處啊,顯卡音效卡之類雜七雜八的都不用去管了。USB 標準統一,基本上都能由系統自動驅動。
SCSI、RAID 這些,沒有環境,沒試過單獨配置。
2.4 預設語言
後悔裝了中文版,既然是終端模式,又何必要中文…反而讓許多命令提示顯示成了亂碼。解決方案如下:
a. 安裝命令列中文支援
網上提到個 zhcon,但經測試其目前版本在 8.10 下無法正常工作,實際上它自己也說明了暫時只支援到 8.04。
b. 修改預設語言為英文
#export LANG=”en_US.UTF-8″
#export LANGUAGE=”en_US:en”
這樣所有的系統提示都是英文了,不過重啟後會失效,要長期有效,需要修改 /etc/default/local,將這兩行加到其中即可。
2.5 圖形介面
用做伺服器的話,實際上不需要配置 GUI,不過因為初裝,對 Ubuntu 和 Linux 都不熟悉,所以還是裝了個 gnome 協助管理。
伺服器版配置 gnome 也很方便:
a) 安裝:
#apt-get aptitude install Ubuntu-desktop
安裝成功後便會自動登入到案頭了。
GUI 裡確實可以更方便地進行很多操作,尤其是檔案、目錄、文本編輯的操作,這些在終端下都是
繁雜的工作。不過很多系統操作,還是要在終端下更方便進行,跟 Windows 不同,GUI 在
Server 上很多時候只起個輔助作用。
b) 取消 GUI 自動啟動:
#update-rc.d -f gdm remove
重啟後便不會自動進入案頭,此時可用 startx 啟動案頭。
c) 恢複 GUI 自動啟動:
#update-rc.d gdm defaults
3、LAMP
3.1 神奇的縮寫
全稱 = Linux + Apache + MySQL + PHP/Perl/Python
縮寫 = LAMP
全稱 = 社會經濟學
縮寫 = xxx
…
3.2 配置
如果沒有特別的要求,那這四個組件都不需要單獨配置。此時用 http://localhost 已經可以開啟 apache 的 It Works 頁面。
3.3 MySQL 的管理
如果要用 phpMyAdmin 來管理 MySQL,那可以用 apt-get 安裝,或用 wget 命令從網上下載,再 tar 解壓到 /var/www/phpMyAdmin,之後需要一個簡單的配置:
a. 複製設定檔:
#cd /var/www/phpMyAdmin
#cp phpMyAdmin/config.sample.inc.php config.inc.php
b. 修改設定檔:
$cfg['blowfish_secret'] = ”; /* 在此處填上 cookie 認證標識,隨便填,不留空即可 */
儲存後,在 http://localhost/phpMyAdmin 即可訪問 pma 了,用安裝時輸入的 MySQL 口令即可進入管理。
如果只在伺服器上操作,那就只能用 mysql 命令列了:
#mysql -uroot -p
4、Java 環境
#apt-get install sun-java6-jre
#apt-get install sun-java6-jdk // 可選
如果安裝 java6 以前的版本,安裝後還需要設定 $JAVA_HOME、$CLASSPATH 環境變數,並加入到登入使用者的 .bashrc 檔案中。
經測試 java6 不需要手工聲明,但不排除部分軟體認死理的可能,所以也可以寫進去,在此不贅述。
5、tomcat
用 apt-get 安裝好 tomcat,感覺 Linux 下的軟體安裝好後就像被炸彈炸飛的人體——分散得到處都是。
以下是初步的分析,可能有誤:
/etc/tomcat6 - 全域配置
/usr/share/tomcat6/ - 程式主目錄
/usr/share/tomcat6/conf/Catalina/localhost/ - 本機部署的 Catalina 配置
/var/lib/tomcat6/ - 工作主目錄
/var/lib/tomcat6/webapps - (應用檔案實際存放於此)
/var/lib/tomcat6/work - 動態工作目錄(動態編譯的 .jsp 存放於此)
5.1 添加系統管理使用者
在 /etc/tomcat6 下是 tomcat 的全域配置,這裡需要修改 tomcat-users.xml
a. 添加角色名稱
<role rolename=”manager”/>
<role rolename=”admin”/>
b. 添加使用者
<user username=”admin” password=”admin” roles=”admin,manager”/>
這樣在重啟 tomcat 後,才可以用 admin 登入到 manager 頁面。
5.2 啟動/停止命令
很多時候需要手動啟動/停止 tomcat,/usr/share/tomcat6 是 tomcat 的主程式目錄。
/usr/share/tomcat6/bin/startup.sh
/usr/share/tomcat6/bin/shutdown.sh
這兩個便是啟動和停止 tomcat 服務的指令碼。
次次啟動的話,此處有可能需要手動建立 conf 和 logs 目錄:
#cd /usr/share/tomcat6
#mkdir conf
#mkdir logs
如果要非 root 身份啟動 tomcat,則需要修改 logs 目錄許可權:
#chmod a+rw logs
沒有意外的話,到這一步為止,這台 Server 就可以正常工作,提供所需的服務了。
如果接入互連網速度夠快的話,安裝配置這樣一台 Server 大概只需要不超過 3 小時。
6、疑難問題
這裡只能記下我遇到過的問題,接觸時間太短,後面的問題肯定還多,慢慢來。
6.1 系統
a. 只要安裝盤或安裝源沒問題,安裝就不會出問題,如果有問題,99% 都是硬體原因引起的(尤其是記憶體)。
b. 系統升級有可能失敗,如果確定網路沒問題,可以更換其他的 apt 源重試。
6.2 tomcat
a. 服務啟動失敗
根據提示判斷原因,通常只有幾種可能:
a1. 目前使用者許可權不足,無法建立運行期檔案和目錄
a2. Java 環境配置不正確,找不到 jre 或相關的 .jar 檔案
a3. 指定的連接埠被佔用(tomcat 預設為 8080)
確定了原因,對應的解決方案都比較簡單。
b. 網站解析失敗
這裡有個特別的情況,比如我網站 sun-web.xml 裡配置了 context-root 為 iGN,但實際發布的 .war
檔案名稱為 iGN_JSP.war,這樣部署到 tomcat6/webapps 下時,自動解包為
iGN_JSP,而在瀏覽器裡的www.britepic.org實際 root 就成了 iGN_JSP,這一點跟在 Windows
平台上有差別。
c. Java 安全性原則問題
之前做 Flash 的時候,在它的安全性原則上折騰了近一周才搞定。沒想到 Java 也有這一手,又被折磨了幾天。
問題發生在 jsp 串連 MySQL 的時候,在 Class.forName() 後用 DriverManager.getConnection() 總是無法返回有效串連,並且也沒有拋出 SQLException 異常。
找資料的痛苦過程就不必細說了,最終找到一份 Sun 官方的關於安全性原則的文檔,終於參照解決。
Java 跟 Flash 在安全管理上是類似的做法,不同域間的互訪,需要提供服務方指定對應的安全性原則。Java 中通過 java.net.SocketPermission() 指定許可的主機和操作。
於是,修改 /var/cache/tomcat6/catalina.policy 檔案,在其中加入如下使用權限設定:
// 26/dec/2008, scum
permission java.net.SocketPermission “localhost”, “connect,resolve”;
這樣便允許了 localhost 的串連和解析請求,更詳細的資料在 JDK 文檔裡也有。
修改後,重啟 tomcat,jsp 終於串連上 MySQL 了…
* 關於 Java 安全性原則,還有很多內容,未及細看,也許有更簡便或更標準的解決方案,以後再說。