原始碼編譯LNMP平臺架構
眾所周知,LAMP 平臺是目前應用最為廣泛的網站伺服器架構,其中的“A”對應著Web服務軟體Apache HTTP Server。隨著Nginx在企業中的使用越來越多,LNMP(或LEMP)架構也受到越來越多Linux系統工程師的青睞,其中的“E”就來自於Nginx的發音[engine x]。就像構建LAMP平臺一一樣, 構建LNMP平臺也需要Linux伺服器、MySOL資料庫和PHP解析環境,區別主要在Nginx與PHP的協作配置上。
第一步:安裝Nginx
1.編譯安裝Nginx
--------安裝依賴包-------
yum -y install pcre-devel zlib-devel gcc gcc-c++ cmake
//建立nginx使用者
useradd -M -s /sbin/nologin nginx
//解壓到/opt
tar xzvf nginx-1.6.0.tar.gz -C /opt
---------配置編譯安裝--------
cd /opt/nginx-1.6.0/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module //開啟stub_status狀態統計模組//
make
make install
2.製作啟動指令碼
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ //讓系統識別命令
-----檢查、啟動、重啟、停止--------
nginx -t //檢查
nginx //啟動
killall -1 nginx //重啟
killall -3 nginx //停止
-------製作管理角本--------
vi /etc/init.d/nginx
#!/bin/bash
# chkconfig: - 99 20
# description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0
chmod +x /etc/init.d/nginx
chkconfig --add nginx //開機自啟動
service nginx start
第二步:安裝SQL/">MySQL
這裡以版本5.5.24為例
1.編譯安裝MySQL
yum -y install ncurses-devel //ncurses是字元終端下螢幕控制的基本庫//
tar xzvf mysql-5.5.24.tar.gz -C /opt
cd /opt/mysql-5.5.24
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/home/mysql/ \
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_SSL=system \
-DMYSQL_TCP_PORT=3306 \
-DENABLE_DOWNLOADS=1 \
-DWITH_SSL=bundled
make && make install
2.優化調整
cp support-files/my-medium.cnf /etc/my.cnf //複製配置檔案
cp support-files/mysql.server /etc/init.d/mysqld //複製啟動指令碼
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --level 35 mysqld on
echo "PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profile //配置環境變數
. /etc/profile (注意:"."後面有空格)
3.初始化資料庫
useradd -s /sbin/nologin mysql
chown -R mysql.mysql /usr/local/mysql
/usr/local/mysql/scripts/mysql_install_db \
--user=mysql \
--ldata=/var/lib/mysql \
--basedir=/usr/local/mysql \
--datadir=/home/mysql
ln -s /var/lib/mysql/mysql.sock /home/mysql/mysql.sock
4.啟動MySQL服務
vi /etc/init.d/mysqld //配置啟動指令碼
basedir=/usr/local/mysql
datadir=/home/mysql
service mysqld start
mysqladmin -u root -p password "abc123" //為root使用者設定密碼
第三步:安裝PHP解析環境
•Nginx配置網頁動靜分離、解析PHP,有兩種方法可以選擇:使用PHP的FPM模組,或者將訪問PHP頁面的Web請求轉交給Apache伺服器去處理。
•較新版本的PHP已經自帶FPM (FastCGI Process Manager, FastCGI程序管理器)模組,用來對PHP解析例項進行管理和優化解析效率。FastCGI 將靜態請求和動態指令碼語言分離開,Nginx 專門處理靜態請求,並轉發動態請求給PHP-FPM。單伺服器的
LNMP架構通常使用FPM的方式來解析PHP。
1.使用yum工具安裝PHP的依賴包。
//首先安裝GD庫及GD庫關聯程式
yum -y install \
gd \
libxml2-devel \
libjpeg-devel \
libpng-devel \
zlib-devel \
fontconfig-devel \
openssl-devel \
bzip2-devel
2.編譯安裝PHP
tar jxvf php-5.4.5.tar.bz2 -C /opt
cd /opt/php-5.4.5
./configure \
--prefix=/usr/local/php5 \
--with-gd \
--with-zlib \
--with-mysql=/usr/local/mysql \
--with-config-file-path=/usr/local/php5 \
--enable-mbstring \
--with-jpeg-dir \
--with-openssl \
--disable-ipv6 \
--enable-fpm //新增fpm模組
make && make install
3.複製模板檔案作為PHP的主配置檔案
cp php.ini-development /usr/local/php5/php.ini
4.為PHP安裝加速器,用於提高PHP的解析效率
tar xzvf ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz -C /opt
cd /opt/ZendGuardLoader-php-5.3-linux-glibc23-i386/php-5.3.x
cp ZendGuardLoader.so /usr/local/php5/lib/php
修改PHP的主配置檔案,開啟ZendGuardLoader模組
vi /usr/local/php5/php.ini
[Zend Guard Loader]
zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so
zend_loader.enable=1 //1表示開啟
第四步:配置Nginx支援PHP環境
1.PHP-FPM模組配置
(1)複製模板檔案php-fpm.conf.default作為PHP-FPM的配置檔案
cd /usr/local/php5/etc/
cp php-fpm.conf.default php-fpm.conf
(2)修改php-fpm.conf配置檔案
useradd -M -s /sbin/nologin php //建立php使用者
vi php-fpm.conf //修改
pid = run/php-fpm.pid //確定pid檔案位置
user = php //表示由php使用者呼叫
group = php
pm.max_children=50 //fpm模組的最大程序數
pm.start_servers = 20 //啟動時開啟的程序數
pm.min_spare_servers = 5 //最小空閒程序數
pm.max_spare_servers = 35 //最大空閒程序數
(3)啟動PHP-FPM模組,程序使用9000埠
//設定軟連結,方便命令使用
ln -s /usr/local/php5/bin/* /usr/local/bin/
ln -s /usr/local/php5/sbin/* /usr/local/sbin/
/usr/local/sbin/php-fpm
netstat -lntup | grep 9000
2.配置Nginx支援PHP解析
(1)在Nginx的主配置檔案中的server{}配置段,將PHP的網頁請求轉發給FPM模組處理
cd /usr/local/nginx/conf/
cp nginx.conf nginx.conf.bak //修改前做備份
vi nginx.conf
location ~ \.php$ {
root /var/www/benet; //php檔案所在目錄
fastcgi_pass 127.0.0.1:9000; //php檔案轉發給FPM模組
fastcgi_index index.php; //預設檔案是index.php
include fastcgi.conf; //包含fastcgi.conf配置檔案
}
nginx -t //檢測語法
(2)在/var/www/benet下建立php測試頁面
service nginx restart //重啟服務
mkdir -p /var/www/benet //建立目錄
vi /var/www/benet/index.php //建立php檔案
<?php
phpinfo();
?>
在瀏覽器中訪問PHP檔案

第五步:建立論壇
1.建立bbs資料庫並授權
mysql -u root -p
mysql> CREATE DATABASE bbs; //建立一個數據庫//
mysql> GRANT all ON bbs.* TO ofollow,noindex" target="_blank">'bbsuser'@'%' IDENTIFIED BY 'admin123'; //把bbs資料庫裡面所有表的許可權授予給bbSUSEr,並設定密碼//
mysql>flush privileges; //重新整理資料庫//
2.測試資料庫
vi /var/www/benet/index.php
<?php
$link=mysql_connect('192.168.26.153','bbsuser','admin123');
if($link) echo "Success!!";
else echo "Fail!!";
mysql_close();
phpinfo();
?>
3.安裝論壇
unzip Discuz_X3.3_SC_UTF8.zip -d /opt/dis //解壓Discuz
cd /opt/dis
cp -r upload/ /var/www/benet/bbs
cd /var/www/benet/bbs
chown -R php ./config //修改屬性
chown -R php ./data
chown -R php ./uc_client
chown -R php ./uc_server/data
4.訪問瀏覽器,安裝論壇
http://192.168.26.153/bbs/install/index.php
Linux公社的RSS地址 : https://www.linuxidc.com/rssFeed.aspx
本文永久更新連結地址: https://www.linuxidc.com/Linux/2018-11/155512.htm