linux Nginx+Php+Mysql+mssql動靜頁面分離

一、重裝Centos系統,刪除不必要的程序,並安裝相關組件:

yum -y remove httpd mysql php

安裝相關組件

yum -y install yum-fastestmirror
yum -y update
yum -y install patch make gcc gcc-c++ gcc-g77 flex bison tar
yum -y install libtool libtool-libs kernel-devel autoconf213
yum -y install libjpeg libjpeg-devel libpng libpng-devel
yum -y install libtiff libtiff-devel gettext gettext-devel
yum -y install freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel
yum -y install file glib2 glib2-devel bzip2 diff* openldap-devel
yum -y install bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs
yum -y install e2fsprogs-devel krb5 krb5-devel libidn libidn-devel
yum -y install openssl openssl-devel vim-minimal unzip
export PHP_AUTOCONF=/usr/bin/autoconf-2.13
export PHP_AUTOHEADER=/usr/bin/autoheader-2.13

安裝PHP 5.2.x 所需的支持庫

cd /usr/local/src

wget -c http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
tar zxvf libiconv-1.13.1.tar.gz
cd libiconv-1.13.1/
./configure --prefix=/usr/local
make
make install
cd ../

wget -c http://monkey.org/~provos/libevent-2.0.10-stable.tar.gz
tar zxvf libevent-2.0.10-stable.tar.gz
cd libevent-2.0.10-stable/
./configure --prefix=/usr
make
make install
cd ../

wget -c http://ncu.dl.sourceforge.net/sourceforge/mcrypt/libmcrypt-2.5.8.tar.gz
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8/
./configure
make
make install
/sbin/ldconfig
cd libltdl/
./configure --enable-ltdl-install
make
make install
cd ../../

wget -c http://nchc.dl.sourceforge.net/sourceforge/mhash/mhash-0.9.9.9.tar.gz
tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9/
./configure
make
make install
cd ../

ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a
ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la
ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1
ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config

wget -c http://nchc.dl.sourceforge.net/sourceforge/mcrypt/mcrypt-2.6.8.tar.gz
tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8/
./configure
make
make install
cd ../

安裝GD圖形支持庫:

cd /usr/local/src
wget http://www.libgd.org/releases/gd-2.0.35.tar.gz
tar xzvf gd-2.0.35.tar.gz
cd gd

cd  2.0.35
./configure --prefix=/usr/local/gd --mandir=/usr/share/man --with-jpeg --with-png --with-freetype --with-zlib --with-fontconfig
make             //如果GD報錯:configure.ac:64: warning: macro `AM_ICONV' not found in library 你就make clean一下,然後再make
make install

二、安裝 Mysql 5.1.x:

1)先安裝Google的開源TCMalloc庫,可以提高MySQL在高併發情況下的性能

cd /usr/local/src

wget -c http://google-perftools.googlecode.com/files/google-perftools-1.7.tar.gz
tar zxvf  google-perftools-1.7.tar.gz
cd google-perftools-1.7/
./configure
make && make install
echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf
/sbin/ldconfig
cd ../

2)開始安裝Mysql 5.1.x

groupadd mysql -g 27
useradd mysql -u 27 -g 27 -c "MySQL Server" -d /var/lib/mysql -m
cd /usr/local/src
tar -zxf mysql-5.1.45.tar.gz
cd mysql-5.1.45
./configure --prefix=/usr/local/mysql --localstatedir=/var/lib/mysql --with-unix-socket-path=/var/lib/mysql/mysql.sock --with-mysqld-user=mysql --enable-assembler --enable-thread-safe-client --with-extra-charsets=all --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=partition,innodb_plugin,myisam,myisammrg
make && make install
cd ../

cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
/usr/local/mysql/bin/mysql_install_db --user=mysql
chown -R mysql.mysql /var/lib/mysql
chgrp -R mysql /usr/local/mysql/.
cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysql
chmod u+x /etc/init.d/mysql
chkconfig --level 345 mysql on
echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
echo "/usr/local/lib" >>/etc/ld.so.conf
ldconfig
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s /usr/local/mysql/include/mysql /usr/include/mysql
ln -s /usr/local/mysql/bin/mysql_config /usr/bin/mysql_config
service mysql start
/usr/local/mysql/bin/mysqladmin -u root password wangwang
service mysql restart

3)設置MySQL:

打開“/etc/my.cnf”文件,修改以下設置,如果沒有,可手動添加:

關閉遠程連接,即3306端口。這是MySQL的默認監聽端口。由於此處MySQL只服務於本地腳本,所以不需要遠程連接。儘管MySQL內建的安全機制很嚴格,但監聽一個TCP端口仍然是危險的行爲,因爲如果MySQL程序本身有問題,那麼未授權的訪問完全可以繞過MySQL的內建安全機制。(你必須確定,你是否真的不需要遠程連接mysql,一般數據庫地址爲localhost的,即使本地數據庫,不需要外鏈)

skip-networking

保存後退出。

修改完my.cnf後,還需要對mysql的用戶名、帳號、及默認數據庫進行調整

首先先登錄mysql,在終端窗口輸入

/usr/local/mysql/bin/mysql -u root -p

然後會提示輸入密碼,輸入正確密碼後,會出現mysql>提示符。

輸入以下命令:

mysql>use mysql;
mysql>select Host,User,Password,Select_priv,Grant_priv from user;
mysql>delete from user where user='';                  (刪除user用戶)
mysql>delete from user where password='';               (刪除user用戶)
mysql>delete from user where host='';                     (刪除user用戶)
mysql>drop database test;             (刪除默認的test數據庫)
mysql>flush privileges;               (刷新mysql的緩存,讓以上設置立即生效)
mysql>quit;

爲了使以上優化和安全設置生效,請重啓Mysql服務或Linux。

service mysql restart

三、安裝Apache:

1)下載Apache並解壓縮:

cd /usr/local/src
groupadd www
useradd -g www -s /sbin/nologin -M www

wget -c http://www.apache.org/dist//httpd/httpd-2.2.17.tar.gz

tar zxvf httpd-2.2.17.tar.gz
cd httpd-2.2.17

Apache默認最大連接數和最大客戶端數爲40000,如果你的服務器要求更大,可以編譯Apache安裝文件中的:

server/mpm/worker/worker.c

找到下面幾行,並改成如下的數值,其目的是在源碼中修改apache可支持的最大線程數和最大客戶端數目。

define DEFAULT_SERVER_LIMIT 32
define MAX_SERVER_LIMIT 20000
define DEFAULT_THREAD_LIMIT 64
define MAX_THREAD_LIMIT 20000

以上數值據說改小後,能減低服務器消耗。不過柒月修改後,發現沒什麼實質變化。

2)安裝Apache 2.2

cd /usr/local/src/httpd-2.2.17
./configure --prefix=/usr/local/apache2 --enable-headers --enable-so --enable-rewrite --with-mpm=prefork --disable-userdir --disable-cgid --disable-cgi
make && make install

如果你需要編譯apache其他功能,可以自行增加。 不過在這裏,我們只是用Apache作爲後端並處理僞靜態,無需添加過多設置來浪費內存

配置源代碼樹:

--prefix=/usr/local/apache2 //體系無關文件的頂級安裝目錄PREFIX ,也就Apache的安裝目錄。
--enable-module=so //打開 so 模塊,so 模塊是用來提 DSO 支持的 apache 核心模塊
--enable-mods-shared=all //編譯全部的模板,對於不需要我們可以在httpd.conf去掉。
--enable-cache //支持緩存
--enable-file-cache //支持文件緩存
--enable-mem-cache //支持記憶緩存
--enable-disk-cache //支持磁盤緩存
--enable-static-support //支持靜態連接(默認爲動態連接)
--enable-static-htpasswd //使用靜態連接編譯 htpasswd - 管理用於基本認證的用戶文件
--enable-static-htdigest //使用靜態連接編譯 htdigest - 管理用於摘要認證的用戶文件
--enable-static-rotatelogs //使用靜態連接編譯 rotatelogs - 滾動 Apache 日誌的管道日誌程序
--enable-static-logresolve //使用靜態連接編譯 logresolve - 解析 Apache 日誌中的IP地址爲主機名
--enable-static-htdbm //使用靜態連接編譯 htdbm - 操作 DBM 密碼數據庫
--enable-static-ab //使用靜態連接編譯 ab - Apache HTTP 服務器性能測試工具
--enable-static-checkgid //使用靜態連接編譯 checkgid
--disable-cgid //禁止用一個外部 CGI 守護進程執行CGI腳本
--disable-cgi //禁止編譯 CGI 版本的 PHP
--with-mpm=worker // 讓apache以worker方式運行
--enable-ssl // 編譯 ssl模塊。

啓動Apache(建議先不要啓動,等我們全部設置完畢後,和Nginx啓動)

/usr/local/apache2/bin/apachectl start

查看apache是否啓動

ps aux|grep httpd

將apache設置成開機自啓動:

echo '/usr/local/apache2/bin/apachectl start ' >> /etc/rc.local  //將 apachectl 的調用加入到你的系統啓動文件中。

四、安裝 PHP5.2.x:

1)下載PHP 並解壓縮:

安裝php支持連接mssql

# tar zxvf freetds-0.82.tar.gz

# cd freetds-0.82

//--with-tdsver=8.0是指安裝tds 8.0版本(如果沒有加這個參數,則按照默認編譯爲5.0。5.0連接數據庫的端口是4000,而不是SQLServer的1433)

# ./configure --prefix=/usr/local/freetds --with-tdsver=8.0

# make

# make install

#vi /etc/ld.so.conf 設置系統動態庫配置文件,加入以下:

/usr/local/freetds/lib

保存退出。

#ldconfig 重新加載動態庫列表ld.so.conf

#生成兩個文件,後面PHP編譯時需要

#touch /usr/local/freetds/include/tds.h

#touch /usr/local/freetds/lib/libtds.a

cd /usr/local/src
wget -c http://us.php.net/distributions/php-5.2.17.tar.gz
tar zxvf php-5.2.17.tar.gz
cd php-5.2.17
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-config-file-path=/etc --with-zlib --with-libxml-dir --with-gd=/usr/local/gd --with-freetype-dir --with-jpeg-dir --with-png-dir --with-ttf --with-iconv --with-openssl --with-mcrypt --enable-sockets --enable-bcmath --enable-calendar --enable-exif --enable-libxml --enable-magic-quotes --enable-mbstring --with-bz2 --with-curl --with-xmlrpc --with-gettext --disable-cli --disable-cgi --disable-debug  --with-mssql=/usr/local/freetds
make ZEND_EXTRA_LIBS='-liconv'
make install
cp php.ini-dist /etc/php.ini

#vi  /etc/php.ini

mssql.charset = "GBK"   //修改MSSQL默認編碼,把前面的“;”去掉。

2)安裝PHP擴展:

2.1)安裝eaccelerator加速軟件

eaccelerator是php的加速軟件,使用後php的執行效率會有很大幅度的提升。

cd /usr/local/src
wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2
tar -jxvf eaccelerator-0.9.6.1.tar.bz2
cd eaccelerator-0.9.6.1
/usr/local/php/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config
make && make install

編譯安裝後我們會看到屏幕提示的eaccelerator.so所在的目錄,php5.2.x系列是在 /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/,記住這個路徑,待會要用到

修改php.ini 文件,將以下內容輸入(詳細設置):

[eaccelerator]

zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"

eaccelerator.shm_size="16"

eaccelerator.cache_dir="/tmp/eaccelerator"

eaccelerator.enable="1"

eaccelerator.optimizer="1"

eaccelerator.check_mtime="1"

eaccelerator.debug="0"

eaccelerator.filter=""

eaccelerator.shm_max="0"

eaccelerator.shm_ttl="3600"

eaccelerator.shm_prune_period="3600"

eaccelerator.shm_only="0"

eaccelerator.compress="1"

eaccelerator.compress_level="9"

注意:這部分內容務必放在[zend]之前,不然可能會出現不可預期的服務器問題。

然後建立文件夾並設置權限:

mkdir /tmp/eaccelerator
chmod 777 /tmp/eaccelerator

2.2)安裝Zend(如果程序沒要求,儘量不要裝Zend,容易和eA產生衝突):

cd /usr/local/src
wget http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz
tar -zxvf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz
cp ZendOptimizer-3.3.9-linux-glibc23-i386/data/5_2_x_comp/ZendOptimizer.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/

修改php.ini 文件:

vi /usr/local/php/php.ini

將以下代碼放入php.ini文件最底部

[Zend Optimizer]

zend_optimizer.optimization_level=1

zend_optimizer.encoder_loader=0

zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ZendOpti

mizer.so"

2.3)安裝PDO_MYSQL

cd /usr/local/src
wget -c http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
tar zxvf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql
make
make install

繼續修改 php.ini 文件

vi /usr/local/php/php.ini

查找代碼:

extension_dir = "./"

替換爲:

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
extension="pdo_mysql.so"

2.4)安裝 suhosin:

cd /usr/local/src
wget -c http://download.suhosin.org/suhosin-0.9.32.1.tar.gz
tar -zxvf suhosin-0.9.32.1.tar.gz
cd suhosin-0.9.32.1
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

繼續修改 php.ini 文件

vi /usr/local/php/php.ini

查找代碼:

extension_dir = "./"

替換爲:

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
extension="suhosin.so"

五、Apache 整合 PHP 以及相關優化:

1)Apache設置:

mkdir /home/www

編輯 httpd.conf :

vi /usr/local/apache2/conf/httpd.conf

查找代碼:

DocumentRoot "/usr/local/apache2/htdocs"

修改爲:

DocumentRoot "/home/www"

查找代碼:

<Directory "/usr/local/apache2/htdocs">

修改爲:

<Directory "/home/www">

找到以下代碼並根據提示修改

<Directory />
Options FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all        //這句改爲Allow from all
</Directory>

找到這一段並修改,以使Apache支持rewrite(僞靜態):

# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
AllowOverride None

更改爲

AllowOverride All

將以下代碼註釋掉,禁止目錄列表:

Options Indexes FollowSymLinks

找到以下代碼,修改用戶爲 www

<IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>

User daemon              //改爲www
Group daemon             //改爲www

</IfModule>
</IfModule>

設置 ServerAdmin [email protected] 改爲你自己的mail地址

查找:

Listen 80

改爲

Listen 81

分別找到以下四段代碼,將之前的註釋#去除:

Include conf/extra/httpd-mpm.conf

Include conf/extra/httpd-info.conf

Include conf/extra/httpd-vhosts.conf

Include conf/extra/httpd-default.conf

編輯 Include conf/extra/httpd-mpm.conf 找到如下選項,並改成對應的數值

<IfModule mpm_prefork_module>

StartServers          5

MinSpareServers       5

MaxSpareServers      10

MaxClients          150

MaxRequestsPerChild   1000

</IfModule>

編輯 conf/extra/httpd-default.conf

Timeout 60   #與nginx的保持一至

KeepAlive On

MaxKeepAliveRequests 1000

KeepAliveTimeout 5

複製以下文件:

cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd

這樣以後Apache 啓動、關閉、重啓只需要輸入以下命令:

service httpd start/stop/restart

2)整合Apache與php

編輯 /usr/local/apache2/conf/httpd.conf

找到AddType application/x-gzip .gz .tgz在其下加以下內容

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

查找:(設置WEB默認文件)

DirectoryIndex index.html

改成:

DirectoryIndex index.php index.htm index.html index.html.var

保存退出

以上設置完畢後,全部保存退出,然後建立一個虛擬主機做測試:

編輯 Include conf/extra/httpd-vhosts.conf

<VirtualHost *:81>

ServerAdmin [email protected]

DocumentRoot "/home/www"

ServerName  211.64.33.165

ErrorLog "logs/IP-error_log"

CustomLog "logs/IP-access_log" common

</VirtualHost>

保存退出,並重啓Apache

service httpd restart  或 /usr/local/apache2/bin/apachectl restart

然後建立一個 index.php文件,放入 /home/www 目錄,php文件內容爲:

<?php
phpinfo();
?>

然後在瀏覽器中輸入:IP:81 是否成功顯示了?

六、優化MySQL

通過Tcmalloc 優化mysql性能

# vi /etc/init.d/mysql

添加一行

export LD_PRELOAD=/usr/local/lib/libtcmalloc.so

重新啓動mysql

service mysql restart

檢測是否成功,在SSH中輸入:

lsof -n|grep tcmalloc

出現相關進程即可

七、安裝Nginx:

1)安裝所需組件:

cd /usr/local/src
wget -c ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.12.tar.gz
tar -zxvf pcre-8.12.tar.gz
cd pcre-8.12/
./configure
make && make install

cd ..
rm -rf pcre-8.12
rm -rf /usr/bin/pcre-config
cp -a /usr/local/bin/pcre-config /usr/bin/
rm -rf /usr/lib/libpcre.a
cp -a /usr/local/lib/libpcre.a /usr/lib/

2)安裝 Nginx 0.8.x:

cd /usr/local/src
wget -c http://nginx.org/download/nginx-0.8.54.tar.gz
tar zxvf nginx-0.8.54.tar.gz
cd nginx-0.8.54
./configure --user=www --group=www --prefix=/usr/local/nginx --pid-path=/usr/local/nginx/logs/nginx.pid --error-log-path=/usr/local/nginx/logs/error.log --http-log-path=/usr/local/nginx/logs/access.log --with-http_stub_status_module --with-http_ssl_module --http-client-body-temp-path=/tmp/nginx_client --http-proxy-temp-path=/tmp/nginx_proxy --http-fastcgi-temp-path=/tmp/nginx_fastcgi --with-http_gzip_static_module --with-google_perftools_module --with-ld-opt='-ltcmalloc_minimal' --with-ipv6

make && make install

編輯 nginx.conf 文件:

vi /usr/local/nginx/conf/nginx.conf

輸入以下內容:

user  www;

worker_processes  4;

pid  logs/nginx.pid;

google_perftools_profiles /var/tmp/tcmalloc;

worker_rlimit_nofile 51200;

events

{

use epoll;

worker_connections 51200;

}

http{

include       mime.types;

default_type  application/octet-stream;

access_log  off;

error_log  /dev/null;

server_names_hash_bucket_size 128;

client_header_buffer_size 32k;

large_client_header_buffers 4 32k;

client_max_body_size 8m;

sendfile on;

tcp_nopush     on;

keepalive_timeout 120;

#fastcgi_connect_timeout 300;

#fastcgi_send_timeout 300;

#fastcgi_read_timeout 300;

#fastcgi_buffer_size 64k;

#fastcgi_buffers 4 64k;

#fastcgi_busy_buffers_size 128k;

#fastcgi_temp_file_write_size 128k;

tcp_nodelay on;

gzip on;

gzip_min_length  1k;

gzip_buffers     4 16k;

gzip_http_version 1.0;

gzip_comp_level 2;

gzip_types       text/plain application/x-javascript text/css application/xml;

gzip_vary on;

include vhost/*.conf;

 server {

 listen 80;

 server_name 192.168.100.100;

 root /home/www/;

 index index.html index.htm;

 access_log off;

 location ~* \.(ftpquota|htaccess|asp|aspx|jsp|asa|mdb)$ {

 deny  all;

 }

 location / {

 client_max_body_size    100m;

 client_body_buffer_size 128k;

 proxy_send_timeout   300;

 proxy_read_timeout   300;

 proxy_buffer_size    4k;

 proxy_buffers     16 32k;

 proxy_busy_buffers_size 64k;

 proxy_temp_file_write_size 64k;

 proxy_connect_timeout 30s;

 proxy_pass http://192.168.100.100:81/;

 proxy_set_header   Host   $host;

 proxy_set_header   X-Real-IP  $remote_addr;

 proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;

 }

 }

}

在 /usr/local/nginx/conf 目錄 新建proxy.conf 文件,並輸入以下內容:

proxy_redirect          off;

proxy_set_header        Host $host;

proxy_set_header        X-Real-IP $remote_addr;

proxy_set_header        X-Forwarded-For   $proxy_add_x_forwarded_for;

client_max_body_size    50m;

client_body_buffer_size 256k;

proxy_connect_timeout   30;

proxy_send_timeout      30;

proxy_read_timeout      60;

proxy_buffer_size       4k;

proxy_buffers           4 32k;

proxy_busy_buffers_size 64k;

proxy_temp_file_write_size 64k;

proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;

proxy_max_temp_file_size 128m;

#Nginx cache

client_body_temp_path client_body 1 2;

proxy_temp_path proxy_temp 1 2;

#client_body_temp_path      /tmpfs/client_body_temp 1 2;

#proxy_temp_path            /tmpfs/proxy_temp 1 2;

#fastcgi_temp_path          /tmpfs/fastcgi_temp 1 2;

建立 Nginx虛擬主機目錄,把nginx加入到系統服務:

mkdir -p /usr/local/nginx/conf/vhost
chmod 755 -R /home/www

chown -R www:www /home/www/
chown www /usr/local/nginx/conf/

編輯 /etc/rc.d/init.d/nginx 文件,覆蓋爲以下代碼:

#! /bin/sh

ulimit -n 65535

# Description: Startup script for nginx

# chkconfig: 2345 55 25

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

DESC="nginx daemon"

NAME=nginx

DAEMON=/usr/local/nginx/sbin/$NAME

CONFIGFILE=/usr/local/nginx/conf/nginx.conf

PIDFILE=/usr/local/nginx/logs/$NAME.pid

SCRIPTNAME=/etc/init.d/$NAME

set -e

[ -x "$DAEMON" ] || exit 0

do_start() {

$DAEMON -c $CONFIGFILE || echo -n "nginx already running"

}

do_stop() {

kill -QUIT `cat $PIDFILE` || echo -n "nginx not running"

}

do_reload() {

kill -HUP `cat $PIDFILE` || echo -n "nginx can't reload"

}

case "$1" in

start)

echo -n "Starting $DESC: $NAME"

do_start

echo "."

/etc/init.d/httpd start

;;

stop)

echo -n "Stopping $DESC: $NAME"

do_stop

echo "."

/etc/init.d/httpd stop

;;

reload)

echo -n "Reloading $DESC configuration..."

do_reload

echo "."

/etc/init.d/httpd restart

;;

restart)

echo -n "Restarting $DESC: $NAME"

do_stop

sleep 1

do_start

echo "."

/etc/init.d/httpd restart

;;

*)

echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2

exit 3

;;

Esac

exit 0

#! /bin/shulimit -n 65535# Description: Startup script for nginx# chkconfig: 2345 55 25
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/binDESC="nginx daemon"NAME=nginxDAEMON=/usr/local/nginx/sbin/$NAMECONFIGFILE=/usr/local/nginx/conf/nginx.confPIDFILE=/usr/local/nginx/logs/$NAME.pidSCRIPTNAME=/etc/init.d/$NAME
set -e[ -x "$DAEMON" ] || exit 0
do_start() { $DAEMON -c $CONFIGFILE || echo -n "nginx already running"}
do_stop() { kill -QUIT `cat $PIDFILE` || echo -n "nginx not running"}
do_reload() { kill -HUP `cat $PIDFILE` || echo -n "nginx can't reload"}
case "$1" in start) echo -n "Starting $DESC: $NAME" do_start echo "." /etc/init.d/httpd start ;; stop) echo -n "Stopping $DESC: $NAME" do_stop echo "." /etc/init.d/httpd stop ;; reload) echo -n "Reloading $DESC configuration..." do_reload echo "." /etc/init.d/httpd restart ;; restart) echo -n "Restarting $DESC: $NAME" do_stop sleep 1 do_start echo "." /etc/init.d/httpd restart ;; *) echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2 exit 3 ;;esac
exit 0

在ssh 中輸入:

chmod 777 /etc/init.d/nginx

chmod a+x /etc/rc.d/init.d/nginx
chkconfig --add nginx
chkconfig nginx on

八、爲apache安裝rpaf模塊,該模塊用於apache做後端時獲取訪客真實的IP(建議在LNAMP最後安裝。。。之前安裝有時會出錯)

1)使用apxs安裝模塊.這裏要使用此前apache編譯安裝後的apxs

cd /usr/local/src

wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz

tar -zxf mod_rpaf-0.6.tar.gz

cd mod_rpaf-0.6

/usr/local/apache2/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

2)vi  /usr/local/apache2/conf/httpd.conf       // 編輯/usr/local/apache2/conf/httpd.conf添加模塊參數,查找LoadModule php5_module modules/libphp5.so,在下方添加:

LoadModule rpaf_module modules/mod_rpaf-2.0.so

#Mod_rpaf settings

RPAFenable On

RPAFproxy_ips 192.168.100.100 [your_ips]

RPAFsethostname On

RPAFheader X-Forwarded-For

上面出現的[your_ips]請修改爲你本機所監聽web服務的ip.多個IP用空格空開.

Apache、Nginx、MySQL 啓動/重啓/關閉命令:

service mysql start/stop/restart
service httpd start/stop/restart
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章