天天看點

CentOS 6.4 x64 安裝Tengine+MaraiaDB+php-fpm+Discuz

系統環境:Centos6.4X64

安裝方式:yum安裝

tengine是由淘寶網發起的Web伺服器項目。它在tengine的基礎上,針對大通路量網站的需求,添加了很多進階功能和特性。tengine的性能和穩定性已經在大型的網站如淘寶網,天貓商城等得到了很好的檢驗。它的最終目标是打造一個高效、穩定、安全、易用的Web平台。

tengine不支援對外部程式的直接調用或者解析,所有的外部程式(包括PHP)必須通過FastCGI接口來調用。FastCGI接口在Linux下是socket,(這個socket可以是檔案socket,也可以是ip socket)。為了調用CGI程式,還需要一個FastCGI的wrapper(wrapper可以了解為用于啟動另一個程式的程式),這個wrapper綁定在某個固定socket上,如端口或者檔案socket。當tengine将CGI請求發送給這個socket的時候,通過FastCGI接口,wrapper接納到請求,然後派生出一個新的線程,這個線程調用解釋器或者外部程式處理腳本并讀取傳回資料;接着,wrapper再将傳回的資料通過FastCGI接口,沿着固定的socket傳遞給tengine;最後,tengine将傳回的資料發送給用戶端,這就是tengine+FastCGI的整個運作過程。

1.安裝MariaDB

由于Oracle進一步對mysql閉源的舉措讓人難以安心,衆多網際網路公司紛紛開始尋求MySQL的替代方案。而MariaDB是一個向後相容、替代MySQL的資料庫伺服器。它包含所有主要的開源存儲引擎。是以建議使用MariaDB

1.先解除安裝系統中mysql資料庫

[[email protected] ~]#yum remove mysql mysql-*

2.配置Mariadb安裝源

在 /etc/yum.repos.d/ 下建立 MariaDB.repo,内容如下:

[[email protected] ~]# vi /etc/yum.repos.d/MariaDB.repo

[mariadb]

name = MariaDB

baseurl =http://yum.mariadb.org/10.0.4/centos6-amd64/

gpgkey=http://yum.mariadb.org/RPM-GPG-KEY-MariaDB

gpgcheck=1

3.使用YUM安裝MariaDB

[[email protected] ~]#yum -y install MariaDB-client MariaDB-server MariaDB-devel

4.啟動資料庫

[[email protected] ~]#service mysql start

5.修改Root的密碼

[[email protected] ~]# mysqladmin -uroot password 'password'

2.關閉selinux和設定iptable防火牆

1.關閉selinux

[[email protected] ~]# vi /etc/selinux/config

把SELINUX= enforcing更改為SELINUX=disable

     [[email protected] ~]#setenforce 0

2.設定iptable

[[email protected] ~]# vi /etc/sysconfig/iptables

增加

-AINPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

3.添加一個nginx使用者

[[email protected] ~]#groupadd nginx

[[email protected] ~]#useradd -s /sbin/nologin -g nginx nginx

4.安裝pcre

1.下載下傳pcre

[[email protected] ~]#wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.33/pcre-8.33.tar.gz

2.安裝pcre用于支援tengine僞靜态

[[email protected] ~]#tar -zxvf pcre-8.33.tar.gz

[[email protected] ~]#mkdir /usr/local/pcre

[[email protected] ~]#cd pcre-8.33

[[email protected] pcre-8.33]#./configure --prefix=/usr/local/pcre

[[email protected] pcre-8.33]#make

[[email protected] pcre-8.33]#make install

5.安裝tengine

1.下載下傳tengine1.51

[[email protected]]#cd ~

[[email protected] ~]#yum install openssl openssl-devel

[[email protected] ~]#wget http://tengine.taobao.org/download/tengine-1.5.1.tar.gz

2.安裝tengine

[[email protected] ~]#mkdir /usr/local/nginx

[[email protected] ~]#tar -zxvf tengine-1.5.1.tar.gz

[[email protected] ~]#cd tengine-1.5.1

[[email protected] tengine-1.5.1]# ./configure--prefix=/usr/local/nginx --with-http_stub_status_module --with-pcre=/root/pcre-8.33

注:--with-pcre=/root/pcre-8.33指向的是源碼包解壓的路徑,而不是安裝的路徑,否則會報錯。

[[email protected]]#make

[[email protected]]#make install

[[email protected]~]#chown nginx.nginx -R /usr/local/nginx/html

[[email protected]~]#chmod 700 -R /usr/local/nginx/html

6.設定tengine服務

[[email protected] ~]# vi /etc/rc.d/init.d/nginx

#!/bin/bash

# Tengine Startup script# processname: nginx

# pidfile: /var/run/nginx.pid

# config: /usr/local/nginx/conf/nginx.conf

nginxd=/usr/local/nginx/sbin/nginx

nginx_config=/usr/local/nginx/conf/nginx.conf

nginx_pid=/usr/local/nginx/logs/nginx.pid

RETVAL=0

prog="nginx"

# Source function library.

. /etc/rc.d/init.d/functions

# Source networking configuration.

. /etc/sysconfig/network

# Check that networking is up.

[ ${NETWORKING} = "no" ] && exit 0

[ -x $nginxd ] || exit 0

# Start nginx daemons functions.

start() {

if [ -e $nginx_pid ];then

echo "tengine already running...."

exit 1

fi

echo -n $"Starting $prog: "

daemon $nginxd -c ${nginx_config}

RETVAL=$?

echo

[ $RETVAL = 0 ] && touch /var/lock/subsys/nginx

return $RETVAL

}

# Stop nginx daemons functions.

stop() {

echo -n $"Stopping $prog: "

killproc $nginxd

RETVAL=$?

echo

[ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /usr/local/nginx/logs/nginx.pid

}

reload() {

echo -n $"Reloading $prog: "

#kill -HUP `cat ${nginx_pid}`

killproc $nginxd -HUP

RETVAL=$?

echo

}

# See how we were called.

case "$1" in

start)

start

;;

stop)

stop

;;

reload)

reload

;;

restart)

stop

start

;;

status)

status $prog

RETVAL=$?

;;

*)

echo $"Usage: $prog {start|stop|restart|reload|status|help}"

exit 1

esac

exit $RETVAL

[root@tengine ~]# chmod 775 /etc/rc.d/init.d/nginx

[root@tengine ~]# chkconfig nginx on

[root@tengine ~]# service nginx start

7.安裝PHP及相關元件

1.安裝PHP

[[email protected] ~]#yum -y install php

2.安裝PHP元件,使PHP支援FastCGI模式

[[email protected] ~]#yum -y install php-mysql php-gd libjpeg* php-imap php-ldap php-odbcphp-pear php-xml php-xmlrpc php-mbstring php-bcmath php-fpm

8.整合Nginx與PHP

[[email protected] ~]#vi /usr/local/nginx/conf/nginx.conf

把第二行注釋去掉并把nobody更改為nginx

worker_processes 根據cpu個數進行設定

把71行到77行的注釋去掉,并把/scripts替換為/usr/local/nginx/html

注:上面的/usr/local/nginx/html 是我們PHP網站放置的路徑

CentOS 6.4 x64 安裝Tengine+MaraiaDB+php-fpm+Discuz

[[email protected] ~]#vi /etc/php-fpm.d/www.conf

把39行和41行的apache更改為nginx

9.下載下傳Discuz測試tengine、php和Mariadb

1.測試tengine

在浏覽器輸入http://175.102.13.55

2.測試php

[[email protected] ~]#vi /usr/local/nginx/html/index.php

<?php

phpinfo();

?>

在浏覽器輸入http://175.102.13.55/index.php

3.下載下傳DiscuzX測試Mariadb

[[email protected]~]#wget http://download.comsenz.com/DiscuzX/3.1/Discuz_X3.1_SC_UTF8.zip

[[email protected]~]# unzip Discuz_X3.1_SC_UTF8.zip

[[email protected]~]# mv upload/* /usr/local/nginx/html

[[email protected]~]# chown nginx.nginx -R /usr/local/nginx/html

CentOS 6.4 x64 安裝Tengine+MaraiaDB+php-fpm+Discuz
CentOS 6.4 x64 安裝Tengine+MaraiaDB+php-fpm+Discuz
CentOS 6.4 x64 安裝Tengine+MaraiaDB+php-fpm+Discuz

轉載于:https://blog.51cto.com/hao360/1371958