当前位置: > CentOS > CentOS服务器 > 环境配置 >

centos5.5+nginx0.9.5+mysql5.5.9+php5.2.13 安装笔记

时间:2016-02-02 18:14来源:linux.it.net.cn 作者:IT

本篇中nginx、mysql、php都会被安装在/usr/local/目录下,它们的配置文件和日志等都在它们的安装目录下;mysql的数据库数据放在/data/mysql下,网站数据放在/data/www下。

系统准备和依赖程序库安装

 

[c-sharp] view plain copy print?
  1. 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 openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers libXpm*  

 

yum -y update

 

下载安装包

 

[c-sharp] view plain copy print?
  1. cd /tmp/  
  2. wget http://nginx.org/download/nginx-0.9.5.tar.gz  
  3. wget http://www.php.net/get/php-5.2.13.tar.gz/from/this/mirror  
  4. wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.9.tar.gz/from/http://mysql.he.net/  
  5. wget http://downloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz?modtime=1171868460&big_mirror=0  
  6. wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz  
  7. wget http://downloads.sourceforge.net/mcrypt/mcrypt-2.6.8.tar.gz?modtime=1194463373&big_mirror=0  
  8. wget http://pecl.php.net/get/memcache-2.2.6.tgz  
  9. wget http://downloads.sourceforge.net/mhash/mhash-0.9.9.9.tar.gz?modtime=1175740843&big_mirror=0  
  10. wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.11.tar.gz  
  11. wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2  
  12. wget http://www.cmake.org/files/v2.8/cmake-2.8.3.tar.gz  
  13. wget http://ftp.gnu.org/gnu/bison/bison-2.4.3.tar.gz  

 

 

安装libiconv、libmcrypt、libltdl、mhash、mcrypt

 

[c-sharp] view plain copy print?
  1. cd /tmp/  
  2. tar zxvf libiconv-1.13.1.tar.gz  
  3. cd libiconv-1.13.1/  
  4. ./configure --prefix=/usr/local  
  5. make  
  6. make install  
  7. cd /tmp/  
  8. tar zxvf libmcrypt-2.5.8.tar.gz  
  9. cd libmcrypt-2.5.8/  
  10. ./configure  
  11. make  
  12. make install  
  13. /sbin/ldconfig  
  14.   
  15. cd libltdl/  
  16. ./configure --enable-ltdl-install  
  17. make  
  18. make install  
  19.   
  20. cd /tmp/  
  21. tar zxvf mhash-0.9.9.9.tar.gz  
  22. cd mhash-0.9.9.9/  
  23. ./configure  
  24. make  
  25. make install  
  26. ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la  
  27. ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so  
  28. ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4  
  29. ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8  
  30. ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a  
  31. ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la  
  32. ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so  
  33. ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2  
  34. ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1  
  35. ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config  
  36.   
  37. cd /tmp/  
  38. tar zxvf mcrypt-2.6.8.tar.gz  
  39. cd mcrypt-2.6.8/  
  40. /sbin/ldconfig  
  41. ./configure  
  42. make  
  43. make install  

 

 

 

安装cmake

 

[c-sharp] view plain copy print?
  1. cd /tmp/  
  2. tar zxvf cmake-2.8.3.tar.gz  
  3. cd cmake-2.8.3/  
  4. ./configure --prefix=/usr  
  5. gmake  
  6. gmake install  
  7.   
  8. cd ../  
  9. tar zxvf bison-2.4.3.tar.gz  
  10. cd cd bison-2.4.3  
  11. ./configure  
  12. make  
  13. make install  

 

 

准备用户、目录

 

[c-sharp] view plain copy print?
  1. groupadd mysql  
  2. useradd -g mysql mysql  
  3. groupadd www  
  4. useradd -g www www  
  5. mkdir -p /data/mysql  
  6. chown -R mysql:mysql /data/mysql  
  7. mkdir -p /data/www  
  8. chown -R www:www /data/www  

 

 

安装mysql
编译

 

[c-sharp] view plain copy print?
  1. cd /tmp/  
  2. tar zxvf mysql-5.5.9.tar.gz  
  3. cd mysql-5.5.9  
  4. cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DSYSCONFDIR=/etc/ -DWITH_SSL=yes -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_READLINE=on  
  5. make  
  6. make install  
  7. ln -s /usr/local/mysql/bin/mysql /usr/bin  
  8. ln -s /usr/local/mysql/bin/mysqldump /usr/bin  
  9. ln -s /usr/local/mysql/bin/mysqladmin /usr/bin  
  10. ln -s /usr/local/mysql/lib/libmysqlclient.so /usr/lib  
  11. ln -s /usr/local/mysql/lib/libmysqlclient.so.16 /usr/lib  
  

 

 

配置

 

 

[c-sharp] view plain copy print?
  1. /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/data/mysql --user=mysql  
  2. cd /usr/local/mysql/support-files  

 

 

 

ls一下你会看到有下面的文件: my-huge.cnf 【对应1-2G内存】、my-large.cnf 【对应512M内存】
、my-medium.cnf 【对应128M内存】、my-small.cnf 【对应64M或更低】,你可以查看这些文件,参

照你的电脑配置,选择一个文件

cp my-xxx.cnf /etc/my.cnf

编辑文件/etc/my.conf

然后在[mysqld]配置选项下添加

character-set-server = utf8

 

初始化和启动

 

 

[c-sharp] view plain copy print?
  1. cp /opt/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld  
  2. chkconfig --add mysqld  
  3. chkconfig mysqld on  
  4. /etc/rc.d/init.d/mysqld start  
  5. cd /opt/mysql/  
  6. bin/mysql_secure_installation  

 

 

按照提示设置root密码等

安装php
编译

 

 

[c-sharp] view plain copy print?
  1. tar zxvf php-5.2.14.tar.gz  
  2. gzip -cd php-5.2.14-fpm-0.5.14.diff.gz | patch -d php-5.2.14 -p1  
  3. cd php-5.2.14/  
  4. ./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 --with-png-dir --with-zlib --with-libxml-dir=/usr --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 --enable-zip --enable-soap  
  5. make ZEND_EXTRA_LIBS='-liconv'  
  6. make install  
  7. cp php.ini-dist /usr/local/webserver/php/etc/php.ini  
  8. cd ../  

 

 

编译安装PHP5扩展模块


[c-sharp] view plain copy print?
  1. tar zxvf memcache-2.2.5.tgz  
  2. cd memcache-2.2.5/  
  3. /usr/local/webserver/php/bin/phpize  
  4. ./configure --with-php-config=/usr/local/webserver/php/bin/php-config  
  5. make  
  6. make install  
  7. cd ../  
  8.   
  9. tar jxvf eaccelerator-0.9.6.1.tar.bz2  
  10. cd eaccelerator-0.9.6.1/  
  11. /usr/local/webserver/php/bin/phpize  
  12. ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/webserver/php/bin/php-config  
  13. make  
  14. make install  
  15. cd ../  
  16.   
  17. tar zxvf PDO_MYSQL-1.0.2.tgz  
  18. cd PDO_MYSQL-1.0.2/  
  19. /usr/local/webserver/php/bin/phpize  
  20. ./configure --with-php-config=/usr/local/webserver/php/bin/php-config --with-pdo-mysql=/usr/local/webserver/mysql  
  21. make  
  22. make install  
  23. cd ../  
  24.   
  25. tar zxvf ImageMagick.tar.gz  
  26. cd ImageMagick-6.5.1-2/  
  27. ./configure  
  28. make  
  29. make install  
  30. cd ../  
  31.   
  32. tar zxvf imagick-2.3.0.tgz  
  33. cd imagick-2.3.0/  
  34. /usr/local/webserver/php/bin/phpize  
  35. ./configure --with-php-config=/usr/local/webserver/php/bin/php-config  
  36. make  
  37. make install  
  38. cd ../  

 

 

修改php.ini文件
  手工修改:查找/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文件类型错误解析漏洞。

  自动修改:若嫌手工修改麻烦,可执行以下shell命令,自动完成对php.ini文件的修改:

 

[c-sharp] view plain copy print?
  1. sed -i 's#extension_dir = "./"#extension_dir = "/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/"/nextension = "memcache.so"/nextension = "pdo_mysql.so"/nextension = "imagick.so"/n#' /usr/local/webserver/php/etc/php.ini  
  2. sed -i 's#output_buffering = Off#output_buffering = On#' /usr/local/webserver/php/etc/php.ini  
  3. sed -i "s#; always_populate_raw_post_data = On#always_populate_raw_post_data = On#g" /usr/local/webserver/php/etc/php.ini  
  4. sed -i "s#; cgi.fix_pathinfo=0#cgi.fix_pathinfo=0#g" /usr/local/webserver/php/etc/php.ini  

 

配置eAccelerator加速PHP:

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

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

 

[c-sharp] view plain copy print?
  1. [eaccelerator]  
  2. zend_extension="/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"  
  3. eaccelerator.shm_size="64"  
  4. eaccelerator.cache_dir="/usr/local/webserver/eaccelerator_cache"  
  5. eaccelerator.enable="1"  
  6. eaccelerator.optimizer="1"  
  7. eaccelerator.check_mtime="1"  
  8. eaccelerator.debug="0"  
  9. eaccelerator.filter=""  
  10. eaccelerator.shm_max="0"  
  11. eaccelerator.shm_ttl="3600"  
  12. eaccelerator.shm_prune_period="3600"  
  13. eaccelerator.shm_only="0"  
  14. eaccelerator.compress="1"  
  15. eaccelerator.compress_level="9"  

 

 

创建www用户和组,以及供虚拟主机使用的目录:

 

 

[c-sharp] view plain copy print?
  1. /usr/sbin/groupadd www  
  2. /usr/sbin/useradd -g www www  
  3. mkdir -p /home/www  
  4. chmod +w /home/www  
  5. chown -R www:www /home/www  

 

 

创建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 用于程序调试,请将以下的<value name="display_errors">0</value>改为<value name="display_errors">1</value>,以便显示PHP错误信息,否则,Nginx 会报状态为500的空白错误页):

 

 

[c-sharp] view plain copy print?
  1. <?xml version="1.0" ?>  
  2. <configuration>  
  3.   
  4.   All relative paths in this config are relative to php's install prefix  
  5.   
  6.   <section name="global_options">  
  7.   
  8.     Pid file  
  9.     <value name="pid_file">/usr/local/webserver/php/logs/php-fpm.pid</value>  
  10.   
  11.     Error log file  
  12.     <value name="error_log">/usr/local/webserver/php/logs/php-fpm.log</value>  
  13.   
  14.     Log level  
  15.     <value name="log_level">notice</value>  
  16.   
  17.     When this amount of php processes exited with SIGSEGV or SIGBUS ...  
  18.     <value name="emergency_restart_threshold">10</value>  
  19.   
  20.     ... in a less than this interval of time, a graceful restart will be initiated.  
  21.     Useful to work around accidental curruptions in accelerator's shared memory.  
  22.     <value name="emergency_restart_interval">1m</value>  
  23.   
  24.     Time limit on waiting child's reaction on signals from master  
  25.     <value name="process_control_timeout">5s</value>  
  26.   
  27.     Set to 'no' to debug fpm  
  28.     <value name="daemonize">yes</value>  
  29.   
  30.   </section>  
  31.   
  32.   <workers>  
  33.   
  34.     <section name="pool">  
  35.   
  36.       Name of pool. Used in logs and stats.  
  37.       <value name="name">default</value>  
  38.   
  39.       Address to accept fastcgi requests on.  
  40.       Valid syntax is 'ip.ad.re.ss:port' or just 'port' or '/path/to/unix/socket'  
  41.       <value name="listen_address">127.0.0.1:9000</value>  
  42.   
  43.       <value name="listen_options">  
  44.   
  45.         Set listen(2) backlog  
  46.         <value name="backlog">-1</value>  
  47.   
  48.         Set permissions for unix socket, if one used.  
  49.         In Linux read/write permissions must be set in order to allow connections from web server.  
  50.         Many BSD-derrived systems allow connections regardless of permissions.  
  51.         <value name="owner"></value>  
  52.         <value name="group"></value>  
  53.         <value name="mode">0666</value>  
  54.       </value>  
  55.   
  56.       Additional php.ini defines, specific to this pool of workers.  
  57.       <value name="php_defines">  
  58.         <value name="sendmail_path">/usr/sbin/sendmail -t -i</value>  
  59.         <value name="display_errors">0</value>  
  60.       </value>  
  61.   
  62.       Unix user of processes  
  63.       <value name="user">www</value>  
  64.   
  65.       Unix group of processes  
  66.       <value name="group">www</value>  
  67.   
  68.       Process manager settings  
  69.       <value name="pm">  
  70.   
  71.         Sets style of controling worker process count.  
  72.         Valid values are 'static' and 'apache-like'  
  73.         <value name="style">static</value>  
  74.   
  75.         Sets the limit on the number of simultaneous requests that will be served.  
  76.         Equivalent to Apache MaxClients directive.  
  77.         Equivalent to PHP_FCGI_CHILDREN environment in original php.fcgi  
  78.         Used with any pm_style.  
  79.         <value name="max_children">128</value>  
  80.   
  81.         Settings group for 'apache-like' pm style  
  82.         <value name="apache_like">  
  83.   
  84.           Sets the number of server processes created on startup.  
  85.           Used only when 'apache-like' pm_style is selected  
  86.           <value name="StartServers">20</value>  
  87.   
  88.           Sets the desired minimum number of idle server processes.  
  89.           Used only when 'apache-like' pm_style is selected  
  90.           <value name="MinSpareServers">5</value>  
  91.   
  92.           Sets the desired maximum number of idle server processes.  
  93.           Used only when 'apache-like' pm_style is selected  
  94.           <value name="MaxSpareServers">35</value>  
  95.   
  96.         </value>  
  97.   
  98.       </value>  
  99.   
  100.       The timeout (in seconds) for serving a single request after which the worker process will be terminated  
  101.       Should be used when 'max_execution_time' ini option does not stop script execution for some reason  
  102.       '0s' means 'off'  
  103.       <value name="request_terminate_timeout">0s</value>  
  104.   
  105.       The timeout (in seconds) for serving of single request after which a php backtrace will be dumped to slow.log file  
  106.       '0s' means 'off'  
  107.       <value name="request_slowlog_timeout">0s</value>  
  108.   
  109.       The log file for slow requests  
  110.       <value name="slowlog">logs/slow.log</value>  
  111.   
  112.       Set open file desc rlimit  
  113.       <value name="rlimit_files">65535</value>  
  114.   
  115.       Set max core size rlimit  
  116.       <value name="rlimit_core">0</value>  
  117.   
  118.       Chroot to this directory at the start, absolute path  
  119.       <value name="chroot"></value>  
  120.   
  121.       Chdir to this directory at the start, absolute path  
  122.       <value name="chdir"></value>  
  123.   
  124.       Redirect workers' stdout and stderr into main error log.  
  125.       If not set, they will be redirected to /dev/null, according to FastCGI specs  
  126.       <value name="catch_workers_output">yes</value>  
  127.   
  128.       How much requests each process should execute before respawn.  
  129.       Useful to work around memory leaks in 3rd party libraries.  
  130.       For endless request processing please specify 0  
  131.       Equivalent to PHP_FCGI_MAX_REQUESTS  
  132.       <value name="max_requests">1024</value>  
  133.   
  134.       Comma separated list of ipv4 addresses of FastCGI clients that allowed to connect.  
  135.       Equivalent to FCGI_WEB_SERVER_ADDRS environment in original php.fcgi (5.2.2+)  
  136.       Makes sense only with AF_INET listening socket.  
  137.       <value name="allowed_clients">127.0.0.1</value>  
  138.   
  139.       Pass environment variables like LD_LIBRARY_PATH  
  140.       All $VARIABLEs are taken from current environment  
  141.       <value name="environment">  
  142.         <value name="HOSTNAME">$HOSTNAME</value>  
  143.         <value name="PATH">/usr/local/bin:/usr/bin:/bin</value>  
  144.         <value name="TMP">/tmp</value>  
  145.         <value name="TMPDIR">/tmp</value>  
  146.         <value name="TEMP">/tmp</value>  
  147.         <value name="OSTYPE">$OSTYPE</value>  
  148.         <value name="MACHTYPE">$MACHTYPE</value>  
  149.         <value name="MALLOC_CHECK_">2</value>  
  150.       </value>  
  151.   
  152.     </section>  
  153.   
  154.   </workers>  
  155.   
  156. </configuration>  

 

 

启动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.9.5
  1、安装Nginx所需的pcre库:

 

[c-sharp] view plain copy print?
  1. tar zxvf pcre-8.10.tar.gz  
  2. cd pcre-8.10/  
  3. ./configure  
  4. make && make install  
  5. cd ../  

 

 

安装nginx

 

[c-sharp] view plain copy print?
  1. tar zxvf nginx-0.9.5.tar.gz  
  2. cd nginx-0.9.5/  
  3. Nginx简单优化   
  4.    
  5. 减小 nginx 编译后的文件大小 (Reduce file size of nginx)   
  6. 默认的 nginx 编译选项里居然是用 debug 模式(-g)的(debug 模式会插入很多跟踪和  
  7. ASSERT 之类) ,编译以后一个 nginx有好几兆。去掉 nginx的 debug 模式编译,编译以  
  8. 后只有几百 K   
  9. 在 auto/cc/gcc,最后几行有:   
  10. # debug   
  11. CFLAGS=”$CFLAGS -g”   
  12. 注释掉或删掉这几行  
  13. ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module  
  14. make && make install  
  15. cd ../  

 

 

nginx日志目录权限修改 chown -R www:www /usr/local/nginx/logs

 

创建Nginx配置文件

 

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

 

 

[c-sharp] view plain copy print?
  1. user  www www;  
  2.   
  3. worker_processes 8;  
  4.   
  5. error_log  /usr/local/nginx/logs/nginx_error.log  crit;  
  6.   
  7. pid        /usr/local/nginx/nginx.pid;  
  8.  
  9. #Specifies the value for maximum file descriptors that can be opened by this process.   
  10. worker_rlimit_nofile 65535;  
  11.   
  12. events   
  13. {  
  14.   use epoll;  
  15.   worker_connections 65535;  
  16. }  
  17.   
  18. http   
  19. {  
  20.   include       mime.types;  
  21.   default_type  application/octet-stream;  
  22.  
  23.   #charset  gb2312;  
  24.         
  25.   server_names_hash_bucket_size 128;  
  26.   client_header_buffer_size 32k;  
  27.   large_client_header_buffers 4 32k;  
  28.   client_max_body_size 8m;  
  29.         
  30.   sendfile on;  
  31.   tcp_nopush     on;  
  32.   
  33.   keepalive_timeout 60;  
  34.   
  35.   tcp_nodelay on;  
  36.   
  37.   fastcgi_connect_timeout 300;  
  38.   fastcgi_send_timeout 300;  
  39.   fastcgi_read_timeout 300;  
  40.   fastcgi_buffer_size 64k;  
  41.   fastcgi_buffers 4 64k;  
  42.   fastcgi_busy_buffers_size 128k;  
  43.   fastcgi_temp_file_write_size 128k;  
  44.   
  45.   gzip on;  
  46.   gzip_min_length  1k;  
  47.   gzip_buffers     4 16k;  
  48.   gzip_http_version 1.0;  
  49.   gzip_comp_level 2;  
  50.   gzip_types       text/plain application/x-javascript text/css application/xml;  
  51.   gzip_vary on;  
  52.  
  53.   #limit_zone  crawler  $binary_remote_addr  10m;  
  54.   
  55.   server  
  56.   {  
  57.     listen       80;  
  58.     server_name  www.ceshi.com;  
  59.     index index.html index.htm index.php;  
  60.     root  /home/www;  
  61.  
  62.     #limit_conn   crawler  20;      
  63.                                
  64.     location ~ .*/.(php|php5)?$  
  65.     {        
  66.       #fastcgi_pass  unix:/tmp/php-cgi.sock;  
  67.       fastcgi_pass  127.0.0.1:9000;  
  68.       fastcgi_index index.php;  
  69.       include fastcgi.conf;  
  70.     }  
  71.       
  72.     location ~ .*/.(gif|jpg|jpeg|png|bmp|swf)$  
  73.     {  
  74.       expires      30d;  
  75.     }  
  76.   
  77.     location ~ .*/.(js|css)?$  
  78.     {  
  79.       expires      1h;  
  80.     }      
  81.   
  82.     log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '  
  83.               '$status $body_bytes_sent "$http_referer" '  
  84.               '"$http_user_agent" $http_x_forwarded_for';  
  85.     access_log  /usr/local/nginx/logs/access.log  access;  
  86.       }    
  87. }  

 

 

启动Nginx

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

配置开机自动启动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

 

在末尾增加以下内容:


[c-sharp] view plain copy print?
  1. # Add  
  2. net.ipv4.tcp_max_syn_backlog = 65536  
  3. net.core.netdev_max_backlog =  32768  
  4. net.core.somaxconn = 32768  
  5.   
  6. net.core.wmem_default = 8388608  
  7. net.core.rmem_default = 8388608  
  8. net.core.rmem_max = 16777216  
  9. net.core.wmem_max = 16777216  
  10.   
  11. net.ipv4.tcp_timestamps = 0  
  12. net.ipv4.tcp_synack_retries = 2  
  13. net.ipv4.tcp_syn_retries = 2  
  14.   
  15. net.ipv4.tcp_tw_recycle = 1  
  16. #net.ipv4.tcp_tw_len = 1  
  17. net.ipv4.tcp_tw_reuse = 1  
  18.   
  19. net.ipv4.tcp_mem = 94500000 915000000 927000000  
  20. net.ipv4.tcp_max_orphans = 3276800  
  21.  
  22. #net.ipv4.tcp_fin_timeout = 30  
  23. #net.ipv4.tcp_keepalive_time = 120  
  24. net.ipv4.ip_local_port_range = 1024  65535  

 

 

使配置立即生效:
/sbin/sysctl -p

 

在不停止Nginx服务的情况下平滑变更Nginx配置
  1、修改/usr/local/nginx/conf/nginx.conf配置文件后,请执行以下命令检查配置文件是否正确:

/usr/local/webserver/nginx/sbin/nginx -t

如果屏幕显示以下两行信息,说明配置文件正确:
  the configuration file /usr/local/webserver/nginx/conf/nginx.conf syntax is ok
  the configuration file /usr/local/webserver/nginx/conf/nginx.conf was tested successfully


  2、平滑重启:
 平滑重启Nginx配置非常简单,执行以下命令即可:

/usr/local/nginx/sbin/nginx -s reload

编写每天定时切割Nginx日志的脚本
  1、创建脚本/usr/local/webserver/nginx/sbin/cut_nginx_log.sh

vi /usr/local/webserver/nginx/sbin/cut_nginx_log.sh

输入以下内容:


[c-sharp] view plain copy print?
  1. #!/bin/bash  
  2. # This script run at 00:00  
  3.  
  4. # The Nginx logs path  
  5. logs_path="/usr/local/nginx/logs/"  
  6.   
  7. mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/  
  8. mv ${logs_path}access.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%Y%m%d").log  
  9. kill -USR1 `cat /usr/local/nginx/nginx.pid`  

 

 

2、设置crontab,每天凌晨00:00切割nginx访问日志

crontab -e


  输入以下内容:

引用
00 00 * * * /bin/bash  /usr/local/webserver/nginx/sbin/cut_nginx_log.sh
修改文件描述符的方法ulimit -SHn 65535只能对当前用户有效 可以修改/etc/security/limits.conf中的 * soft nofile  65535
* hard nofile 65535
参考文章http://blog.s135.com/nginx_php_v6/
http://woyoo.org/index.php/linux/centos5-5-nginx0-8-54-mysql5-5-8-php5-3-5.html
http://blog.mcncc.com/9028.html



(责任编辑:IT)
------分隔线----------------------------