[Ubuntu] Apache 2 + MySQL + PHP ( + FastCGI ) on Ubuntu 8.04 Server
| 十一月 05, 2008 | 沒有迴響| 沒有引用| 5572 reads | Size: L, M, S | Edit: P, C, R || Category: Server, Ubuntu. and Tags: ubuntu, server, amp, apache, mysql, php. |
最近試用了台灣一間主機商的 VPS,由於他有提供 Ubuntu,就想說來玩玩吧。Why?說起來慚愧,玩 Ubuntu 好一陣子了,但其實我不算有在 Ubuntu 上面跑過 AMP 這類的服務,之前多半是 FreeBSD 或 Debian 為主。當 Server 使用,大概就只有一台 Lab 的 File, Printer Server 有長期使用。
而關於這間主機商的部份,現在還在體驗中,過陣子差不多了,應該會來篇聊聊心得。接著,來分享、紀錄一下 這台 Ubuntu 主機的 AMP(Apache, MySQL, PHP)的安裝過程。
套件庫
首先,要先處理好你的套件庫,否則可能有部份軟體會沒有 apt 來安裝。你可以下載我的 sources.list for 8.04 server 來用:
# cd /etc/apt
# sudo wget http://file.twntwn.info/static/ubuntu/sources.list.hardy.server
# sudo mv sources.list.hardy.server sources.list
# sudo apt-get update
這樣就完成套件庫的更新了。
AMP with Prefork
接下來是 Apache 的部份。如果要裝 Prefork 的版本,會比較簡單,也沒有相依的問題(要用 prefork 才能安裝 libapache2-mod-php5,相關的 PHP 套件裝起來比較沒問題。)
首先來裝 Apache2:
# sudo apt-get install apache2 apache2-mpm-prefork
這樣就完成 apache 的部份了,預設的目錄是 /var/www 。
接著是 PHP 的部份:
# sudo apt-get install php5 libapache2-mod-php5 php5-cli php5-dev php5-gd php5-imagick php5-mcrypt php5-xmlrpc
當然,需要更多的 php5 extension 可以自己補。完成後,手動啟動一下 php5 for apache2 的 mod:
# sudo a2enmod php5
接著來安裝 MySQL:
# sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql
現在的版本,安裝過程應該會問你 root for MySQL 的密碼,所以不需要額外的設定程序。
AMP with Worker
如果想要用 Worker,現在似乎只能夠用 fast-cgi 來跑。
首先安裝 apache with mpm-worker:
# sudo apt-get install apache2 apache2-mpm-worker libapache2-mod-fcgid
接著是 php 的部份:
# sudo apt-get install php5 php5-cgi php5-cli php5-dev php5-gd php5-imagick php5-mcrypt php5-xmlrpc
最後就是 MySQL:
# sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql
一樣,現在的版本,會在安裝過程詢問你 root for MySQL 的密碼。
完成後,接著要來設定 php 以 fast-cgi 的模式來跑。到 /etc/apache2/sites-available 的資料夾下,編輯 default 或是其他你要跑 PHP 的 Site 設定檔。
在「<Directory ...> ... </Directory」那段裡面,加上兩行:
AddHandler fcgid-script .php
FCGIWrapper /usr/lib/cgi-bin/php5 .php
並且在這段的「Options」,多加上個:
ExecCGI
這樣就可以了。
TEST AMP
在前面的兩個方法安裝完成後,就可以重開 Apache:
# sudo /etc/init.d/apache2 force-reload
到這邊,就差不多了。最後,可以寫個檔案,內容是:
<? phpinfo(); ?>
然後連到這個檔案,就可以確認 PHP、MySQL 正常啟用了嗎?
Apache 設定與網頁壓縮
前面的步驟的完成後,最後可能會依序去調整一下 AMP。
Apache 的部份,首先要編輯的就是 /etc/apache2 下面的 apache可以先到 /etc/apache2/mod-available 下面看看,裡面有很多「MOD_NAME.load」和「MOD_NAME.conf」,看看有哪些想要用的 mods,需要啟用的就用:
# sudo a2enmod MOD_NAME
來啟動;以及編輯「MOD_NAME.conf」來調整設定。
舉例來說,啟用網頁壓縮的 deflate 來說,方法就是:
# sudo a2enmod deflate
然後改一下設定,編輯 /etc/apache2/mods-available/deflate.conf,改為:
<IfModule mod_deflate.c>
DeflateCompressionLevel 6
AddOutputFilterByType DEFLATE text/html text/plain text/xml
AddOutputFilter DEFLATE html htm xml css js
</IfModule>
之類的。最後,重開 Apache:
# sudo /etc/init.d/apache2 force-reload
完成。
另外,如果你有多個站台,站台設定可以寫在 /etc/apache2/sites-available 下面,偷懶一點可以直接複製 default 去修改。不過記得,如果跑 fast-cgi,要看一下前面的設定。改完後,例如檔案名稱 XXX,就用:
# sudo a2ensite XXX
來啟用。一樣,記得重開 Apache。
PHP 設定 與 eAccelerator
這邊,首先要注意,如果是跑 apache2-mpm-prefork,那麼 php.ini 的位置在「/etc/php5/apache2/php.ini」;如果是 fast-cgi 模式,那麼 php.ini 在「/etc/php5/cgi/php.ini」。
如果要安裝 eAccelerator,到 這邊 下載最新版本,解壓縮並進入該資料夾。然後就可以開始編譯了:
# sudo /usr/bin/phpize ; sudo ./configure --enable-eaccelerator=shared --with-php-config=/usr/bin/php-config ; sudo make ; sudo make install
接著幫 eAccelerator 建立快取的資料夾:
# sudo mkdir /var/tmp/eaccelerator ; sudo chmod 0777 /var/tmp/eaccelerator
接著加上 eAccelerator 的設定。在 /etc/php5/conf.d 下面增加一個檔案:
# sudo nano /etc/php5/conf.d/eaccelerator.ini
內容是:
extension="eaccelerator.so"
eaccelerator.shm_size="32"
eaccelerator.cache_dir="/var/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
一樣,重開 Apache:
# sudo /etc/init.d/apache2 force-reload
完成。可以用 phpinfo來檢查一下。
到這邊,應該就差不多了。
Enjoy Your Ubuntu Server :)
