【前言】
[LAMP - Wikipedia]
應該不用多說了吧,不過本次實作 Web Server 不是使用 Apache,而是使用小而輕巧的 Lighttpd-輕量級 Web
Server,不知是不是應該改叫 LLMP (Linux Lighttpd MySQL PHP) :p
【作業環境】
CentOS 5.1 (Linux 2.6.18-53.1.4.el5)
mysql-server-5.0.22-2.2.el5_1.1
lighttpd-1.4.18-1.el5.rf
php-5.1.6-15.el5
php-mysql-5.1.6-15.el5
【安裝及設定】
MySQL
Step1.安裝 MySQL Database
我使用郡組安裝把相關會用到的套件都裝入,在安裝以前先查看會安裝哪些套件
複製內容到剪貼板
代碼:
#yum groupinfo "MySQL Database" //查尋 MySQL
郡組套件會安裝哪些套件
Group: MySQL Database
Description: This package group
contains packages useful for use with MySQL.
Mandatory Packages:
//強制安裝套件
mysql
Default Packages:
//預?#93;會安裝的套件
unixODBC
mysql-server
MySQL-python
mysql-connector-odbc
libdbi-dbd-mysql
perl-DBD-MySQL
Optional Packages: //建議安裝 (視個人需求自行安裝)
mod_auth_mysql
mysql-devel //MySQL
?#123;式?#125;發套件及函式庫
qt-MySQL
mysql-bench
//MySQL 效能測試套件
php-mysql
接下來就利用 yum 來進行郡組安裝 MySQL 吧
複製內容到剪貼板
代碼:
#yum groupinstall "MySQL Database"
你可能會問說怎麼沒有 MySQL-shared (MySQL 用戶端函式庫套件),這個套件若需要就到[MySQL
Download]找對應的 MySQL 版本及需要的 rpm 來安裝吧。
Step2.修改 /etc/my.cnf
我想將 DB
放置資料夾從預設的 /var/lib/mysql 改放到 /home/db/mysql 下,我喜歡集中管理 :p
複製內容到剪貼板
代碼:
#mkdir /home/db ; mkdir /home/db/mysql
#chown
mysql:mysql /home/db/mysql
#vim /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql //預?#93;值
datadir=/home/db/mysql
//修改後
再來就是執行 chkconfig 將 mysqld 設定在 runlevel 2 ~ 5 為啟動
MySQL 服務
複製內容到剪貼板
代碼:
#chkconfig mysqld on
#chkconfig --list |grep
mysqld //查看?#93;定是否生效
mysqld 0:off 1:off 2:on 3:on
4:on 5:on 6:off
Step3.啟動 MySQL
複製內容到剪貼板
代碼:
#/etc/rc.d/init.d/mysqld start //啟動 MySQL 服務
Initializing MySQL database: Installing all prepared tables Fill help
tables
Starting MySQL: [ OK ]
檢查 MySQL 是否啟動成功並 Listen 相關 Port
複製內容到剪貼板
代碼:
#netstat -tnl
Active Internet connections (only
servers)
Proto Recv-Q Send-Q Local Address Foreign Address
State
tcp 0 0 0.0.0.0:3306 0.0.0.0:*
LISTEN
Step4.設定 MySQL 管理者密碼
剛安裝完 MySQL
後記得趕快設定管理者密碼 (這裡的 root 跟 CentOS 的 SuperUser Root 沒關系哦!!)
複製內容到剪貼板
代碼:
#mysqladmin -u root password YOUR_PASSWORD
//?#93;定新密碼
#mysqladmin -u root -p password NEW_PASSWORD
//日後若要更改密碼
Step5.測試登入 MySQL
設定好 MySQL 管理者密碼後試著登入看看吧:p
複製內容到剪貼板
代碼:
#mysql -u root -p
Enter password:
//輸入剛才?#93;定的 MySQL 密碼
Welcome to the MySQL
monitor. Commands end with ; or \g.
Your MySQL connection id is 1581 to
server version: 5.0.27
Type 'help;' or '\h' for help. Type '\c' to clear the
buffer.
mysql> //成功登入 mysql
Step6.建立其它 MySQL 帳號
以下命令為表示允許連線主機來源是 localhost 以 sqluser1 的
MySQL 帳號及密碼為 1234 登入的使用者,能對指定的資料庫 testdb 擁有所有權限。
複製內容到剪貼板
代碼:
mysql> grant all privileges on testdb.* to
sqluser1@localhost IDENTIFIED BY '1234';
Query OK, 0 rows affected (0.00
sec)
mysql> FLUSH PRIVILEGES ; //重新載入(使變更生效)
Query OK, 0
rows affected (0.01 sec)
Lighttpd
Step1.安裝
lighttpd、lighttpd-fastcgi 套件
因為 Lighttpd 使用 FastCGI 來處理 PHP 所以要一併安裝
複製內容到剪貼板
代碼:
#yum -y install lighttpd lighttpd-fastcgi
Step2.修改 lighttpd 設定檔
修改 lighttpd 設定檔來支援 PHP (FastCGI)
複製內容到剪貼板
代碼:
#vim /etc/lighttpd/lighttpd.conf
server.modules
= (
"mod_fastcgi", //這行的 mark 要拿掉(支援 PHP-FastCGI)
)
#### fastcgi module
## read fastcgi.txt for more info
## for PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini
fastcgi.server = ( ".php" =>
( "localhost" =>
(
"socket" => "/var/run/lighttpd/php-fastcgi.socket",
//預?#93;值
"socket" =>
"/tmp/php-fastcgi.socket", //修改後
"bin-path" => "/usr/bin/php-cgi"
)
)
)
Step3.設定開機自動啟動 lighttpd 服務
使用 chkconfig 指令來查看 lighttpd 在各
runlevel 下狀態
複製內容到剪貼板
代碼:
#chkconfig --list |grep lighttpd
lighttpd
0:off 1:off 2:off 3:off 4:off 5:off 6:off
設定
lighttpd 在 runlevel 為 2、3、5 時會啟動服務
複製內容到剪貼板
代碼:
#chkconfig --levels 235 lighttpd on
檢查剛才的設定是否生效
複製內容到剪貼板
代碼:
#chkconfig --list |grep lighttpd
lighttpd
0:off 1:off 2:on 3:on 4:off 5:on
6:off
Step4.啟動 lighttpd 服務
複製內容到剪貼板
代碼:
#/etc/rc.d/init.d/lighttpd start
Starting
lighttpd: [ OK ]
檢查一下
lighttpd process 是否執行
複製內容到剪貼板
代碼:
#ps ax |grep lighttpd
4266 ? S 0:00
/usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf
檢查是否 LISTEN Port
80
複製內容到剪貼板
代碼:
#netstat -tnl |grep :80
tcp 0 0
0.0.0.0:80 0.0.0.0:* LISTEN
PHP
Step1.安裝 PHP 5
安裝 php 及 php-mysql 套件
複製內容到剪貼板
代碼:
#yum -y install php php-mysql
Step2.查尋安裝 PHP 是否成功
查看安裝的 PHP 版本
複製內容到剪貼板
代碼:
#php -v
PHP 5.1.6 (cli) (built: Sep 20 2007
10:16:10)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0,
Copyright (c) 1998-2006 Zend Technologies
查看目前 PHP 模組
複製內容到剪貼板
代碼:
#php -m
[PHP Modules]
bz2
...略
xml
zlib
[Zend Modules]
Step3.測試 Lighttpd 能否正確處理 php 檔案
隨意建立一個檔名為 test.php 的檔案,然後放到 lighttpd 的 web 目錄而 test.php 內容如下如果能看到 php
的預設頁就表示 lighttpd 能正確處理 php 檔案了
複製內容到剪貼板
代碼:
phpinfo>
【參考】
[學生用伺服器建置流程(CentOS 5 版)PHP & MySQL]
[台灣PHP聯盟 - 在 RHEL 修改
mysql 放置資料的路徑]
[Jamyy's Weblog: 架設自己的即時訊息伺服器 - 使用 jabberd 2]
【Log】