衆所周知,LAMP 平臺是目前應用最爲普遍的網站服務器架構,其中的「A」對應着Web服務軟件Apache HTTP Server。隨着Nginx在企業中的使用愈來愈多,LNMP(或LEMP)架構也受到愈來愈多Linux系統工程師的青睞,其中的「E」就來自於Nginx的發音[engine x]。就像構建LAMP平臺一同樣, 構建LNMP平臺也須要Linux服務器、MySOL數據庫和PHP解析環境,區別主要在Nginx與PHP的協做配置上。php
--------安裝依賴包------- 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
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
這裏以版本5.5.24爲例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
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 (注意:"."後面有空格)
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
vi /etc/init.d/mysqld //配置啓動腳本 basedir=/usr/local/mysql datadir=/home/mysql service mysqld start mysqladmin -u root -p password "abc123" //爲root用戶設置密碼
- Nginx配置網頁動靜分離、解析PHP,有兩種方法能夠選擇:使用PHP的FPM模塊,或者將訪問PHP頁面的Web請求轉交給Apache服務器去處理。
- 較新版本的PHP已經自帶FPM (FastCGI Process Manager, FastCGI進程管理器)模塊,用來對PHP解析實例進行管理和優化解析效率。FastCGI 將靜態請求和動態腳本語言分離開,Nginx 專門處理靜態請求,並轉發動態請求給PHP-FPM。單服務器的
LNMP架構一般使用FPM的方式來解析PHP。
//首先安裝GD庫及GD庫關聯程序 yum -y install \ gd \ libxml2-devel \ libjpeg-devel \ libpng-devel \ zlib-devel \ fontconfig-devel \ openssl-devel \ bzip2-devel
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
cp php.ini-development /usr/local/php5/php.ini
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模塊linux
vi /usr/local/php5/php.ini [Zend Guard Loader] zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so zend_loader.enable=1 //1表示開啓
cd /usr/local/php5/etc/ cp php-fpm.conf.default 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 //最大空閒進程數
//設置軟連接,方便命令使用 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
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 //檢測語法
service nginx restart //重啓服務 mkdir -p /var/www/benet //建立目錄 vi /var/www/benet/index.php //建立php文件 <?php phpinfo(); ?>
在瀏覽器中訪問PHP文件
nginx
mysql -u root -p mysql> CREATE DATABASE bbs; //建立一個數據庫// mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123'; //把bbs數據庫裏面全部表的權限授予給bbsuser,並設置密碼// mysql>flush privileges; //刷新數據庫//
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(); ?>
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
http://192.168.26.153/bbs/install/index.php