1. 程式人生 > 實用技巧 >高效能web伺服器nginx(三)之原始碼搭建LNMP

高效能web伺服器nginx(三)之原始碼搭建LNMP

一、環境準備

1、關閉防火牆及selinux

123[[email protected]~]#iptables-F[[email protected]~]#getenforceDisabled

2、更改yum源(此步根據自身需要更改)

123[[email protected]~]#wget-P/etc/yum.repos.d/http://mirrors.aliyun.com/repo/Centos-6.repo[[email protected]~]#mv/etc/yum.repos.d/CentOS-Base.repo{,.bak}[[email protected]~]#yumrepolist

3、同步時間

1[[email protected]~]#ntpdate202.120.2.101

4、安裝epel源

1[[email protected]~]#yuminstall-yepel-release

5、實驗環境介紹

wKiom1X1c6TSDI6cAACbVZw23Y0959.jpg


二、編譯安裝Nginx

1、下載nginx並解壓

12[[email protected]~]#wgethttp://nginx.org/download/nginx-1.8.0.tar.gz[[email protected]~]#tar-xfnginx-1.8.0.tar.gz

2、建立nginx執行使用者

1234[[email protected]~]#groupadd-g108-rnginx[
[email protected]
~]#useradd-u108-r-g108nginx[[email protected]~]#idnginxuid=108(nginx)gid=108(nginx)組=108(nginx)

3、安裝依賴包

1[[email protected]~]#yuminstall-ygccpcre-developenssl-devel

4、編譯安裝nginx

123[[email protected]~]#cdnginx-1.8.0[[email protected]nginx-1.8.0]#./configure--prefix=/usr--sbin-path=/usr/sbin/nginx--conf-path=/etc/nginx/nginx.conf--error-log-path=/var/log/nginx/error.log--http-log-path=/var/log/nginx/access.log--pid-path=/var/run/nginx/nginx.pid--lock-path=/var/lock/nginx.lock--user=nginx--group=nginx--with-http_ssl_module--with-http_flv_module--with-http_stub_status_module--with-http_gzip_static_module--http-client-body-temp-path=/var/tmp/nginx/client/--http-proxy-temp-path=/var/tmp/nginx/proxy/--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi--http-scgi-temp-path=/var/tmp/nginx/scgi--with-pcre[
[email protected]
nginx-1.8.0]#make&&makeinstall

5、檢視nginx命令安裝的路徑

12[[email protected]nginx-1.8.0]#whichnginx/usr/sbin/nginx

檢視nginx安裝版本:

12[[email protected]nginx-1.8.0]#nginx-vnginxversion:nginx/1.8.0

檢視nginx編譯選項:

123456[[email protected]nginx-1.8.0]#nginx-Vnginxversion:nginx/1.8.0builtbygcc4.4.720120313(RedHat4.4.7-16)(GCC)builtwithOpenSSL1.0.1e-fips11Feb2013TLSSNIsupportenabledconfigurearguments:--prefix=/usr--sbin-path=/usr/sbin/nginx--conf-path=/etc/nginx/nginx.conf--error-log-path=/var/log/nginx/error.log--http-log-path=/var/log/nginx/access.log--pid-path=/var/run/nginx/nginx.pid--lock-path=/var/lock/nginx.lock--user=nginx--group=nginx--with-http_ssl_module--with-http_flv_module--with-http_stub_status_module--with-http_gzip_static_module--http-client-body-temp-path=/var/tmp/nginx/client/--http-proxy-temp-path=/var/tmp/nginx/proxy/--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi--http-scgi-temp-path=/var/tmp/nginx/scgi--with-pcre

6、為nginx提供SysV init指令碼:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110[[email protected]nginx-1.8.0]#vim/etc/init.d/nginx#!/bin/sh##nginx-thisscriptstartsandstopsthenginxdaemon##chkconfig:-8515#description:NginxisanHTTP(S)server,HTTP(S)reverse\#proxyandIMAP/POP3proxyserver#processname:nginx#config:/etc/nginx/nginx.conf#config:/etc/sysconfig/nginx#pidfile:/var/run/nginx.pid#Sourcefunctionlibrary../etc/rc.d/init.d/functions#Sourcenetworkingconfiguration../etc/sysconfig/network#Checkthatnetworkingisup.["$NETWORKING"="no"]&&exit0nginx="/usr/sbin/nginx"prog=$(basename$nginx)NGINX_CONF_FILE="/etc/nginx/nginx.conf"[-f/etc/sysconfig/nginx]&&./etc/sysconfig/nginxlockfile=/var/lock/subsys/nginxmake_dirs(){#makerequireddirectoriesuser=`nginx-V2>&1|grep"configurearguments:"|sed's/[^*]*--user=\([^]*\).*/\1/g'-`options=`$nginx-V2>&1|grep'configurearguments:'`foroptin$options;doif[`echo$opt|grep'.*-temp-path'`];thenvalue=`echo$opt|cut-d"="-f2`if[!-d"$value"];then#echo"creating"$valuemkdir-p$value&&chown-R$user$valuefifidone}start(){[-x$nginx]||exit5[-f$NGINX_CONF_FILE]||exit6make_dirsecho-n$"Starting$prog:"daemon$nginx-c$NGINX_CONF_FILEretval=$?echo[$retval-eq0]&&touch$lockfilereturn$retval}stop(){echo-n$"Stopping$prog:"killproc$prog-QUITretval=$?echo[$retval-eq0]&&rm-f$lockfilereturn$retval}restart(){configtest||return$?stopsleep1start}reload(){configtest||return$?echo-n$"Reloading$prog:"killproc$nginx-HUPRETVAL=$?echo}force_reload(){restart}configtest(){$nginx-t-c$NGINX_CONF_FILE}rh_status(){status$prog}rh_status_q(){rh_status>/dev/null2>&1}case"$1"instart)rh_status_q&&exit0$1;;stop)rh_status_q||exit0$1;;restart|configtest)$1;;reload)rh_status_q||exit7$1;;force-reload)force_reload;;status)rh_status;;condrestart|try-restart)rh_status_q||exit0;;*)echo$"Usage:$0{start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"exit2esac

7、將指令碼賦予執行許可權並新增到服務啟動列表

123[[email protected]nginx-1.8.0]#chmod+x/etc/init.d/nginx[[email protected]nginx-1.8.0]#chkconfig--addnginx[[email protected]nginx-1.8.0]#chkconfignginxon

8、啟動nginx檢視監聽的埠

1234[[email protected]nginx-1.8.0]#servicenginxstart正在啟動nginx:[確定][[email protected]nginx-1.8.0]#ss-tunlp|grepnginxtcpLISTEN0128*:80*:*users:(("nginx",6177,6),("nginx",6179,6))

9、瀏覽器測試是否啟動

wKioL1X1dfijxhfUAAGfO4xHTA4613.jpg

10、將在vim開啟nginx配置檔案時實現語句高亮顯示

http://www.vim.org/scripts/script.php?script_id=1886

1234[[email protected]~]#mkdir-pv.vim/syntax[[email protected]~]#mvnginx.vim.vim/syntax[[email protected]~]#vim.vim/filetype.vimauBufRead,BufNewFile/etc/nginx/*,/usr/local/nginx/conf/*if&ft==''|setfiletypenginx|endif


三、安裝與配置Mysql資料庫

1、建立存放資料目錄

正常情況實在有冗餘raid上建立邏輯卷,這樣既保證資料的擴充套件性,又有容災的能力,這裡節省步驟只是在系統中建立個目錄。

1[[email protected]~]#mkdir/data/mydata-pv

2、建立mysql使用者

123[[email protected]~]#groupadd-rmysql[[email protected]~]#useradd-gmysql-r-s/sbin/nologin-M-d/mydata/datamysql[[email protected]~]#chown-Rmysql.mysql/data/mydata/

3、安裝初始化依賴的庫

1[[email protected]~]#yuminstall-ylibaio

4、安裝並初始化mysql

12345678[[email protected]~]#tar-xfmysql-5.6.25-linux-glibc2.5-x86_64.tar.gz-C/usr/local/[[email protected]~]#cd/usr/local/[[email protected]local]#lnmysql-5.6.25-linux-glibc2.5-x86_64mysql-sv"mysql"->"mysql-5.6.25-linux-glibc2.5-x86_64"[[email protected]local]#cdmysql[[email protected]mysql]#chown-Rmysql.mysql./*[[email protected]mysql]#scripts/mysql_install_db--user=mysql--datadir=/data/mydata/[[email protected]mysql]#chown-Rroot./*

5、為mysql提供主配置檔案

123456789101112131415161718192021222324252627282930313233343536373839[[email protected]mysql]#cp/etc/my.cnf{,.bak}[[email protected]mysql]#grep-v'^#'/etc/my.cnf[client]port =3306socket =/tmp/mysql.sock[mysqld]port =3306socket =/tmp/mysql.sockskip-external-lockingkey_buffer_size=256Mmax_allowed_packet=1Mtable_open_cache=256sort_buffer_size=1Mread_buffer_size=1Mread_rnd_buffer_size=4Mmyisam_sort_buffer_size=64Mthread_cache_size=8query_cache_size=16Mthread_concurrency=2datadir=/data/mydatalog-bin=mysql-binbinlog_format=mixedserver-id=1[mysqldump]quickmax_allowed_packet=16M[mysql]no-auto-rehash[myisamchk]key_buffer_size=128Msort_buffer_size=128Mread_buffer=2Mwrite_buffer=2M[mysqlhotcopy]interactive-timeout

6、為mysql提供sysv服務指令碼並啟動服務

12345[[email protected]mysql]#cpsupport-files/mysql.server/etc/init.d/mysqld[[email protected]mysql]#chkconfig--addmysqld[[email protected]mysql]#chkconfigmysqldon^C[[email protected]mysql]#servicemysqldstartStartingMySQL.............SUCCESS!

7、檢視mysql是否初始化和啟動成功

12345[[email protected]mysql]#ls/data/mydata/auto.cnfhpf-linux.pidib_logfile0mysqlmysql-bin.indextesthpf-linux.erribdata1ib_logfile1mysql-bin.000001performance_schema[[email protected]mysql]#ss-tunlp|grepmysqltcpLISTEN080:::3306:::*users:(("mysqld",6713,11))

8、後續配置

輸出mysql的man手冊至man命令的查詢路徑:

12[[email protected]mysql]#vim/etc/man.configMANPATH/usr/local/mysql/man

輸出mysql的標頭檔案至系統標頭檔案路徑/usr/include:

12[[email protected]mysql]#ln-sv/usr/local/mysql/include//usr/include/mysql"/usr/include/mysql"->"/usr/local/mysql/include/"

輸出mysql的庫檔案給系統庫查詢路徑:

12345678[[email protected]mysql]#vim/etc/ld.so.conf.d/mysql.conf[[email protected]mysql]#ldconfig-v[[email protected]mysql]#ldconfig-p|grepmysqllibtcmalloc_minimal.so.0(libc6,x86-64)=>/usr/local/mysql/lib/libtcmalloc_minimal.so.0libmysqlclient_r.so.16(libc6,x86-64)=>/usr/lib64/mysql/libmysqlclient_r.so.16libmysqlclient.so.18(libc6,x86-64)=>/usr/local/mysql/lib/libmysqlclient.so.18libmysqlclient.so.16(libc6,x86-64)=>/usr/lib64/mysql/libmysqlclient.so.16libmysqlclient.so(libc6,x86-64)=>/usr/local/mysql/lib/libmysqlclient.so

修改PATH環境變數,讓系統可以直接使用mysql的相關命令:

123[[email protected]mysql]#vim/etc/profile.d/mysql.shexportPATH=$PATH:/usr/local/mysql/bin[[email protected]mysql]#source/etc/profile.d/mysql.sh

9、連線mysql將匿名使用者刪除並設定密碼

1234567891011121314151617181920212223[[email protected]mysql]#mysqlWelcometotheMySQLmonitor.Commandsendwith;or\g.mysql>SETPASSWORDFOR'root'@'localhost'=PASSWORD('redhat');QueryOK,0rowsaffected(0.03sec)mysql>SETPASSWORDFOR'root'@'127.0.0.1'=PASSWORD('redhat');QueryOK,0rowsaffected(0.00sec)mysql>SETPASSWORDFOR'root'@'hpf-linux'=PASSWORD('redhat');QueryOK,0rowsaffected(0.00sec)mysql>dropuser'root'@'::1';QueryOK,0rowsaffected(0.00sec)mysql>dropuser''@'localhost';QueryOK,0rowsaffected(0.00sec)mysql>dropuser''@'hpf-linux';QueryOK,0rowsaffected(0.00sec)mysql>selectuser,host,passwordfrommysql.user;+------+-----------+-------------------------------------------+|user|host|password|+------+-----------+-------------------------------------------+|root|localhost|*84BB5DF4823DA319BBF86C99624479A198E6EEE9||root|hpf-linux|*84BB5DF4823DA319BBF86C99624479A198E6EEE9||root|127.0.0.1|*84BB5DF4823DA319BBF86C99624479A198E6EEE9|+------+-----------+-------------------------------------------+3rowsinset(0.00sec)

再次登入mysql就需要帳號密碼了:

12[[email protected]mysql]#mysql-uroot-hlocalhost-pEnterpassword:

10、設定mysql不輸入使用者名稱密碼直接登入資料庫

1234567891011121314[[email protected]~]#vim.my.cnf[mysql]user=rootpassword=redhathost=localhost[[email protected]~]#mysqlWelcometotheMySQLmonitor.Commandsendwith;or\g.Serverversion:5.6.25-logMySQLCommunityServer(GPL)Copyright(c)2000,2015,Oracleand/oritsaffiliates.Allrightsreserved.OracleisaregisteredtrademarkofOracleCorporationand/oritsaffiliates.Othernamesmaybetrademarksoftheirrespectiveowners.Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.mysql>


四、編譯安裝PHP

1、解決依賴關係

1[[email protected]~]#yuminstall-ylibxml2-develbzip2-devellibcurl-devellibmcrypt-devel

2、安裝php

123[[email protected]~]#cdphp-5.6.12[[email protected]php-5.6.12]#./configure--prefix=/usr/local/php--with-mysql=/usr/local/mysql--with-openssl--enable-fpm--enable-sockets--enable-sysvshm--with-mysqli=/usr/local/mysql/bin/mysql_config--enable-mbstring--with-freetype-dir--with-jpeg-dir--with-png-dir--with-zlib-dir--with-libxml-dir=/usr/--enable-xml--with-mhash--with-mcrypt--with-config-file-path=/etc--with-config-file-scan-dir=/etc/php.d--with-bz2--with-curl[[email protected]php-5.6.12]#make&&makeinstall

3、為php提供配置檔案

1[[email protected]php-5.6.12]#cpphp.ini-production/etc/php.ini

4、為php-fpm提供Sysv init指令碼,並將其新增至服務列表

1234[[email protected]php-5.6.12]#cpsapi/fpm/init.d.php-fpm/etc/init.d/php-fpm[[email protected]php-5.6.12]#chmod+x/etc/init.d/php-fpm[[email protected]php-5.6.12]#chkconfig--addphp-fpm[[email protected]php-5.6.12]#chkconfigphp-fpmon

5、為php-fpm提供配置檔案

12345[[email protected]php-5.6.12]#cd/usr/local/php/[[email protected]php]#lsbinetcincludelibphpsbinvar[[email protected]php]#cpetc/php-fpm.conf.defaultetc/php-fpm.conf[[email protected]php]#vimetc/php-fpm.conf

配置fpm的相關選項為你所需要的值,並啟用pid檔案(如下最後一行)

12345pm.max_children=150pm.start_servers=8pm.min_spare_servers=5pm.max_spare_servers=10pid=run/php-fpm.pid

6、啟動php-fpm

123456789101112131415[[email protected]php]#servicephp-fpmstartStartingphp-fpmdone[[email protected]php]#psaux|grepphp-fpmroot1299290.50.51123205296?Ss15:050:00php-fpm:masterprocess(/usr/local/php/etc/php-fpm.conf)nobody1299300.00.41123204388?S15:050:00php-fpm:poolwwwnobody1299310.00.41123204388?S15:050:00php-fpm:poolwwwnobody1299320.00.41123204388?S15:050:00php-fpm:poolwwwnobody1299330.00.41123204388?S15:050:00php-fpm:poolwwwnobody1299340.00.41123204388?S15:050:00php-fpm:poolwwwnobody1299350.00.41123204388?S15:050:00php-fpm:poolwwwnobody1299360.00.41123204388?S15:050:00php-fpm:poolwwwnobody1299370.00.41123204388?S15:050:00php-fpm:poolwwwroot1299390.00.0103252880pts/0S+15:050:00grepphp-fpm[[email protected]php]#ss-tunlp|grepphptcpLISTEN0128127.0.0.1:9000*:*users:(("php-fpm",129929,7),("php-fpm",129930,0),("php-fpm",129931,0),("php-fpm",129932,0),("php-fpm",129933,0),("php-fpm",129934,0),("php-fpm",129935,0),("php-fpm",129936,0),("php-fpm",129937,0))


五、整合Nginx與PHP (FastCGI)

1、什麼是 FastCGI

FastCGI是一個可伸縮地、高速地在HTTP server和動態指令碼語言間通訊的介面。多數流行的HTTP server都支援FastCGI,包括Apache、Nginx和lighttpd等。同時,FastCGI也被許多指令碼語言支援,其中就有PHP。

FastCGI是從CGI發展改進而來的。傳統CGI介面方式的主要缺點是效能很差,因為每次HTTP伺服器遇到動態程式時都需要重新啟動指令碼解析器來執行解析,然後將結果返回給HTTP伺服器。這在處理高併發訪問時幾乎是不可用的。另外傳統的CGI介面方式安全性也很差,現在已經很少使用了。

FastCGI介面方式採用C/S結構,可以將HTTP伺服器和指令碼解析伺服器分開,同時在指令碼解析伺服器上啟動一個或者多個指令碼解析守護程序。當HTTP伺服器每次遇到動態程式時,可以將其直接交付給FastCGI程序來執行,然後將得到的結果返回給瀏覽器。這種方式可以讓HTTP伺服器專一地處理靜態請求或者將動態指令碼伺服器的結果返回給客戶端,這在很大程度上提高了整個應用系統的效能。

2、Nginx+FastCGI執行原理

Nginx不支援對外部程式的直接呼叫或者解析,所有的外部程式(包括PHP)必須通過FastCGI介面來呼叫。FastCGI介面在Linux下是socket(這個socket可以是檔案socket,也可以是ip socket)。為了呼叫CGI程式,還需要一個FastCGI的wrapper(wrapper可以理解為用於啟動另一個程式的程式),這個wrapper繫結在某個固定socket上,如埠或者檔案socket。當Nginx將CGI請求傳送給這個socket的時候,通過FastCGI介面,wrapper接收到請求,然後派生出一個新的執行緒,這個執行緒呼叫直譯器或者外部程式處理指令碼並讀取返回資料;接著,wrapper再將返回的資料通過FastCGI介面,沿著固定的socket傳遞給Nginx;最後,Nginx將返回的資料傳送給客戶端。這就是Nginx+FastCGI的整個運作過程。如下圖:

wKiom1X1c_eCgx9xAAC9qPJpXsw774.jpg

3、spawn-fcgi與PHP-FPM

前面介紹過,FastCGI介面方式在指令碼解析伺服器上啟動一個或者多個守護程序對動態指令碼進行解析,這些程序就是FastCGI程序管理器,或者稱為FastCGI引擎。 spawn-fcgi與PHP-FPM就是支援PHP的兩個FastCGI程序管理器。

下面簡單介紹spawn-fcgi與PHP-FPM的異同。

spawn-fcgi是HTTP伺服器lighttpd的一部分,目前已經獨立成為一個專案,一般與lighttpd配合使用來支援PHP。但是ligttpd的spwan-fcgi在高併發訪問的時候,會出現記憶體洩漏甚至自動重啟FastCGI的問題。

Nginx是個輕量級的HTTP server,必須藉助第三方的FastCGI處理器才可以對PHP進行解析,因此Nginx+spawn-fcgi的組合也可以實現對PHP的解析,這裡不過多講述。PHP-FPM也是一個第三方的FastCGI程序管理器,它是作為PHP的一個補丁來開發的(PHP從5.3.3以後已將PHP-FPM整合進PHP中,只要在./configure的時候帶 --enable-fpm引數即可開啟PHP-FPM),在安裝的時候也需要和PHP原始碼一起編譯,也就是說PHP-FPM被編譯到PHP核心中,因此在處理效能方面更加優秀。同時PHP-FPM在處理高併發方面也比spawn-fcgi引擎好很多,因此,推薦使用Nginx+PHP/PHP-FPM這個組合對PHP進行解析。

FastCGI 的主要優點是把動態語言和HTTP Server分離開來,所以Nginx與PHP/PHP-FPM經常被部署在不同的伺服器上,以分擔前端Nginx伺服器的壓力,使Nginx專一處理靜態請求和轉發動態請求,而PHP/PHP-FPM伺服器專一解析PHP動態請求。

4、整合Nginx與PHP (FastCGI)

修改nginx配置檔案,啟用如下選項。

123456789101112131415161718[[email protected]~]#cp/etc/nginx/nginx.conf{,.bak}[[email protected]~]#vim/etc/nginx/nginx.conflocation/{root/www/a.com;indexindex.phpindex.htmlindex.htm;}location~\.php${root/www/a.com;fastcgi_pass127.0.0.1:9000;fastcgi_indexindex.php;fastcgi_paramSCRIPT_FILENAME/scripts$fastcgi_script_name;includefastcgi_params;}[[email protected]~]#mkdir/www/a.com-pv[[email protected]~]#vim/www/a.com/index.php<?phpphpinfo();?>

編輯/etc/nginx/fastcgi_params,將其內容更改為如下內容

12345678910111213141516171819[[email protected]~]#cp/etc/nginx/fastcgi_params{,.bak}[[email protected]~]#vim/etc/nginx/fastcgi_paramsfastcgi_paramGATEWAY_INTERFACECGI/1.1;fastcgi_paramSERVER_SOFTWAREnginx;fastcgi_paramQUERY_STRING$query_string;fastcgi_paramREQUEST_METHOD$request_method;fastcgi_paramCONTENT_TYPE$content_type;fastcgi_paramCONTENT_LENGTH$content_length;fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;fastcgi_paramSCRIPT_NAME$fastcgi_script_name;fastcgi_paramREQUEST_URI$request_uri;fastcgi_paramDOCUMENT_URI$document_uri;fastcgi_paramDOCUMENT_ROOT$document_root;fastcgi_paramSERVER_PROTOCOL$server_protocol;fastcgi_paramREMOTE_ADDR$remote_addr;fastcgi_paramREMOTE_PORT$remote_port;fastcgi_paramSERVER_ADDR$server_addr;fastcgi_paramSERVER_PORT$server_port;fastcgi_paramSERVER_NAME$server_name;

重新載入一下nginx的配置檔案:

1[[email protected]~]#servicenginxreload


通過瀏覽器訪問此測試頁面:

wKioL1X1dlihLPxAAAHXCbyQ-Nw424.jpg


六、安裝與配置xCache加速器

1、安裝xcache

12345678910[[email protected]~]#tar-xfxcache-3.2.0.tar.gz[[email protected]~]#cdxcache-3.2.0[[email protected]xcache-3.2.0]#/usr/local/php/bin/phpizeConfiguringfor:PHPApiVersion:20131106ZendModuleApiNo:20131226ZendExtensionApiNo:220131226[[email protected]xcache-3.2.0]#./configure--enable-xcache--with-php-config=/usr/local/php/bin/php-config[[email protected]xcache-3.2.0]#make&&makeinstallInstallingsharedextensions:/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/

2、編輯php.ini,整合php和xcache

將xcache提供的樣例配置匯入php.ini :

12[[email protected]xcache-3.2.0]#mkdir/etc/php.d[[email protected]xcache-3.2.0]#cpxcache.ini/etc/php.d/

編輯/etc/php.d/xcache.ini,找到zend_extension開頭的行,修改為如下行:

12[[email protected]xcache-3.2.0]#vim/etc/php.d/xcache.iniextension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/xcache.so

3、重新啟動php-fpm

1[[email protected]xcache-3.2.0]#servicephp-fpmrestart

4、瀏覽器驗證是否載入xcache模組

wKiom1X1dEeQ_7aUAAJbKnf9S8U088.jpg

5、PHP連線Mysql測試

12345678[[email protected]~]#vim/www/a.com/test.php<?php$conn=mysql_connect('localhost','root','redhat');if($conn)echo"Success";elseecho"Failure";?>


瀏覽器測試:

wKioL1X1dpjCBPO9AABoiTJdKps553.jpg

七、安裝phppMyAdmin工具

1、解壓phppMyAdmin軟體

12[[email protected]~]#unzipphpMyAdmin-4.1.4-all-languages.3715384168.zip[[email protected]~]#mvphpMyAdmin-4.1.4-all-languages/www/a.com/pma

在瀏覽器輸入IP/pma,後在輸入mysql資料庫的帳號密碼就能登入phpMyAdmin了。

wKiom1X1dIOTg2BcAADbSoW8sb8753.jpg

wKioL1X1dszD0H2eAAO0IX2hwpU387.jpg

八、安裝wordpress

12345678910111213141516171819202122232425262728293031323334353637383940[[email protected]~]#unzipwordpress-4.2-zh_CN.zip[[email protected]~]#cpwordpress/www/a.com/-r[[email protected]~]#cd/www/a.com/wordpress/[[email protected]wordpress]#cpwp-config-sample.phpwp-config.php[[email protected]wordpress]#vimwp-config.php/**WordPress資料庫的名稱*/define('DB_NAME','wpdb');/**MySQL資料庫使用者名稱*/define('DB_USER','wpuser');/**MySQL資料庫密碼*/define('DB_PASSWORD','redhat');/**MySQL主機*/define('DB_HOST','localhost');[email protected]wordpress]#mysqlmysql>createdatabasewpdb;QueryOK,1rowaffected(0.15sec)mysql>grantallprivilegesonwpdb.*to'wpuser'@'localhost'identifiedby'redhat';QueryOK,0rowsaffected(0.08sec)mysql>flushprivileges;QueryOK,0rowsaffected(0.05sec)[[email protected]wordpress]#vim/etc/nginx/nginx.confserver{listen80;server_namewww.a.com;location/{root/www/a.com/;indexindex.phpindex.htmlindex.htm;}location~\.php${root/www/a.com;fastcgi_pass127.0.0.1:9000;fastcgi_indexindex.php;fastcgi_paramSCRIPT_FILENAME/scripts$fastcgi_script_name;includefastcgi_params;}}[[email protected]wordpress]#servicenginxreloadnginx:theconfigurationfile/etc/nginx/nginx.confsyntaxisoknginx:configurationfile/etc/nginx/nginx.conftestissuccessful重新載入nginx:[確定]


瀏覽器輸入本地手動設定的域名/wordpress,之後按提示輸入就好了。

wKiom1X1dL2AuMAlAAHjXT2EPbM697.jpg


九、安裝並測試Discuz論壇

1、準備Discuz 3.2

12[[email protected]~]#unzipDiscuz_X3.2_SC_UTF8.zip[[email protected]~]#mvupload/www/a.com/

2、授權主機對mysql的訪問

1234mysql>grantallprivilegeson*.*to'root'@'192.168.%.%'identifiedby'redhat';QueryOK,0rowsaffected(0.02sec)mysql>flushprivileges;QueryOK,0rowsaffected(0.00sec)

3、修改後目錄許可權

12[[email protected]~]#cd/www/a.com/upload/[[email protected]upload]#chmod777./data./config/./data/cache/./data/avatar/./data/plugindata/./data/download/./data/addonmd5/./data/template/./data/threadcache/./data/p_w_upload/./data/p_w_upload/album/./data/p_w_upload/forum/./data/p_w_upload/group/./data/log/./uc_client/data/cache/./uc_server/data./uc_server/data/avatar/./uc_server/data/backup/./uc_server/data/logs/./uc_server/data/tmp/./uc_server/data/view/./uc_server/data/cache/

在瀏覽器輸入(本地域名/upload),下載就是下一步啥的。



wKioL1X1dxTBJlugAAKGX0nCUVs181.jpg

wKiom1X1dPqhNGsbAAHsarVBFFk216.jpg

wKioL1X1d0eT5GeoAANRRpL3QX8487.jpg


本文出自 “粗茶淡飯” 部落格,請務必保留此出處http://cuchadanfan.blog.51cto.com/9940284/1694370


轉載於:https://blog.51cto.com/lucifer119/1734635