1》動態網站架構:
LAMP(Linux+Apache+Mysql+PHP/Python/perl)架構是一套強大的網站解決方案,LAMP是多個開源項目的首字母縮寫,LAMP網站架構主要應用於動態網站的WEB架構, 這種WEB框架具有通用,跨平台,高性能,高負載,穩定等特性,是目前企業部署 網站的首選平台,同時,我們也需要看到Nginx在國內的應用越來越成熟,相對Apache而言, Nginx對於靜態文件的響應能力要遠遠高於Apache服務器,所以近幾年也興起了LNMP的架構,但對於負載PHP的網站而言,Apache仍然是目前的首選產品,我們將通過實際部 署兩個開源網站項目講解LAMP的實際應用,兩個開源項目均采用PHP代碼編寫,分別是Discuz!論壇以及WordPress博客系統,網站架構案例結構中通過基於域名的虛擬主機實 現在一台Apache服務器上運行兩個不同的網站平台,論壇的域名為bbs.example.com,博客的域名為blog.example.com;
2》論壇系統應用案例:
Discuz!是目前國內應用最廣泛的社區論壇建站平台,使用Discuz!可以實現一站式建站服務,Discuz!從2001年發布至今已經經歷了16年的發展歷史,大量的應用案例證明了 該系統的成熟度,穩定性及負載能力都是值得信賴的;另外,由於Discuz!采用的是PHP語言開發,並且開放源代碼,所以Discuz!也是PHP編程人員學習PHP代碼的模板;
部署Discuz!論壇所需軟件環境包括:WWW服務器(如,Apache,Nginx等),PHP軟件包(版本要求在4.3.0以上),MySQL數據庫(版本要求在3.23及以上),這里將采 用LAMP平台實現論壇系統的部署,具體步驟如下;
1>下載軟件包:
#wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.27.tar.gz
#wget http://mirror.bit.edu.cn/apache/apr/apr-1.6.2.tar.gz
#wget http://mirror.bit.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
#wget http://cdn.mysql.com/Downloads/MySQL/mysql-5.6.31.tar.gz
#wget http://cn2.php.net/get/php-5.3.13.tar.gz
2>部署AMP環境:
1)將所有源碼包解壓到特定目錄下:
[root@chw ~]# tar -xvf httpd-2.4.27.tar.gz -C /usr/local/src/
[root@chw ~]# tar -xvf apr-1.6.2.tar.gz -C /usr/local/src/
[root@chw ~]# tar -xvf apr-util-1.6.1.tar.gz -C /usr/local/src/
[root@chw ~]# tar -xvf mysql-5.6.31.tar.gz -C /usr/local/src/
[root@chw ~]# tar -xvf php-5.3.13.tar.gz -C /usr/local/src/
2)安裝依賴包:
3)安裝Apache HTTP Server軟件(具體安裝查看博主相關博客):
[root@chw ~]# cd /usr/local/src/
[root@chw src]# cd apr-1.6.2
[root@chw apr-1.6.2]# ./configure --prefix=/usr/local/apr
[root@chw apr-1.6.2]# make && make install
[root@chw apr-1.6.2]# cd /usr/local/src/apr-util-1.6.1
[root@chw apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
[root@chw apr-util-1.6.1]# make && make install
[root@chw httpd-2.4.27]# ./configure --prefix=/usr/local/apache --enable-so --enable-ssl --enable-rewrite --with-mpm=worker --with-suexec-bin --with- apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util
[root@chw httpd-2.4.27]# make && make install
4)安裝mysql數據庫(具體安裝說明見博主相關博客):
[root@chw mysql-5.6.31]# cd mysql-5.6.31
[root@chw mysql-5.6.31]# groupadd mysql
[root@chw mysql-5.6.31]# useradd -r -s /sbin/nologin -g mysql mysql
[root@chw mysql-5.6.31]# cmake . -DENABLE_DOWNLOADS=1
[root@chw mysql-5.6.31]# make && make install
[root@chw mysql-5.6.31]#chown -R mysql.mysql /usr/local/mysql
[root@chw mysql-5.6.31]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data
[root@chw mysql-5.6.31]# cp /usr/local/mysql/my.cnf /etc/my.cnf
[root@chw mysql-5.6.31]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@chw mysql-5.6.31]# service mysqld start
Starting MySQL. [確定]
[root@chw mysql-5.6.31]# chkconfig --add mysqld
[root@chw mysql-5.6.31]# chkconfig mysqld on
[root@chw mysql-5.6.31]# echo "/usr/local/mysql/lib/" >>/etc/ld.so.conf
[root@chw mysql-5.6.31]# ldconfig
5)創建論壇數據庫:
Discuz是基於PHP的動態網站,很多數據都需要保存在數據庫中,因此我們需要在Mysql數據庫中為論壇創建數據庫,並創建數據庫管理賬戶及密 碼:
[root@chw ~]# /usr/local/mysql/bin/mysql -u root
6)安裝PHP程序:
[root@chw ~]# cd /usr/local/src/php-5.3.13
[root@chw php-5.3.13]# ./configure --prefix=/usr/local/php5 --with-mysql=/usr/local/mysql/ --with-apxs2=/usr/local/apache/bin/apxs --enable-mbstring --enable- sockets
[root@chw php-5.3.13]# make && make install
[root@chw php-5.3.13]# cp php.ini-development /usr/local/php5/lib/php.ini
修改Apache主配置文件httpd.conf以確保該文件中有如下兩條指令,這兩條指令的功能是加載模塊並設置文件類型:
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php
7)測試(服務器生成PHP測試頁面,客戶端通過IP地址訪問測試頁面):
[root@chw php-5.3.13]# echo "<?php phpinfo();?>" >/var/www/html/index.php
[root@chw php-5.3.13]# firefox http://172.31.16.234/index.php
3》初始化論壇系統:
1> 首先修改Apache配置文件,通過DirectoryIndex index.php index.html指令設置默認首頁為index.php,去除主配置文件Include conf/extra/httpd-vhosts.conf指令前的“#”符 號,Include指令讀取httpd-vhosts.conf文件的內容作為主配置文件的一部分:
[root@chw ~]#vim /usr/local/apache/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin root@gmail.com
DocumentRoot "/usr/local/apache/htdocs/bbs"
ServerName bbs.example.com
ErrorLog "logs/bbs.example..com-error_log"
Customlog "logs/bbs.example.com-access_log" common
</VirtualHost>
[root@chw ~]#mkdir -p /usr/local/apache/htdocs/bbs/logs
2>接下來需要從http://download.comsenz.com/DiscuzX/2.5/Discuz_X2.5_SC_UTF8.zip中下載Discuz!軟件包,下載后解壓將upload中的文件上傳至bbs目 錄:
[root@chw src]# mkdir /usr/local/src/discus
[root@chw src]# unzip Discuz_X2.5_SC_UTF8.zip -d /usr/local/src/discus/
[root@chw src]# cp -r /usr/local/src/discus/upload/* /usr/local/apache/htdocs/bbs
[root@chw src]# chmod -R 777 /usr/local/apache/htdocs/bbs/{config/,data}
[root@chw src]# chmod -R 777 /usr/local/apache/htdocs/bbs/uc_client/data/cache
[root@chw src]# chmod -R 777 /usr/local/apache/htdocs/bbs/uc_server/data/
[root@chw src]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
[root@chw src]# service iptables save
[root@chw src]# /usr/local/apache/bin/apachectl restart
3>最后客戶端通過瀏覽器訪問http://bbs.example.com/install,完成初始化操作,圖一至圖四展示了整個初始化的全部過程,其中圖二為安裝環境檢查,包括PHP版本,磁盤 空間,文件及目錄權限,檢查沒有問題會顯示對勾,有問題的項目則被標記為叉號,只有修復了問題后才可以繼續完成下面的操作,圖四需要填寫數據庫信息,包括數據 庫名稱,賬戶及密碼信息,因此,需要提前在mysql數據庫系統中創建相應的數據庫及賬戶密碼信息,管理員密碼為論壇管理員密碼;
完成以上初始化操作后,一定要將/usr/local/apache/htdocs/bbs/install/index.php刪除,防止進行多次初始化操作,此時客戶端通過瀏覽器訪問論壇域名: http://bbs.example.com,即可登錄論壇首頁,首次登錄僅包含一個默認板塊;
4》論壇系統設置:
論壇初始化完成后,並沒有具體板塊的內容,管理員可以登錄后台進行一些全局,板塊,內容,用戶等設置,登錄論壇首頁后單擊右上角的管理中心輸入管理員賬戶及 密碼后即可進入后台管理界面;
全局菜單:包括站點信息,論壇注冊與訪問控制,站點功能,性能及SEO優化,用戶權限,論壇積分,防灌水,上傳及水印等設置;
界面菜單:包括論壇首頁,導航欄,站點風格,論壇表情管理,提示消息及彈出消息等設置;
內容菜單:包括發帖審核,論壇主題管理,批量刪帖,批量群組管理,語言過濾,帖子優化,日志管理,相冊與圖片管理等設置;
用戶菜單:包括用戶組,管理組,禁止用戶,禁止IP,積分獎懲,審核用戶,推薦關注及好友等設置;
論壇菜單:包括板塊管理,板塊合並及分類信息設置,板塊結構為分區加板塊的設計,一個分區下可以創建多個板塊內容;