一直都很想嘗試將RIA的服務器移到FreeBSD上,因為工作原因,我現在有一個獨立控制的服務器,除了不能從互聯網上下載以外,其他都可以自由控制。於是我就有了一個嘗試和學習FreeBSD的機會。
我安裝的是6.2版本,雖然以前有一點點Liunx的經驗,但是FreeBSD的上手還是費了我不少時間。在安裝了3次系統以後,終於基本上算是上手了。
現在我需要這個服務器需要提供SVN,apache+PHP,FTP,mysql的服務。在此記錄我的安裝過程。
1,SVN
其實FreeBSD6.2是自帶SNV1.4.0版的服務器的。所以SVN就不需要安裝了。
但是我遇到一個問題,使用svnserve啟動了SVN以後,從別的機子一直都無法連接SVN,每次的錯誤都是“服務器積極拒絕”,在windows上安裝SVN服務器的時候沒有遇到這樣的問題。但是在svnserve啟動的時候加入–listen-host要求監聽服務器的IP後,一切都正常了。奇怪,難道SVN默認監聽localhost所以當在其他電腦上連接的時候會被拒絕?不清楚。但是問題是解決了。
另外一個問題,我沒找到關閉SVN的方法,所以每次關閉SVN,我需要通過“ps x”命令羅列出所有進程和UID,然後找到svnserve的UID,使用kill -r UID來強制的關閉進程。不知道是不是應該有其他的方法呢?
2,mysql
mysql讓我郁悶了很久,明明在安裝系統的時候提到mysql應用的,為什麼我就找到mysql被安裝到哪兒了呢?後來才發現,FreeBSD系統帶的是mysql應用,是client端的,而mysqld服務器,是要自己另外安裝的。
因為沒有辦法通過port下載,所以我直接下載了mysql的package。我使用的是mysql5.0.45。
使用了無數次google以後,我在mysql的官網上找到了最直接的安裝步驟:
shell> pw groupadd mysql
shell> pw useradd -g mysql mysql
shell> cd /usr/local
shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -
shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> scripts/mysql_install_db –user=mysql
shell> chown -R root .
shell> chown -R mysql data
shell> bin/mysqld_safe –user=mysql &
關於這個步驟的說明,現在大概已經比較清楚了, 有空的時候再來一一記下。
3,FTP
FreeBSD也自帶了一個ftpd工具。雖然功能非常非常非常的弱,但是基本上能滿足我內部使用的要求,所以暫時就不安裝其他的了。ftpd有兩個文件是用來設定權限的,一個是/etc/fptusers,裡面羅列了所有不能通過ftp訪問系統的用戶名。另外一個是/etc/ftpchroot,裡面羅列了所有將被鎖定在根目錄的用戶名。ftpchroot文件默認是不存在的,因此需要自己手動建立一個。
這個自帶的ftpd系統的目的是為了通過ftp協議方便系統的用戶訪問系統的文件。因此,每個新建的用戶都有默認的ftp權限,可以其根目錄是/home下的用戶根目錄,或者是其他設置的目錄。
4,apache+php
Apache和PHP的安裝我在網上找到了一個不錯的教程,我完全按照這個教程操作,沒有任何問題的安裝並整合了apache和php。轉貼教程如下:
安裝Apache要簡單點,我這裡安裝的Apache版本是 httpd-2.0.50,去下載壓縮包:
下載回來的包叫做 httpd-2.0.50.tar.gz 我們放在 /usr/local/src目錄下。
首先進入目錄後解壓縮:
# cd /usr/local/src
# tar -zxvf httpd-2.0.50.tar.gz
然後就會得到 httpd-2.0.50目錄,我們進入目錄
# cd httpd-2.0.50
首先配置:
# ./configure \
? –prefix=/usr/local/apache \ #我們要把Apache安裝在那個目錄,我們這裡裝在 /usr/local/apache下
? –enable-shared=max \
? –enable-module=rewrite \
? –enable-module=so
執行上面的命令,如果沒有錯誤信息,證明配置成功,然後進行編譯:
# make
一兩分鐘就編譯完了,然後進行安裝:
# make install
安裝完成後,Apache就存放在 /usr/local/apache目錄下了, bin是執行文件的目錄,conf是配置文件目錄,htdocs是網頁的主目錄,logs是日志目錄。
Apache通過 bin/apachectl或者bin/httpd來控制啟動或者停止.
# /usr/local/apache/bin/httpd -k start #啟動apache
# /usr/local/apache/bin/httpd -k stop #停止apache
# /usr/local/apache/bin/httpd -k restart #重啟apache
然後你可以通過 http://localhost 來測試apache是否安裝成功,如果出現apache的頁面則安裝成功,否則請檢查上面的步驟.
安裝PHP
首先進入該目錄後解壓縮:
# cd /usr/local/src
# tar -zxvf php-4.3.8.tar.gz
解壓後進入目錄:
# cd php-4.3.8
進行配置,這一步比較關鍵,一定要設置好,特別是要考慮到你要支持什麼,比如GD庫,xml,mysql等等,如果想知道詳細的配置,執行 ./configure –help來獲得:
# ./configure \
? –with-apxs2=/usr/local/apache/bin/apxs \
? –disable-debug \ #關閉php內部調試
? –enable-safe-mode \ #打開php的安全模式
? –enable-trans-sid \
? –with-xml \ #支持xml
? –with-mysql \ #支持mysql
? –enable-short-tags \ #支持PHP的短標記
? –with-gd \ #支持GD庫
? –with-zlib \ #支持zlib
? –with-jpeg \
? –with-png \
? –enable-memory-limit \
? –disable-posix \
? –with-config-file-path=/usr/local/lib
如果上面的配置沒有錯誤的話,那麼應該最後會顯示感謝使用PHP等字樣,那麼證明配置成功,如果上面的配置選項不支持的話,會提示錯誤.
比如你沒有安裝mysql,那麼–with-mysql就無法使用,所以一定要注意對應選項系統是否能夠支持,如果出現錯誤,那麼就先安裝對應的程序,或
者去掉相關選項.
配置之後就進行編譯:
# make
編譯成功後出現”Build complete.”字樣,那麼就可以進行安裝了:
# make install
安裝完成後把/usr/local/src/php-4.3.8/php.ini-dist復制到/usr/local/lib/,並重命名為php.ini
# cp /usr/local/src/php-4.3.8/php.ini-dist /usr/local/lib/php.ini
基本到這裡PHP就安裝成功了,如果中間出現錯誤,除了在配置的時候沒有選對選項之後一般都不出現錯誤.
整合Apache+PHP
為了讓Apache能夠直接解析php,我們還要進行一些配置.
首先進入apache的配置文件目錄:
# cd /usr/local/apache/conf
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
應該將以上兩句添加在其他AddType之後。
確保文件中有以下一句話,沒有就自己添加在所有LoadModule之後。
# /usr/local/apache/bin/httpd start
現在apache就能夠運行php了,寫個文件測試一下,在/usr/local/apache/htdocs目錄下,新建一個phpinfo.php文件,
文件中只有一行代碼:
phpinfo(); ?>;
保存此文件, 在你的浏覽器中輸入http://localhost/phpinfo.php,你應該看到PHP的系統信息。
如果出現錯誤,比如提示你下災phpinfo.php,那麼apache就是還無法解析php文件,那麼請仔細檢查以上的操作是否正確。