CentOS 6.3 页游环境配置 Nginx 1.2.6+PHP5.2.17(FastCGI)+MySql 5.5.29+Java1.0.7_11

一、配置网络

查看网卡:

ifconfig -a

直接改eth0吧,如下

输入命令:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

我的配置如下:

DEVICE="eth0"
BOOTPROTO=none
NM_CONTROLLED="yes"  //修改为yes后无需要重启网卡立即生效
ONBOOT=yes
TYPE="Ethernet"
UUID="b400000d-9a8c-4000-ac73-9ce00c86c000"
HWADDR=00:00:00:00:00:00
IPADDR=192.168.1.202          //你的IP
PREFIX=24                            //子网掩码
GATEWAY=192.168.1.254      //网关
DNS1=8.8.4.4          //DNS
DNS2=8.8.8.8
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"

这里我还是重启了网卡:

service network restart 

二、CentOS6.3配置yum源

备份并替换系统的repo文件

mv /etc/yum.repos.d/CentOS-Base.repo CentOS-Base.repo.bak
vi /etc/yum.repos.d/CentOS-Base.repo
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#released updates 
[updates]
name=CentOS-$releasever - Updates - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/contrib/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

执行yum源更新

yum clean all
yum makecache
yum update

注:

yum 是 Fedora RHEL Centos SUSE等linux 发行版的 软件包管理工具

通过 执行 man yum 查看yum的帮助信息 可以知道

yum makecache 是 将服务器上的软件包信息 现在本地缓存,以提高 搜索 安装软件的速度

yum 主要的一下命令如下:

yum search 软件包 搜索软件包

yum install 软件包 安装软件包

yum remove 软件包

yum update 更新系统

 安装centos常用的软件包及工具 常见压缩工具

yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel patch openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

cmake编译器 Mysql5.5需要Cmake安装

yum -y install cmake make 

三、下载【适用CentOS、RedHat及其它Linux操作系统】下载程序源码包:

mkdir -p /Downloads
cd /Downloads
wget http://nginx.org/download/nginx-1.2.6.tar.gz
wget http://cn2.php.net/distributions/php-5.2.17.tar.gz
wget http://php-fpm.org/downloads/php-5.2.17-fpm-0.5.14.diff.gz
wget http://cdn.mysql.com/Downloads/MySQL-5.5/mysql-5.5.29.tar.gz
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
wget http://superb-dca3.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
wget http://hivelocity.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz
wget http://pecl.php.net/get/memcache-2.2.7.tgz
wget http://nchc.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.32.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/eaccelerator/eaccelerator-0.9.6.1.tar.bz2
wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
wget http://servingzone.com/mirrors/ImageMagick/ImageMagick-6.8.1-10.tar.gz
wget http://pecl.php.net/get/imagick-3.0.1.tgz

 四、安装PHP 5.2.14(FastCGI模式)

tar zxvf libiconv-1.14.tar.gz
cd libiconv-1.14/
./configure --prefix=/usr/local
make
make install cd ..
/

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 ../../
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
tar zxvf mcrypt
-2.6.8.tar.gz cd mcrypt-2.6.8/ /sbin/ldconfig ./configure make make install cd ../

编译安装MySQL 5.5.3-m3

/usr/sbin/groupadd mysql /usr/sbin/useradd -g mysql mysql tar zxvf mysql-5.5.3-m3.tar.gz cd mysql-5.5.3-m3/ ./configure --prefix=/usr/local/webserver/mysql/ --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=partition,innobase,myisammrg make && make install chmod +w /usr/local/webserver/mysql chown -R mysql:mysql /usr/local/webserver/mysql cd ../

  附:以下为附加步骤,如果你想在这台服务器上运行MySQL数据库,则执行以下几步。如果你只是希望让PHP支持MySQL扩展库,能够连接其他服务器上的MySQL数据库,那么,以下两步无需执行。
  ①、创建MySQL数据库存放目录

mkdir -p /data0/mysql/3306/data/ mkdir -p /data0/mysql/3306/binlog/ mkdir -p /data0/mysql/3306/relaylog/ chown -R mysql:mysql /data0/mysql/

  ②、以mysql用户帐号的身份建立数据表:

/usr/local/webserver/mysql/bin/mysql_install_db --basedir=/usr/local/webserver/mysql --datadir=/data0/mysql/3306/data --user=mysql

  ③、创建my.cnf配置文件:

vi /data0/mysql/3306/my.cnf

  输入以下内容:

引用
[client] character-set-server = utf8 port    = 3306 socket  = /tmp/mysql.sock
[mysqld] character-set-server = utf8 replicate-ignore-db = mysql replicate-ignore-db = test replicate-ignore-db = information_schema user    = mysql port    = 3306 socket  = /tmp/mysql.sock basedir = /usr/local/webserver/mysql datadir = /data0/mysql/3306/data log-error = /data0/mysql/3306/mysql_error.log pid-file = /data0/mysql/3306/mysql.pid open_files_limit    = 10240 back_log = 600 max_connections = 5000 max_connect_errors = 6000 table_cache = 614 external-locking = FALSE max_allowed_packet = 32M sort_buffer_size = 1M join_buffer_size = 1M thread_cache_size = 300 #thread_concurrency = 8 query_cache_size = 512M query_cache_limit = 2M query_cache_min_res_unit = 2k default-storage-engine = MyISAM thread_stack = 192K transaction_isolation = READ-COMMITTED tmp_table_size = 246M max_heap_table_size = 246M long_query_time = 3 log-slave-updates log-bin = /data0/mysql/3306/binlog/binlog binlog_cache_size = 4M binlog_format = MIXED max_binlog_cache_size = 8M max_binlog_size = 1G relay-log-index = /data0/mysql/3306/relaylog/relaylog relay-log-info-file = /data0/mysql/3306/relaylog/relaylog relay-log = /data0/mysql/3306/relaylog/relaylog expire_logs_days = 30 key_buffer_size = 256M read_buffer_size = 1M read_rnd_buffer_size = 16M bulk_insert_buffer_size = 64M myisam_sort_buffer_size = 128M myisam_max_sort_file_size = 10G myisam_repair_threads = 1 myisam_recover
interactive_timeout = 120 wait_timeout = 120
skip-name-resolve #master-connect-retry = 10 slave-skip-errors = 1032,1062,126,1114,1146,1048,1396
#master-host     =   192.168.1.2 #master-user     =   username #master-password =   password #master-port     =  3306
server-id = 1
innodb_additional_mem_pool_size = 16M innodb_buffer_pool_size = 512M innodb_data_file_path = ibdata1:256M:autoextend innodb_file_io_threads = 4 innodb_thread_concurrency = 8 innodb_flush_log_at_trx_commit = 2 innodb_log_buffer_size = 16M innodb_log_file_size = 128M innodb_log_files_in_group = 3 innodb_max_dirty_pages_pct = 90 innodb_lock_wait_timeout = 120 innodb_file_per_table = 0
#log-slow-queries = /data0/mysql/3306/slow.log #long_query_time = 10
[mysqldump] quick max_allowed_packet = 32M

  ④、创建管理MySQL数据库的shell脚本:

vi /data0/mysql/3306/mysql

  输入以下内容(这里的用户名admin和密码12345678接下来的步骤会创建):

#!/bin/sh
mysql_port=3306 mysql_username="admin" mysql_password="12345678"
function_start_mysql() {     printf "Starting MySQL...\n"     /bin/sh /usr/local/webserver/mysql/bin/mysqld_safe --defaults-file=/data0/mysql/${mysql_port}/my.cnf 2>&1 > /dev/null & }
function_stop_mysql() {     printf "Stoping MySQL...\n"     /usr/local/webserver/mysql/bin/mysqladmin -u ${mysql_username} -p${mysql_password} -S /tmp/mysql.sock shutdown }
function_restart_mysql() {     printf "Restarting MySQL...\n"     function_stop_mysql     sleep 5     function_start_mysql }
function_kill_mysql() {     kill -9 $(ps -ef | grep 'bin/mysqld_safe' | grep ${mysql_port} | awk '{printf $2}')     kill -9 $(ps -ef | grep 'libexec/mysqld' | grep ${mysql_port} | awk '{printf $2}') }
if [ "$1" = "start" ]; then     function_start_mysql elif [ "$1" = "stop" ]; then     function_stop_mysql elif [ "$1" = "restart" ]; then function_restart_mysql elif [ "$1" = "kill" ]; then function_kill_mysql else     printf "Usage: /data0/mysql/${mysql_port}/mysql {start|stop|restart|kill}\n" fi

  ⑤、赋予shell脚本可执行权限:

chmod +x /data0/mysql/3306/mysql

  ⑥、启动MySQL:

/data0/mysql/3306/mysql start

  ⑦、通过命令行登录管理MySQL服务器(提示输入密码时直接回车):

/usr/local/webserver/mysql/bin/mysql -u root -p -S /tmp/mysql.sock

  ⑧、输入以下SQL语句,创建一个具有root权限的用户(admin)和密码(12345678):

GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' IDENTIFIED BY '12345678';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'127.0.0.1' IDENTIFIED BY '12345678';

  ⑨、(可选)停止MySQL:

/data0/mysql/3306/mysql stop

 

 

 

 

 

 

 

 

编译安装PHP(FastCGI模式)

tar zxvf php-5.2.17.tar.gz
gzip -cd php-5.2.17-fpm-0.5.14.diff.gz | patch -d php-5.2.17 -p1
cd php-5.2.17/
./configure --prefix=/usr/local/webserver/php --with-config-file-path=/usr/local/webserver/php/etc --with-

mysql=/usr/local/webserver/mysql --with-mysqli=/usr/local/webserver/mysql/bin/mysql_config --with-iconv-

dir=/usr/local --with-freetype-dir --with-jpeg-dir=/usr/lib64 --with-png-dir=/usr/lib64 --with-zlib --

with-libxml-dir=/usr/lib64 --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-

bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --

enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt 

--with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap 

--with-ldap-sasl --with-xmlrpc --with-bz2 --enable-zip --enable-wddx --enable-soap

指定png目录

"./configure" \
"--prefix=/usr/local/php5" \
"--enable-force-cgi-redirect" \
"--enable-fastcgi" \
"--with-bz2" \
"--with-config-file-path=/usr/local/etc" \
"--with-config-file-scan-dir=/usr/local/etc/php.d" \
"--with-curl=/usr/local/lib" \
"--with-gd" \
"--with-gettext" \
"--with-jpeg-dir=/usr/local/lib" \
"--with-freetype-dir=/usr/local/lib" \
"--with-kerberos" \
"--with-mcrypt" \
"--with-mhash" \
"--with-mime-magic" \
"--with-mysql" \
"--with-mysqli" \
"--with-pcre-regex=/usr" \
"--with-pdo-mysql=shared" \
"--with-pdo-sqlite=shared" \
"--with-pear=/usr/local/lib/php" \
"--with-png-dir=/usr/local/lib" \
"--with-pspell" \
"--with-sqlite=shared" \
"--with-tidy" \
"--with-ttf" \
"--with-xmlrpc" \
"--with-xsl" \
"--with-zlib" \
"--with-zlib-dir=/usr/local/lib" \
"--with-openssl" \
"--with-iconv" \
"--with-libdir=lib64" \
"--enable-bcmath" \
"--enable-calendar" \
"--enable-exif" \
"--enable-ftp" \
"--enable-gd-native-ttf" \
"--enable-libxml" \
"--enable-magic-quotes" \
"--enable-soap" \
"--enable-sockets" \
"--enable-mbstring" \
"--enable-zip" \
"--enable-wddx"


make ZEND_EXTRA_LIBS='-liconv'

make install

cp php.ini-dist /usr/local/webserver/php/etc/php.ini

cd ../

编译安装PHP5扩展模块

tar zxvf memcache-2.2.7.tgz
cd memcache-2.2.7/
/usr/local/webserver/php/bin/phpize
./configure --with-php-config=/usr/local/webserver/php/bin/php-config
make
make install
cd ../

tar jxvf eaccelerator-0.9.6.1.tar.bz2
cd eaccelerator-0.9.6.1/
/usr/local/webserver/php/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=/usr/local/webserver/php/bin/php-config
make
make install
cd ../

tar zxvf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2/
/usr/local/webserver/php/bin/phpize
./configure --with-php-config=/usr/local/webserver/php/bin/php-config --with-pdo-mysql=/usr/local/webserver/mysql
make
make install
cd ../

yum -y install perl-CPAN tar zxvf ImageMagick
-6.8.1-10.tar.gz cd ImageMagick-6.8.1-10/ ./configure --prefix=/usr/local/webserver/ImageMagick
make make install cd ..
/ tar zxvf imagick-3.0.1.tgz cd imagick-3.0.1/ /usr/local/webserver/php/bin/phpize
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
./configure --with-php-config=/usr/local/webserver/php/bin/php-config --with-imagick=/usr/local/webserver/ImageMagick
make
make install cd ..
/

5、修改php.ini文件
  手工修改:

查找

vi /usr/local/webserver/php/etc/php.ini

中的

extension_dir = "./"
修改为

extension_dir = "/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/"
  

并在此行后增加以下几行,然后保存:
  extension = "memcache.so"
  extension = "pdo_mysql.so"
  extension = "imagick.so"

  再查找output_buffering = Off
  修改为output_buffering = On

  再查找; cgi.fix_pathinfo=0
  修改为cgi.fix_pathinfo=0,防止Nginx文件类型错误解析漏洞。 

 6、配置eAccelerator加速PHP:

mkdir -p /usr/local/webserver/eaccelerator_cache
vi /usr/local/webserver/php/etc/php.ini

  按shift+g键跳到配置文件的最末尾,加上以下配置信息:

[eaccelerator]
zend_extension="/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
eaccelerator.shm_size="64"
eaccelerator.cache_dir="/usr/local/webserver/eaccelerator_cache"
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"

7、创建www用户和组,虚拟主机使用的目录:

/usr/sbin/groupadd www
/usr/sbin/useradd -g www www
mkdir -p /www/djws
chmod +w /www/djws
chown -R www:www /www/djws

8、创建php-fpm配置文件(php-fpm是为PHP打的一个FastCGI管理补丁,可以平滑变更php.ini配置而无需重启php-cgi):   

在/usr/local/webserver/php/etc/目录中创建php-fpm.conf文件:

rm -f /usr/local/webserver/php/etc/php-fpm.conf
vi /usr/local/webserver/php/etc/php-fpm.conf

 输入以下内容(如果您安装 Nginx + PHP 用于程序调试,请将以下的"display_errors">0改为"display_errors">1,以便显示PHP错误信息,否则,Nginx 会报状态为500的空白错误页):

"1.0" ?>


  All relative paths in this config are relative to php's install prefix

  
"global_options"> Pid file "pid_file">/usr/local/webserver/php/logs/php-fpm.pid Error log file "error_log">/usr/local/webserver/php/logs/php-fpm.log Log level "log_level">notice When this amount of php processes exited with SIGSEGV or SIGBUS ... "emergency_restart_threshold">10 ... in a less than this interval of time, a graceful restart will be initiated. Useful to work around accidental curruptions in accelerator's shared memory. "emergency_restart_interval">1m Time limit on waiting child's reaction on signals from master "process_control_timeout">5s Set to 'no' to debug fpm "daemonize">yes
"pool"> Name of pool. Used in logs and stats. "name">default Address to accept fastcgi requests on. Valid syntax is 'ip.ad.re.ss:port' or just 'port' or '/path/to/unix/socket' "listen_address">127.0.0.1:9000 "listen_options"> Set listen(2) backlog "backlog">-1 Set permissions for unix socket, if one used. In Linux read/write permissions must be set in order to allow connections from web server. Many BSD-derrived systems allow connections regardless of permissions. "owner"> "group"> "mode">0666 Additional php.ini defines, specific to this pool of workers. "php_defines"> "sendmail_path">/usr/sbin/sendmail -t -i "display_errors">0 Unix user of processes "user">www Unix group of processes "group">www Process manager settings "pm"> Sets style of controling worker process count. Valid values are 'static' and 'apache-like' "style">static Sets the limit on the number of simultaneous requests that will be served. Equivalent to Apache MaxClients directive. Equivalent to PHP_FCGI_CHILDREN environment in original php.fcgi Used with any pm_style. "max_children">128 Settings group for 'apache-like' pm style "apache_like"> Sets the number of server processes created on startup. Used only when 'apache-like' pm_style is selected "StartServers">20 Sets the desired minimum number of idle server processes. Used only when 'apache-like' pm_style is selected "MinSpareServers">5 Sets the desired maximum number of idle server processes. Used only when 'apache-like' pm_style is selected "MaxSpareServers">35 The timeout (in seconds) for serving a single request after which the worker process will be terminated Should be used when 'max_execution_time' ini option does not stop script execution for some reason '0s' means 'off' "request_terminate_timeout">0s The timeout (in seconds) for serving of single request after which a php backtrace will be dumped to slow.log file '0s' means 'off' "request_slowlog_timeout">0s The log file for slow requests "slowlog">logs/slow.log Set open file desc rlimit "rlimit_files">65535 Set max core size rlimit "rlimit_core">0 Chroot to this directory at the start, absolute path "chroot"> Chdir to this directory at the start, absolute path "chdir"> Redirect workers' stdout and stderr into main error log. If not set, they will be redirected to /dev/null, according to FastCGI specs "catch_workers_output">yes How much requests each process should execute before respawn. Useful to work around memory leaks in 3rd party libraries. For endless request processing please specify 0 Equivalent to PHP_FCGI_MAX_REQUESTS "max_requests">1024 Comma separated list of ipv4 addresses of FastCGI clients that allowed to connect. Equivalent to FCGI_WEB_SERVER_ADDRS environment in original php.fcgi (5.2.2+) Makes sense only with AF_INET listening socket. "allowed_clients">127.0.0.1 Pass environment variables like LD_LIBRARY_PATH All $VARIABLEs are taken from current environment "environment"> "HOSTNAME">$HOSTNAME "PATH">/usr/local/bin:/usr/bin:/bin "TMP">/tmp "TMPDIR">/tmp "TEMP">/tmp "OSTYPE">$OSTYPE "MACHTYPE">$MACHTYPE "MALLOC_CHECK_">2

9、启动php-cgi进程,监听127.0.0.1的9000端口,进程数为128(如果服务器内存小于3GB,可以只开启64个进程),用户为www:

ulimit -SHn 65535
/usr/local/webserver/php/sbin/php-fpm start

注:/usr/local/webserver/php/sbin/php-fpm还有其他参数,包括:start|stop|quit|restart|reload|logrotate,修改php.ini后不重启php-cgi,重新加载配置文件使用reload。

 三、安装Nginx 0.8.46
1、安装Nginx所需的pcre库:

tar zxvf pcre-8.32.tar.gz
cd pcre-8.32/
./configure
make && make install
cd ../

2、安装Nginx

tar zxvf nginx-1.2.6.tar.gz
cd nginx-1.2.6/
./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
cd ../

3、创建Nginx日志目录

mkdir -p /data/nginx/logs
chmod +w /data/nginx/logs
chown -R www:www /data/nginx/logs

4、创建Nginx配置文件
  ①、在/usr/local/webserver/nginx/conf/目录中创建nginx.conf文件:

rm -f /usr/local/webserver/nginx/conf/nginx.conf
vi /usr/local/webserver/nginx/conf/nginx.conf

输入以下内容:

user  www www;

worker_processes 8;

error_log  /data/nginx/logs/nginx_error.log  crit;

pid        /usr/local/webserver/nginx/logs/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process. 
worker_rlimit_nofile 65535;

events 
{
  use epoll;
  worker_connections 65535;
}

http 
{
  include       mime.types;
  default_type  application/octet-stream;

  #charset  gb2312;
      
  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 60;

  tcp_nodelay on;

  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;

  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;

  #limit_zone  crawler  $binary_remote_addr  10m;

  log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
              '$status $body_bytes_sent "$http_referer" '
              '"$http_user_agent" $http_x_forwarded_for';
  access_log 
/data/nginx/logs/access.log  access;
server { listen
80; server_name www.165au.com; index index.html index.htm index.php; root /www/root; #limit_conn crawler 20; location ~ .*\.(php|php5)?$ { #fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fcgi.conf; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 1h; }
location /status {
    stub_status on;
    access_log  off;
    auth_basic  "Nginx Status"; #密码验证的提示语
    auth_basic_user_file /usr/local/webserver/nginx/conf/htpasswd;  #用户名和密码存放的文件  
    }

} }

关于那个文件的生成,请参见工具htpasswd的使用。

vi /usr/local/webserver/nginx/conf/htpasswd

文件中的数据格式是:

user:cryt-password

#用户名称:加密后的密码

这里给大家提供一些在线加密的网站:

http://www.htaccesstools.com/htpasswd-generator/

 

②、在/usr/local/webserver/nginx/conf/目录中创建fcgi.conf文件:

vi /usr/local/webserver/nginx/conf/fcgi.conf

输入以下内容:

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx;

fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

5、启动Nginx

ulimit -SHn 65535
/usr/local/webserver/nginx/sbin/nginx

启动nginx时,提示:error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory

解决方法:

32位系统 [root@sever lib]# ln -s /usr/local/lib/libpcre.so.1 /lib

64位系统 [root@sever lib]# ln -s /usr/local/lib/libpcre.so.1 /lib64

四、配置开机自动启动Nginx + PHP

vi /etc/rc.local

在末尾增加以下内容:

ulimit -SHn 65535
/usr/local/webserver/php/sbin/php-fpm start
/usr/local/webserver/nginx/sbin/nginx

五、优化Linux内核参数

vi /etc/sysctl.conf

在末尾增加以下内容:

# Add
net.ipv4.tcp_max_syn_backlog = 65536
net.core.netdev_max_backlog =  32768
net.core.somaxconn = 32768

net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2

net.ipv4.tcp_tw_recycle = 1
#net.ipv4.tcp_tw_len = 1
net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_max_orphans = 3276800

#net.ipv4.tcp_fin_timeout = 30
#net.ipv4.tcp_keepalive_time = 120
net.ipv4.ip_local_port_range = 1024  65535

使配置立即生效:

/sbin/sysctl -p

 

配置status

配置文件中加上

转载于:https://www.cnblogs.com/51jh/archive/2013/02/04/2879704.html

你可能感兴趣的:(CentOS 6.3 页游环境配置 Nginx 1.2.6+PHP5.2.17(FastCGI)+MySql 5.5.29+Java1.0.7_11)