SlideShare a Scribd company logo
1 of 22
Nginx 0.9.x + PHP 5.3.4(FastCGI)<br />安装步骤: <br />一、yum安装相关文件:<br />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<br /> <br />二、安装PHP 5.3.4(FastCGI模式)<br />1、编译安装PHP 5.3.4所需的支持库:<br />tar zxvf libiconv-1.13.1.tar.gz && cd libiconv-1.13.1/<br />./configure --prefix=/usr/local<br />make && make install<br />cd ../<br /> <br />tar zxvf libmcrypt-2.5.8.tar.gz && cd libmcrypt-2.5.8/<br />./configure<br />make && make install<br />/sbin/ldconfig<br />cd libltdl/<br />./configure --enable-ltdl-install<br />make && make install<br />cd ../../<br /> <br />tar zxvf mhash-0.9.9.tar.gz && cd mhash-0.9.9/<br />./configure<br />make && make install<br />cd ../<br /> <br />ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la<br />ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so<br />ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4<br />ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8<br />ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a<br />ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la<br />ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so<br />ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2<br />ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1<br />ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config<br /> <br />tar zxvf mcrypt-2.6.8.tar.gz && cd mcrypt-2.6.8/<br />/sbin/ldconfig<br />./configure<br />make && make install<br />cd ../<br />2、源码/编译安装MySQL <br />⑴源码安装<br />tar xzvf mysql-5.5.9-linux2.6-x86_64.tar.gz<br />mv mysql-5.5.9-linux2.6-x86_64 /usr/local/<br />cd ..<br />ln -s mysql-5.5.9-linux2.6-x86_64 /usr/local/mysql<br />useradd mysql<br />chown -R mysql:root  /usr/local/mysql/<br />cd /usr/local/mysql<br />./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/<br />cp ./support-files/mysql.server  /etc/rc.d/init.d/mysqld<br />chown root:root /etc/rc.d/init.d/mysqld<br />chmod 755 /etc/rc.d/init.d/mysqld<br />chkconfig --add mysqld<br />chkconfig --level 3 mysqld on<br />cp ./support-files/my-huge.cnf  /etc/my.cnf<br />mv /usr/local/mysql/data  /data/mysql<br />chown -R mysql:mysql /data/mysql/<br /># vi /etc/my.cnf  修改以下内容:<br /> <br />在 [mysqld] 段增加或修改:<br />datadir = /data/mysql<br />skip-innodb<br />wait-timeout = 3 | 5 | 10<br />max_connections = 256 | 384 | 512<br />max_connect_errors = 10000000<br />thread_concurrency = CPU个数×2<br />将 log-bin 注释<br /># bin/mysqladmin -u root password 'password_for_root'<br />⑵编译安装<br />tar zxvf cmake-2.8.3.tar.gz<br />cd cmake-2.8.3/<br />./configure --prefix=/usr<br />gmake<br />gmake install<br />cd ../<br />tar zxvf bison-2.4.3.tar.gz<br />cd cd bison-2.4.3<br />./configure<br />make<br />make install<br />/usr/sbin/groupadd mysql<br />/usr/sbin/useradd -g mysql mysql<br />tar zxvf mysql-5.5.8.tar.gz<br />cd mysql-5.5.8<br />cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql -DMYSQL_DATADIR=/data/mysqldb -DWITHOUT_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<br />make<br />make install<br />附:以下为附加步骤,如果你想在这台服务器上运行MySQL数据库,则执行以下两步。如果你只是希望让PHP支持MySQL扩展库,能够连接其他服务器上的MySQL数据库,那么,以下两步无需执行。<br /> <br />①、创建MySQL数据库存放目录<br />mkdir -p /data/mysql/data/<br />chown -R mysql:mysql /data/mysql/<br /> <br />②、以mysql用户帐号的身份建立数据表:<br />/usr/local/mysql/bin/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql/data --user=mysql<br /> <br />③、创建my.cnf配置文件:<br />vim /etc/my.cnf<br />输入以下内容:<br />[client]<br />default-character-set = utf8<br />port    = 3306<br />socket  = /tmp/mysql.sock<br /> <br />[mysql]<br />prompt=quot;
(:blog.s135.com:)[]> quot;
<br />no-auto-rehash<br /> <br />[mysqld]<br />#default-character-set = utf8<br />user    = mysql<br />port    = 3306<br />socket  = /tmp/mysql.sock<br />basedir = /usr/local/mysql<br />datadir = /data0/mysql/3306/data<br />open_files_limit    = 10240<br />back_log = 600<br />max_connections = 3000<br />max_connect_errors = 6000<br />table_cache = 614<br />external-locking = FALSE<br />max_allowed_packet = 32M<br />sort_buffer_size = 2M<br />join_buffer_size = 2M<br />thread_cache_size = 300<br />thread_concurrency = 8<br />query_cache_size = 32M<br />query_cache_limit = 2M<br />query_cache_min_res_unit = 2k<br />default-storage-engine = MyISAM<br />default_table_type = MyISAM<br />thread_stack = 192K<br />transaction_isolation = READ-COMMITTED<br />tmp_table_size = 246M<br />max_heap_table_size = 246M<br />long_query_time = 1<br />log_long_format<br />log-bin = /data0/mysql/3306/binlog<br />binlog_cache_size = 4M<br />binlog_format = MIXED<br />max_binlog_cache_size = 8M<br />max_binlog_size = 512M<br />expire_logs_days = 7<br />key_buffer_size = 256M<br />read_buffer_size = 1M<br />read_rnd_buffer_size = 16M<br />bulk_insert_buffer_size = 64M<br />myisam_sort_buffer_size = 128M<br />myisam_max_sort_file_size = 10G<br />myisam_max_extra_sort_file_size = 10G<br />myisam_repair_threads = 1<br />myisam_recover<br /> <br />skip-name-resolve<br />master-connect-retry = 10<br />slave-skip-errors = 1032,1062,126,1114,1146,1048,1396<br /> <br />server-id = 1<br /> <br />innodb_additional_mem_pool_size = 16M<br />innodb_buffer_pool_size = 2048M<br />innodb_data_file_path = ibdata1:1024M:autoextend<br />innodb_file_io_threads = 4<br />innodb_thread_concurrency = 8<br />innodb_flush_log_at_trx_commit = 2<br />innodb_log_buffer_size = 16M<br />innodb_log_file_size = 128M<br />innodb_log_files_in_group = 3<br />innodb_max_dirty_pages_pct = 90<br />innodb_lock_wait_timeout = 120<br />innodb_file_per_table = 0<br />[mysqldump]<br />quick<br />max_allowed_packet = 32M<br /> <br />④、创建管理MySQL数据库的shell脚本:<br />vi /data/mysql/<br />输入以下内容:<br />#!/bin/sh<br />mysql_port=3306<br />mysql_username=quot;
adminquot;
<br />mysql_password=quot;
12345678quot;
<br />function_start_mysql()<br />{<br />    printf quot;
Starting MySQL...quot;
<br />    /bin/sh /usr/local/webserver/mysql/bin/mysqld_safe --defaults-file=/data0/mysql/${mysql_port}/my.cnf 2>&1 > /dev/null &<br />}<br />function_stop_mysql()<br />{<br />    printf quot;
Stoping MySQL...quot;
<br />    /usr/local/webserver/mysql/bin/mysqladmin -u ${mysql_username} -p${mysql_password} -S /tmp/mysql.sock shutdown<br />}<br />function_restart_mysql()<br />{<br />    printf quot;
Restarting MySQL...quot;
<br />    function_stop_mysql<br />    sleep 5<br />    function_start_mysql<br />}<br />function_kill_mysql()<br />{<br />    kill -9 $(ps -ef &#124; grep 'bin/mysqld_safe' &#124; grep ${mysql_port} &#124; awk '{printf $2}')<br />    kill -9 $(ps -ef &#124; grep 'libexec/mysqld' &#124; grep ${mysql_port} &#124; awk '{printf $2}')<br />}<br />if [ quot;
$1quot;
 = quot;
startquot;
 ]; then<br />    function_start_mysql<br />elif [ quot;
$1quot;
 = quot;
stopquot;
 ]; then<br />    function_stop_mysql<br />elif [ quot;
$1quot;
 = quot;
restartquot;
 ]; then<br />function_restart_mysql<br />elif [ quot;
$1quot;
 = quot;
killquot;
 ]; then<br />function_kill_mysql<br />else<br />    printf quot;
Usage: /data0/mysql/${mysql_port}/mysql {start&#124;stop&#124;restart&#124;kill}quot;
<br />fi<br />⑤、赋予shell脚本可执行权限:<br />chmod +x /data0/mysql/3306/mysql<br /> <br />⑥、启动MySQL:<br />/data0/mysql/3306/mysql start<br /> <br />⑦、通过命令行登录管理MySQL服务器(提示输入密码时直接回车):<br />/usr/local/webserver/mysql/bin/mysql -u root -p -S /tmp/mysql.sock<br /> <br />⑧、输入以下SQL语句,创建一个具有root权限的用户和密码(12345678):<br />GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' IDENTIFIED BY '12345678';<br />GRANT ALL PRIVILEGES ON *.* TO 'admin'@'127.0.0.1' IDENTIFIED BY '12345678';<br /> <br />⑨、(可选)停止MySQL:<br />/data0/mysql/3306/mysql stop<br />3、编译安装PHP(FastCGI模式)<br />tar zxvf php-5.3.5.tar.gz && cd php-5.3.5<br />./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/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 --disable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --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 --without-pear<br />mkdir /usr/local/mysql/include/mysql<br />chown -R mysql:mysql /usr/local/mysql/include/mysql<br />ln -s /usr/local/mysql/include/* /usr/local/mysql/include/mysql/<br />vim /etc/ld.so.conf<br />添加<br />/usr/local/webserver/mysql/lib/<br />ldconfig <br />make ZEND_EXTRA_LIBS='-liconv'<br />make install<br />cp php.ini-production /usr/local/php/etc/php.ini<br />cd ../<br />4、编译安装PHP5扩展模块<br />tar zxvf memcache-2.2.5.tgz && cd memcache-2.2.5/<br />/usr/local/php/bin/phpize<br />./configure --with-php-config=/usr/local/php/bin/php-config<br />make && make install<br />cd ../<br /> <br />tar jxvf eaccelerator-0.9.6.1.tar.bz2 && cd eaccelerator-0.9.6.1/<br />/usr/local/php/bin/phpize<br />./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config<br />make && make install<br />cd ../<br /> <br />tar zxvf PDO_MYSQL-1.0.2.tgz && cd PDO_MYSQL-1.0.2/<br />/usr/local/php/bin/phpize<br />./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql<br />make && make install<br />cd ../<br /> <br />tar zxvf ImageMagick-6.5.1-2.tar.gz && cd ImageMagick-6.5.1-2/<br />./configure<br />make && make install<br />cd ../<br /> <br />tar zxvf imagick-2.3.0.tgz && cd imagick-2.3.0/<br />/usr/local/php/bin/phpize<br />./configure --with-php-config=/usr/local/php/bin/php-config<br />make && make install<br />cd ../<br /> <br />5、修改php.ini文件<br />查找/usr/local/php/etc/php.ini中的extension_dir = quot;
./quot;
<br />修改为:<br />extension_dir = quot;
/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/quot;
<br />并在此行后增加以下几行,然后保存:<br />extension = quot;
memcache.soquot;
<br />extension = quot;
pdo_mysql.soquot;
<br />extension = quot;
imagick.soquot;
<br /> <br />再查找always_populate_raw_post_data = On 去掉注释<br />6、配置eAccelerator加速PHP:<br />mkdir /tmp/eaccelerator<br />vi /usr/local/php/etc/php.ini<br />按shift+g键跳到配置文件的最末尾,加上以下配置信息:<br />[eaccelerator]<br />zend_extension=quot;
/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.soquot;
<br />eaccelerator.shm_size=quot;
64quot;
<br />eaccelerator.cache_dir=quot;
/tmp/eacceleratorquot;
<br />eaccelerator.enable=quot;
1quot;
<br />eaccelerator.optimizer=quot;
1quot;
<br />eaccelerator.check_mtime=quot;
1quot;
<br />eaccelerator.debug=quot;
0quot;
<br />eaccelerator.filter=quot;
quot;
<br />eaccelerator.shm_max=quot;
0quot;
<br />eaccelerator.shm_ttl=quot;
3600quot;
<br />eaccelerator.shm_prune_period=quot;
3600quot;
<br />eaccelerator.shm_only=quot;
0quot;
<br />eaccelerator.compress=quot;
1quot;
<br />eaccelerator.compress_level=quot;
9quot;
<br />7、Zend Guard Loader:<br />tar zxvf ZendGuardLoader-php-5.3-linux-glibc23-x86_64 && cd ZendGuardLoader-php-5.3-linux-glibc23-x86_64<br />mkdir -p /usr/local/zend<br />mv php-5.3.x/ZendGuardLoader.so /usr/local/zend/<br />vi /usr/local/php/etc/php.ini<br />zend_extension=/usr/local/zend/ZendGuardLoader.so<br />8、创建www用户和组:<br />/usr/sbin/groupadd www<br />/usr/sbin/useradd -g www www<br />mkdir -p /data/www/wwwroot<br />chmod +w /data/www/wwwroot<br />chown -R www:www /data/www/wwwroot<br /> <br />9、创建php-fpm配置文件<br />cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf<br />vim /usr/local/php/etc/php-fpm.conf<br />[global]<br />pid = run/php-fpm.pid<br />error_log = log/php-fpm.log<br />log_level = notice<br />emergency_restart_threshold = 10<br />emergency_restart_interval = 1m<br />process_control_timeout = 5s<br />daemonize = yes<br />[www]<br />listen = /tmp/php-cgi.sock<br />listen.backlog = -1<br />listen.allowed_clients = 127.0.0.1<br />user = www<br />group = www<br />pm = dynamic<br />pm.max_children = 64<br />pm.start_servers = 20<br />pm.min_spare_servers = 5<br />pm.max_spare_servers = 35<br />pm.max_requests = 1024<br />request_terminate_timeout = 0s<br />request_slowlog_timeout = 0s<br />slowlog = logs/slow.log<br />rlimit_files = 65535<br />rlimit_core = 0<br />chroot =<br />chdir =<br />catch_workers_output = yes<br />env[HOSTNAME] = $HOSTNAME<br />env[PATH] = /usr/local/bin:/usr/bin:/bin<br />env[TMP] = /tmp<br />env[TMPDIR] = /tmp<br />env[TEMP] = /tmp<br />10、启动php-cgi进程,监听127.0.0.1的9000端口,进程数为200(如果服务器内存小于3GB,可以只开启64个进程),用户为www:<br />ulimit -SHn 65535<br />/usr/local/php/sbin/php-fpm start<br />注:/usr/local/php/sbin/php-fpm还有其他参数,包 括:start|stop|quit|restart|reload|logrotate<br />修改php.ini后不重启php-cgi,重新加载配置文件 使用reload。<br /> <br />三、安装Nginx 0.8.15<br />1、安装Nginx所需的pcre库:<br />tar zxvf pcre-8.01.tar.gz && cd pcre-8.01/<br />./configure<br />make && make install<br />cd ../<br /> <br />2、安装Nginx<br />tar zxvf nginx-0.8.54.tar.gz && cd nginx-0.8.54/<br />./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module<br />make && make install<br />cd ../<br /> <br />3、创建Nginx日志目录<br />mkdir -p /data/log<br />chmod +w /data/log<br />chown -R www:www /data/log<br /> <br />4、创建Nginx配置文件<br />①、在/usr/local/nginx/conf/目录中创建nginx.conf文件:<br />rm -f /usr/local/nginx/conf/nginx.conf<br />vi /usr/local/nginx/conf/nginx.conf<br />输入以下内容:<br />引用<br />user  www;<br /> <br />worker_processes 8;<br /> <br />error_log  /data/log/nginx_error.log  crit;<br /> <br />pid        /usr/local/nginx/nginx.pid;<br /> <br />#Specifies the value for maximum file descriptors that can be opened by this process. <br />worker_rlimit_nofile 65535;<br /> <br />events <br />{<br />  use epoll;<br />  worker_connections 65535;<br />}<br /> <br />http <br />{<br />  include       mime.types;<br />  default_type  application/octet-stream;<br /> <br />  #charset  gb2312;<br />      <br />  server_names_hash_bucket_size 128;<br />  client_header_buffer_size 32k;<br />  large_client_header_buffers 4 32k;<br />  client_max_body_size 8m;<br />      <br />  sendfile on;<br />  tcp_nopush     on;<br /> <br />  keepalive_timeout 60;<br /> <br />  tcp_nodelay on;<br /> <br />  fastcgi_connect_timeout 300;<br />  fastcgi_send_timeout 300;<br />  fastcgi_read_timeout 300;<br />  fastcgi_buffer_size 64k;<br />  fastcgi_buffers 4 64k;<br />  fastcgi_busy_buffers_size 128k;<br />  fastcgi_temp_file_write_size 128k;<br /> <br />  gzip on;<br />  gzip_min_length  1k;<br />  gzip_buffers     4 16k;<br />  gzip_http_version 1.0;<br />  gzip_comp_level 2;<br />  gzip_types       text/plain application/x-javascript text/css application/xml;<br />  gzip_vary on;<br /> <br />  #limit_zone  crawler  $binary_remote_addr  10m;<br /> server_tokens off; <br />  server<br />  {<br />    listen       80;<br />    server_name  pass.rayli.com.cn;<br />    index index.html index.htm index.php;<br />    root  /data/www/wwwroot;<br /> <br />    #limit_conn   crawler  20;    <br />                             <br />    location ~ .*(php|php5)?$<br />    {      <br />      #fastcgi_pass  unix:/tmp/php-cgi.sock;<br />      fastcgi_pass  127.0.0.1:9000;<br />      fastcgi_index index.php;<br />      include fcgi.conf;<br />    }<br />    <br />    location ~ .*(gif|jpg|jpeg|png|bmp|swf)$<br />    {<br />      expires      30d;<br />    }<br /> <br />    location ~ .*(js|css)?$<br />    {<br />      expires      1h;<br />    }    <br /> <br />         <br />         location /nginx_status<br />    {<br />      stub_status on;<br />      access_log  off;<br />      allow all;<br />    }<br /> <br />    log_format  access  '$remote_addr - $remote_user [$time_local] quot;
$requestquot;
 '<br />              '$status $body_bytes_sent quot;
$http_refererquot;
 '<br />              'quot;
$http_user_agentquot;
 $http_x_forwarded_for';<br />    access_log  /data/log/access.log  access;<br />    <br /> <br />    }<br />}<br /> <br />②、在/usr/local/nginx/conf/目录中创建fcgi.conf文件:<br />vim /usr/local/nginx/conf/fcgi.conf<br />输入以下内容:<br />fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;<br />fastcgi_param  SERVER_SOFTWARE    nginx;<br />fastcgi_param  QUERY_STRING      $query_string;<br />fastcgi_param  REQUEST_METHOD   $request_method;<br />fastcgi_param  CONTENT_TYPE      $content_type;<br />fastcgi_param  CONTENT_LENGTH   $content_length;<br /> <br />fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;<br />fastcgi_param  SCRIPT_NAME       $fastcgi_script_name;<br />fastcgi_param  REQUEST_URI        $request_uri;<br />fastcgi_param  DOCUMENT_URI     $document_uri;<br />fastcgi_param  DOCUMENT_ROOT   $document_root;<br />fastcgi_param  SERVER_PROTOCOL   $server_protocol;<br />fastcgi_param  REMOTE_ADDR      $remote_addr;<br />fastcgi_param  REMOTE_PORT      $remote_port;<br />fastcgi_param  SERVER_ADDR       $server_addr;<br />fastcgi_param  SERVER_PORT       $server_port;<br />fastcgi_param  SERVER_NAME      $server_name;<br /># PHP only, required if PHP was built with --enable-force-cgi-redirect<br />fastcgi_param  REDIRECT_STATUS    200;<br />5、启动Nginx<br />ulimit -SHn 65535<br />/usr/local/nginx/sbin/nginx<br />四、配置开机自动启动Nginx + PHP<br />vim /etc/rc.local<br />在末尾增加以下内容:<br />ulimit -SHn 65535<br />service php-fpm start<br />service nginx start<br />五、优化Linux内核参数<br />vim /etc/sysctl.conf<br />在末尾增加以下内容:<br /># Add<br />net.ipv4.tcp_max_syn_backlog = 65536  <br />net.core.netdev_max_backlog = 32768   <br />net.core.somaxconn = 32768            <br /> <br />net.core.wmem_default = 8388608   <br />net.core.rmem_default = 8388608   <br />net.core.rmem_max = 16777216     <br />net.core.wmem_max = 16777216     <br /> <br />net.ipv4.tcp_timestamps = 0      <br />net.ipv4.tcp_synack_retries = 2   <br />net.ipv4.tcp_syn_retries = 2      <br /> <br />net.ipv4.tcp_tw_recycle = 1       <br />#net.ipv4.tcp_tw_len = 1<br />net.ipv4.tcp_tw_reuse = 1         <br /> <br />net.ipv4.tcp_mem = 94500000 915000000 927000000<br />                                   <br />net.ipv4.tcp_max_orphans = 3276800  <br />#net.ipv4.tcp_fin_timeout = 30       <br />#net.ipv4.tcp_keepalive_time = 120   <br />net.ipv4.ip_local_port_range = 1024  65535<br /> <br />使配置立即生效:<br />/sbin/sysctl -p<br />六、创建nginx启动脚本<br />vi /etc/init.d/nginx<br />#!/bin/sh<br />#<br /># chkconfig:   - 85 15 <br /># description:  Nginx is an HTTP(S) server, HTTP(S) reverse lt;br />#               proxy and IMAP/POP3 proxy server<br /># processname: nginx<br /># config:      /etc/nginx/nginx.conf<br /># config:      /etc/sysconfig/nginx<br /># pidfile:     /var/run/nginx.pid<br /> <br /># Source function library.<br />. /etc/rc.d/init.d/functions<br /> <br /># Source networking configuration.<br />. /etc/sysconfig/network<br /> <br /># Check that networking is up.<br />[ quot;
$NETWORKINGquot;
 = quot;
noquot;
 ] && exit 0<br />nginx=quot;
/usr/local/nginx/sbin/nginxquot;
<br />prog=$(basename $nginx)<br />NGINX_CONF_FILE=quot;
/usr/local/nginx/conf/nginx.confquot;
<br />[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx<br />lockfile=/var/lock/subsys/nginx<br />start() {<br />    [ -x $nginx ] || exit 5<br />    [ -f $NGINX_CONF_FILE ] || exit 6<br />    echo -n $quot;
Starting $prog: quot;
<br />    daemon $nginx -c $NGINX_CONF_FILE<br />    retval=$?<br />    echo<br />    [ $retval -eq 0 ] && touch $lockfile<br />    return $retval<br />}<br />stop() {<br />    echo -n $quot;
Stopping $prog: quot;
<br />    killproc $prog -QUIT<br />    retval=$?<br />    echo<br />    [ $retval -eq 0 ] && rm -f $lockfile<br />    return $retval<br />}<br />restart() {<br />    configtest || return $?<br />    stop<br />    sleep 1<br />    start<br />}<br />reload() {<br />    configtest || return $?<br />    echo -n $quot;
Reloading $prog: quot;
<br />    killproc $nginx -HUP<br />    RETVAL=$?<br />    echo<br />}<br />force_reload() {<br />    restart<br />}<br />configtest() {<br />  $nginx -t -c $NGINX_CONF_FILE<br />}<br />rh_status() {<br />    status $prog<br />}<br />rh_status_q() {<br />    rh_status >/dev/null 2>&1<br />}<br />case quot;
$1quot;
 in<br />    start)<br />        rh_status_q && exit 0<br />        $1<br />        ;;<br />    stop)<br />        rh_status_q || exit 0<br />        $1<br />        ;;<br />    restart|configtest)<br />        $1<br />        ;;<br />    reload)<br />        rh_status_q || exit 7<br />        $1<br />        ;;<br />    force-reload)<br />        force_reload<br />        ;;<br />    status)<br />        rh_status<br />        ;;<br />    condrestart|try-restart)<br />        rh_status_q || exit 0<br />            ;;<br />    *)<br />        echo $quot;
Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}quot;
<br />        exit 2<br />esac<br />六、在不停止Nginx服务的情况下平滑变更Nginx配置<br />1、修改/usr/local/nginx/conf/nginx.conf配置文件后,请执行以下命令检查配置文件是否正确:<br />/usr/local/nginx/sbin/nginx -t<br />如果屏幕显示以下两行信息,说明配置文件正确:<br />the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok<br />the configuration file /usr/local/nginx/conf/nginx.conf was tested successfully<br /> <br />2、这时,输入以下命令查看Nginx主进程号:<br />ps -ef | grep quot;
nginx: master processquot;
 | grep -v quot;
grepquot;
 | awk -F ' ' '{print $2}'<br />屏幕显示的即为Nginx主进程号,例如:<br />6302<br />这时,执行以下命令即可使修改过的Nginx配置文件生效:<br />kill -HUP 6302<br />或者无需这么麻烦,找到Nginx的Pid文件:<br />kill -HUP `cat /usr/local/nginx/nginx.pid`<br />七、编写每天定时切割Nginx日志的脚本<br />1、创建脚本/usr/local/nginx/sbin/cut_nginx_log.sh<br />vi /usr/local/nginx/sbin/cut_nginx_log.sh<br />输入以下内容:<br />#!/bin/bash<br /># This script run at 00:00<br /> <br /># The Nginx logs path<br />logs_path=quot;
/usr/local/nginx/logs/quot;
<br /> <br />mkdir -p ${logs_path}$(date -d quot;
yesterdayquot;
 +quot;
%Yquot;
)/$(date -d quot;
yesterdayquot;
 +quot;
%mquot;
)/<br />mv ${logs_path}access.log ${logs_path}$(date -d quot;
yesterdayquot;
 +quot;
%Yquot;
)/$(date -d quot;
yesterdayquot;
 +quot;
%mquot;
)/access_$(date -d quot;
yesterdayquot;
 +quot;
%Y%m%dquot;
).log<br />kill -USR1 `cat /usr/local/nginx/nginx.pid`<br />------------------------------------------------------------------------------------------------------<br />#!/bin/bash<br /># This script run at 00:00<br /># The Nginx logs path<br />logs_path=quot;
/data/log/quot;
<br />mv ${logs_path}access.log ${logs_path}access.log-$(date -d quot;
yesterdayquot;
 +quot;
%Y%m%dquot;
<br />)<br />service nginx restart<br /> <br />2、设置crontab,每天凌晨00:00切割nginx访问日志<br />crontab -e<br />输入以下内容:<br />00 00 * * * /bin/bash  /usr/local/sbin/cut_nginx_log.sh<br />相关软件包下载地址: <br />适用CentOS、RedHat及其它Linux操作系统下载程序源码包:<br />本文中提到的所有开源软件为截止到2009年09月18日的最新稳定版。<br />从软件的官方网站下载:<br />cd /usr/local/src<br />wget http://sysoev.ru/nginx/nginx-0.8.15.tar.gz<br />wget http://www.php.net/get/php-5.2.10.tar.gz/from/this/mirror<br />wget http://blog.s135.com/soft/linux/nginx_php/phpfpm/php-5.2.10-fpm-0.5.11.diff.gz<br />wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.38.tar.gz/from/http://mysql.he.net/<br />wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.tar.gz<br />wget http://downloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz?modtime=1171868460&big_mirror=0<br />wget http://downloads.sourceforge.net/mcrypt/mcrypt-2.6.8.tar.gz?modtime=1194463373&big_mirror=0<br />wget http://pecl.php.net/get/memcache-2.2.5.tgz<br />wget http://downloads.sourceforge.net/mhash/mhash-0.9.9.9.tar.gz?modtime=1175740843&big_mirror=0<br />wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.9.tar.gz<br />wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2<br />wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz<br />wget http://blog.s135.com/soft/linux/nginx_php/imagick/ImageMagick.tar.gz<br />wget http://pecl.php.net/get/imagick-2.2.2.tgz<br />②、从blog.s135.com下载<br />cd /usr/local/src<br />wget http://blog.s135.com/soft/linux/nginx_php/nginx/nginx-0.8.15.tar.gz<br />wget http://blog.s135.com/soft/linux/nginx_php/php/php-5.2.10.tar.gz<br />wget http://blog.s135.com/soft/linux/nginx_php/phpfpm/php-5.2.10-fpm-0.5.11.diff.gz<br />wget http://blog.s135.com/soft/linux/nginx_php/mysql/mysql-5.1.38.tar.gz<br />wget http://blog.s135.com/soft/linux/nginx_php/libiconv/libiconv-1.13.tar.gz<br />wget http://blog.s135.com/soft/linux/nginx_php/mcrypt/libmcrypt-2.5.8.tar.gz<br />wget http://blog.s135.com/soft/linux/nginx_php/mcrypt/mcrypt-2.6.8.tar.gz<br />wget http://blog.s135.com/soft/linux/nginx_php/memcache/memcache-2.2.5.tgz<br />wget http://blog.s135.com/soft/linux/nginx_php/mhash/mhash-0.9.9.9.tar.gz<br />wget http://blog.s135.com/soft/linux/nginx_php/pcre/pcre-7.9.tar.gz<br />wget http://blog.s135.com/soft/linux/nginx_php/eaccelerator/eaccelerator-0.9.5.3.tar.bz2<br />wget http://blog.s135.com/soft/linux/nginx_php/pdo/PDO_MYSQL-1.0.2.tgz<br />wget http://blog.s135.com/soft/linux/nginx_php/imagick/ImageMagick.tar.gz<br />wget http://blog.s135.com/soft/linux/nginx_php/imagick/imagick-2.2.2.tgz<br />
Nginx 0.9.x 安装手册
Nginx 0.9.x 安装手册
Nginx 0.9.x 安装手册
Nginx 0.9.x 安装手册
Nginx 0.9.x 安装手册
Nginx 0.9.x 安装手册
Nginx 0.9.x 安装手册
Nginx 0.9.x 安装手册
Nginx 0.9.x 安装手册
Nginx 0.9.x 安装手册
Nginx 0.9.x 安装手册
Nginx 0.9.x 安装手册
Nginx 0.9.x 安装手册
Nginx 0.9.x 安装手册
Nginx 0.9.x 安装手册
Nginx 0.9.x 安装手册
Nginx 0.9.x 安装手册
Nginx 0.9.x 安装手册
Nginx 0.9.x 安装手册
Nginx 0.9.x 安装手册
Nginx 0.9.x 安装手册

More Related Content

What's hot

Build Moses on Ubuntu (64-bit) in VirtualBox: recorded by Aaron
Build Moses on Ubuntu (64-bit) in VirtualBox: recorded by AaronBuild Moses on Ubuntu (64-bit) in VirtualBox: recorded by Aaron
Build Moses on Ubuntu (64-bit) in VirtualBox: recorded by Aaron
Lifeng (Aaron) Han
 
ByPat博客出品Lvs+keepalived
ByPat博客出品Lvs+keepalivedByPat博客出品Lvs+keepalived
ByPat博客出品Lvs+keepalived
redhat9
 
Lamp configuration u buntu 10.04
Lamp configuration   u buntu 10.04Lamp configuration   u buntu 10.04
Lamp configuration u buntu 10.04
mikehie
 
Installation of Subversion on Ubuntu,...
Installation of Subversion on Ubuntu,...Installation of Subversion on Ubuntu,...
Installation of Subversion on Ubuntu,...
wensheng wei
 

What's hot (20)

Build Moses on Ubuntu (64-bit) in VirtualBox: recorded by Aaron
Build Moses on Ubuntu (64-bit) in VirtualBox: recorded by AaronBuild Moses on Ubuntu (64-bit) in VirtualBox: recorded by Aaron
Build Moses on Ubuntu (64-bit) in VirtualBox: recorded by Aaron
 
WordPress Home Server with Raspberry Pi
WordPress Home Server with Raspberry PiWordPress Home Server with Raspberry Pi
WordPress Home Server with Raspberry Pi
 
Centos config
Centos configCentos config
Centos config
 
Autotools
Autotools Autotools
Autotools
 
ByPat博客出品Lvs+keepalived
ByPat博客出品Lvs+keepalivedByPat博客出品Lvs+keepalived
ByPat博客出品Lvs+keepalived
 
grate techniques
grate techniquesgrate techniques
grate techniques
 
nouka inventry manager
nouka inventry managernouka inventry manager
nouka inventry manager
 
Web Server Free Bsd
Web Server Free BsdWeb Server Free Bsd
Web Server Free Bsd
 
Docker, c'est bonheur !
Docker, c'est bonheur !Docker, c'est bonheur !
Docker, c'est bonheur !
 
Lamp configuration u buntu 10.04
Lamp configuration   u buntu 10.04Lamp configuration   u buntu 10.04
Lamp configuration u buntu 10.04
 
Intro django
Intro djangoIntro django
Intro django
 
Usage Note of Apache Thrift for C++ Java PHP Languages
Usage Note of Apache Thrift for C++ Java PHP LanguagesUsage Note of Apache Thrift for C++ Java PHP Languages
Usage Note of Apache Thrift for C++ Java PHP Languages
 
Installing hive on ubuntu 16
Installing hive on ubuntu 16Installing hive on ubuntu 16
Installing hive on ubuntu 16
 
Spider Setup with AWS/sandbox
Spider Setup with AWS/sandboxSpider Setup with AWS/sandbox
Spider Setup with AWS/sandbox
 
Lessons from running potentially malicious code inside containers
Lessons from running potentially malicious code inside containersLessons from running potentially malicious code inside containers
Lessons from running potentially malicious code inside containers
 
Dev ops
Dev opsDev ops
Dev ops
 
Installing apache sqoop
Installing apache sqoopInstalling apache sqoop
Installing apache sqoop
 
Real World Lessons on the Pain Points of Node.js Applications
Real World Lessons on the Pain Points of Node.js ApplicationsReal World Lessons on the Pain Points of Node.js Applications
Real World Lessons on the Pain Points of Node.js Applications
 
Installing hadoop on ubuntu 16
Installing hadoop on ubuntu 16Installing hadoop on ubuntu 16
Installing hadoop on ubuntu 16
 
Installation of Subversion on Ubuntu,...
Installation of Subversion on Ubuntu,...Installation of Subversion on Ubuntu,...
Installation of Subversion on Ubuntu,...
 

Viewers also liked (7)

Social apps done right
Social apps done rightSocial apps done right
Social apps done right
 
ADOPTING the rights of the child A study on intercountry adoption and its in...
ADOPTING the rights of the child  A study on intercountry adoption and its in...ADOPTING the rights of the child  A study on intercountry adoption and its in...
ADOPTING the rights of the child A study on intercountry adoption and its in...
 
Facebook keynote-nicolas-qcon
Facebook keynote-nicolas-qconFacebook keynote-nicolas-qcon
Facebook keynote-nicolas-qcon
 
Social media & Digital tools
Social media & Digital toolsSocial media & Digital tools
Social media & Digital tools
 
Iscritti italiani al Festival della Creatività di Cannes 2011
Iscritti italiani al Festival della Creatività di Cannes 2011Iscritti italiani al Festival della Creatività di Cannes 2011
Iscritti italiani al Festival della Creatività di Cannes 2011
 
Italia Croazia
Italia CroaziaItalia Croazia
Italia Croazia
 
Film craft shortlist cl2012
Film craft shortlist   cl2012Film craft shortlist   cl2012
Film craft shortlist cl2012
 

Similar to Nginx 0.9.x 安装手册

Cacti安装手册
Cacti安装手册Cacti安装手册
Cacti安装手册
Yiwei Ma
 
Python Deployment with Fabric
Python Deployment with FabricPython Deployment with Fabric
Python Deployment with Fabric
andymccurdy
 
NLIT 2011: Chef & Capistrano
NLIT 2011: Chef & CapistranoNLIT 2011: Chef & Capistrano
NLIT 2011: Chef & Capistrano
nickblah
 
Node.js basics
Node.js basicsNode.js basics
Node.js basics
Ben Lin
 

Similar to Nginx 0.9.x 安装手册 (20)

Mysql
Mysql Mysql
Mysql
 
How to install and configure LEMP stack
How to install and configure LEMP stackHow to install and configure LEMP stack
How to install and configure LEMP stack
 
Tested install-isp config3-ubuntu-16-04
Tested install-isp config3-ubuntu-16-04Tested install-isp config3-ubuntu-16-04
Tested install-isp config3-ubuntu-16-04
 
Hands on Docker - Launch your own LEMP or LAMP stack - SunshinePHP
Hands on Docker - Launch your own LEMP or LAMP stack - SunshinePHPHands on Docker - Launch your own LEMP or LAMP stack - SunshinePHP
Hands on Docker - Launch your own LEMP or LAMP stack - SunshinePHP
 
Cacti安装手册
Cacti安装手册Cacti安装手册
Cacti安装手册
 
How to install squid proxy on server or how to install squid proxy on centos o
How to install squid proxy on server  or how to install squid proxy on centos oHow to install squid proxy on server  or how to install squid proxy on centos o
How to install squid proxy on server or how to install squid proxy on centos o
 
Award-winning technology: Oxid loves the query cache
Award-winning technology: Oxid loves the query cacheAward-winning technology: Oxid loves the query cache
Award-winning technology: Oxid loves the query cache
 
Drupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google Cloud
Drupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google CloudDrupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google Cloud
Drupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google Cloud
 
Architecting cloud
Architecting cloudArchitecting cloud
Architecting cloud
 
PHP selber bauen
PHP selber bauenPHP selber bauen
PHP selber bauen
 
Install cacti on open suse 13
Install cacti on open suse 13Install cacti on open suse 13
Install cacti on open suse 13
 
How to go the extra mile on monitoring
How to go the extra mile on monitoringHow to go the extra mile on monitoring
How to go the extra mile on monitoring
 
Multiple instances on linux
Multiple instances on linuxMultiple instances on linux
Multiple instances on linux
 
My SQL 101
My SQL 101My SQL 101
My SQL 101
 
Caching and tuning fun for high scalability
Caching and tuning fun for high scalabilityCaching and tuning fun for high scalability
Caching and tuning fun for high scalability
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
 
桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作
 
Python Deployment with Fabric
Python Deployment with FabricPython Deployment with Fabric
Python Deployment with Fabric
 
NLIT 2011: Chef & Capistrano
NLIT 2011: Chef & CapistranoNLIT 2011: Chef & Capistrano
NLIT 2011: Chef & Capistrano
 
Node.js basics
Node.js basicsNode.js basics
Node.js basics
 

More from Yiwei Ma

Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qcon
Yiwei Ma
 
Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qcon
Yiwei Ma
 
Taobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qconTaobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qcon
Yiwei Ma
 
Alibaba server-zhangxuseng-qcon
Alibaba server-zhangxuseng-qconAlibaba server-zhangxuseng-qcon
Alibaba server-zhangxuseng-qcon
Yiwei Ma
 
Zhongxing practice-suchunshan-qcon
Zhongxing practice-suchunshan-qconZhongxing practice-suchunshan-qcon
Zhongxing practice-suchunshan-qcon
Yiwei Ma
 
Taobao practice-liyu-qcon
Taobao practice-liyu-qconTaobao practice-liyu-qcon
Taobao practice-liyu-qcon
Yiwei Ma
 
Thoughtworks practice-hukai-qcon
Thoughtworks practice-hukai-qconThoughtworks practice-hukai-qcon
Thoughtworks practice-hukai-qcon
Yiwei Ma
 
Ufida design-chijianqiang-qcon
Ufida design-chijianqiang-qconUfida design-chijianqiang-qcon
Ufida design-chijianqiang-qcon
Yiwei Ma
 
Spring design-juergen-qcon
Spring design-juergen-qconSpring design-juergen-qcon
Spring design-juergen-qcon
Yiwei Ma
 
Netflix web-adrian-qcon
Netflix web-adrian-qconNetflix web-adrian-qcon
Netflix web-adrian-qcon
Yiwei Ma
 
Google arch-fangkun-qcon
Google arch-fangkun-qconGoogle arch-fangkun-qcon
Google arch-fangkun-qcon
Yiwei Ma
 
Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qcon
Yiwei Ma
 
Alibaba arch-jiangtao-qcon
Alibaba arch-jiangtao-qconAlibaba arch-jiangtao-qcon
Alibaba arch-jiangtao-qcon
Yiwei Ma
 
Twitter keynote-evan-qcon
Twitter keynote-evan-qconTwitter keynote-evan-qcon
Twitter keynote-evan-qcon
Yiwei Ma
 
Netflix keynote-adrian-qcon
Netflix keynote-adrian-qconNetflix keynote-adrian-qcon
Netflix keynote-adrian-qcon
Yiwei Ma
 
Domainlang keynote-eric-qcon
Domainlang keynote-eric-qconDomainlang keynote-eric-qcon
Domainlang keynote-eric-qcon
Yiwei Ma
 
Devjam keynote-david-qcon
Devjam keynote-david-qconDevjam keynote-david-qcon
Devjam keynote-david-qcon
Yiwei Ma
 
Baidu keynote-wubo-qcon
Baidu keynote-wubo-qconBaidu keynote-wubo-qcon
Baidu keynote-wubo-qcon
Yiwei Ma
 
淘宝线上线下性能跟踪体系和容量规划-Qcon2011
淘宝线上线下性能跟踪体系和容量规划-Qcon2011淘宝线上线下性能跟踪体系和容量规划-Qcon2011
淘宝线上线下性能跟踪体系和容量规划-Qcon2011
Yiwei Ma
 
网游服务器性能优化-Qcon2011
网游服务器性能优化-Qcon2011网游服务器性能优化-Qcon2011
网游服务器性能优化-Qcon2011
Yiwei Ma
 

More from Yiwei Ma (20)

Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qcon
 
Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qcon
 
Taobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qconTaobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qcon
 
Alibaba server-zhangxuseng-qcon
Alibaba server-zhangxuseng-qconAlibaba server-zhangxuseng-qcon
Alibaba server-zhangxuseng-qcon
 
Zhongxing practice-suchunshan-qcon
Zhongxing practice-suchunshan-qconZhongxing practice-suchunshan-qcon
Zhongxing practice-suchunshan-qcon
 
Taobao practice-liyu-qcon
Taobao practice-liyu-qconTaobao practice-liyu-qcon
Taobao practice-liyu-qcon
 
Thoughtworks practice-hukai-qcon
Thoughtworks practice-hukai-qconThoughtworks practice-hukai-qcon
Thoughtworks practice-hukai-qcon
 
Ufida design-chijianqiang-qcon
Ufida design-chijianqiang-qconUfida design-chijianqiang-qcon
Ufida design-chijianqiang-qcon
 
Spring design-juergen-qcon
Spring design-juergen-qconSpring design-juergen-qcon
Spring design-juergen-qcon
 
Netflix web-adrian-qcon
Netflix web-adrian-qconNetflix web-adrian-qcon
Netflix web-adrian-qcon
 
Google arch-fangkun-qcon
Google arch-fangkun-qconGoogle arch-fangkun-qcon
Google arch-fangkun-qcon
 
Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qcon
 
Alibaba arch-jiangtao-qcon
Alibaba arch-jiangtao-qconAlibaba arch-jiangtao-qcon
Alibaba arch-jiangtao-qcon
 
Twitter keynote-evan-qcon
Twitter keynote-evan-qconTwitter keynote-evan-qcon
Twitter keynote-evan-qcon
 
Netflix keynote-adrian-qcon
Netflix keynote-adrian-qconNetflix keynote-adrian-qcon
Netflix keynote-adrian-qcon
 
Domainlang keynote-eric-qcon
Domainlang keynote-eric-qconDomainlang keynote-eric-qcon
Domainlang keynote-eric-qcon
 
Devjam keynote-david-qcon
Devjam keynote-david-qconDevjam keynote-david-qcon
Devjam keynote-david-qcon
 
Baidu keynote-wubo-qcon
Baidu keynote-wubo-qconBaidu keynote-wubo-qcon
Baidu keynote-wubo-qcon
 
淘宝线上线下性能跟踪体系和容量规划-Qcon2011
淘宝线上线下性能跟踪体系和容量规划-Qcon2011淘宝线上线下性能跟踪体系和容量规划-Qcon2011
淘宝线上线下性能跟踪体系和容量规划-Qcon2011
 
网游服务器性能优化-Qcon2011
网游服务器性能优化-Qcon2011网游服务器性能优化-Qcon2011
网游服务器性能优化-Qcon2011
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 

Nginx 0.9.x 安装手册

  • 1. Nginx 0.9.x + PHP 5.3.4(FastCGI)<br />安装步骤: <br />一、yum安装相关文件:<br />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<br /> <br />二、安装PHP 5.3.4(FastCGI模式)<br />1、编译安装PHP 5.3.4所需的支持库:<br />tar zxvf libiconv-1.13.1.tar.gz && cd libiconv-1.13.1/<br />./configure --prefix=/usr/local<br />make && make install<br />cd ../<br /> <br />tar zxvf libmcrypt-2.5.8.tar.gz && cd libmcrypt-2.5.8/<br />./configure<br />make && make install<br />/sbin/ldconfig<br />cd libltdl/<br />./configure --enable-ltdl-install<br />make && make install<br />cd ../../<br /> <br />tar zxvf mhash-0.9.9.tar.gz && cd mhash-0.9.9/<br />./configure<br />make && make install<br />cd ../<br /> <br />ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la<br />ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so<br />ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4<br />ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8<br />ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a<br />ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la<br />ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so<br />ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2<br />ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1<br />ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config<br /> <br />tar zxvf mcrypt-2.6.8.tar.gz && cd mcrypt-2.6.8/<br />/sbin/ldconfig<br />./configure<br />make && make install<br />cd ../<br />2、源码/编译安装MySQL <br />⑴源码安装<br />tar xzvf mysql-5.5.9-linux2.6-x86_64.tar.gz<br />mv mysql-5.5.9-linux2.6-x86_64 /usr/local/<br />cd ..<br />ln -s mysql-5.5.9-linux2.6-x86_64 /usr/local/mysql<br />useradd mysql<br />chown -R mysql:root  /usr/local/mysql/<br />cd /usr/local/mysql<br />./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/<br />cp ./support-files/mysql.server  /etc/rc.d/init.d/mysqld<br />chown root:root /etc/rc.d/init.d/mysqld<br />chmod 755 /etc/rc.d/init.d/mysqld<br />chkconfig --add mysqld<br />chkconfig --level 3 mysqld on<br />cp ./support-files/my-huge.cnf  /etc/my.cnf<br />mv /usr/local/mysql/data  /data/mysql<br />chown -R mysql:mysql /data/mysql/<br /># vi /etc/my.cnf  修改以下内容:<br /> <br />在 [mysqld] 段增加或修改:<br />datadir = /data/mysql<br />skip-innodb<br />wait-timeout = 3 | 5 | 10<br />max_connections = 256 | 384 | 512<br />max_connect_errors = 10000000<br />thread_concurrency = CPU个数×2<br />将 log-bin 注释<br /># bin/mysqladmin -u root password 'password_for_root'<br />⑵编译安装<br />tar zxvf cmake-2.8.3.tar.gz<br />cd cmake-2.8.3/<br />./configure --prefix=/usr<br />gmake<br />gmake install<br />cd ../<br />tar zxvf bison-2.4.3.tar.gz<br />cd cd bison-2.4.3<br />./configure<br />make<br />make install<br />/usr/sbin/groupadd mysql<br />/usr/sbin/useradd -g mysql mysql<br />tar zxvf mysql-5.5.8.tar.gz<br />cd mysql-5.5.8<br />cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql -DMYSQL_DATADIR=/data/mysqldb -DWITHOUT_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<br />make<br />make install<br />附:以下为附加步骤,如果你想在这台服务器上运行MySQL数据库,则执行以下两步。如果你只是希望让PHP支持MySQL扩展库,能够连接其他服务器上的MySQL数据库,那么,以下两步无需执行。<br /> <br />①、创建MySQL数据库存放目录<br />mkdir -p /data/mysql/data/<br />chown -R mysql:mysql /data/mysql/<br /> <br />②、以mysql用户帐号的身份建立数据表:<br />/usr/local/mysql/bin/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql/data --user=mysql<br /> <br />③、创建my.cnf配置文件:<br />vim /etc/my.cnf<br />输入以下内容:<br />[client]<br />default-character-set = utf8<br />port    = 3306<br />socket  = /tmp/mysql.sock<br /> <br />[mysql]<br />prompt=quot; (:blog.s135.com:)[]> quot; <br />no-auto-rehash<br /> <br />[mysqld]<br />#default-character-set = utf8<br />user    = mysql<br />port    = 3306<br />socket  = /tmp/mysql.sock<br />basedir = /usr/local/mysql<br />datadir = /data0/mysql/3306/data<br />open_files_limit    = 10240<br />back_log = 600<br />max_connections = 3000<br />max_connect_errors = 6000<br />table_cache = 614<br />external-locking = FALSE<br />max_allowed_packet = 32M<br />sort_buffer_size = 2M<br />join_buffer_size = 2M<br />thread_cache_size = 300<br />thread_concurrency = 8<br />query_cache_size = 32M<br />query_cache_limit = 2M<br />query_cache_min_res_unit = 2k<br />default-storage-engine = MyISAM<br />default_table_type = MyISAM<br />thread_stack = 192K<br />transaction_isolation = READ-COMMITTED<br />tmp_table_size = 246M<br />max_heap_table_size = 246M<br />long_query_time = 1<br />log_long_format<br />log-bin = /data0/mysql/3306/binlog<br />binlog_cache_size = 4M<br />binlog_format = MIXED<br />max_binlog_cache_size = 8M<br />max_binlog_size = 512M<br />expire_logs_days = 7<br />key_buffer_size = 256M<br />read_buffer_size = 1M<br />read_rnd_buffer_size = 16M<br />bulk_insert_buffer_size = 64M<br />myisam_sort_buffer_size = 128M<br />myisam_max_sort_file_size = 10G<br />myisam_max_extra_sort_file_size = 10G<br />myisam_repair_threads = 1<br />myisam_recover<br /> <br />skip-name-resolve<br />master-connect-retry = 10<br />slave-skip-errors = 1032,1062,126,1114,1146,1048,1396<br /> <br />server-id = 1<br /> <br />innodb_additional_mem_pool_size = 16M<br />innodb_buffer_pool_size = 2048M<br />innodb_data_file_path = ibdata1:1024M:autoextend<br />innodb_file_io_threads = 4<br />innodb_thread_concurrency = 8<br />innodb_flush_log_at_trx_commit = 2<br />innodb_log_buffer_size = 16M<br />innodb_log_file_size = 128M<br />innodb_log_files_in_group = 3<br />innodb_max_dirty_pages_pct = 90<br />innodb_lock_wait_timeout = 120<br />innodb_file_per_table = 0<br />[mysqldump]<br />quick<br />max_allowed_packet = 32M<br /> <br />④、创建管理MySQL数据库的shell脚本:<br />vi /data/mysql/<br />输入以下内容:<br />#!/bin/sh<br />mysql_port=3306<br />mysql_username=quot; adminquot; <br />mysql_password=quot; 12345678quot; <br />function_start_mysql()<br />{<br /> printf quot; Starting MySQL...quot; <br /> /bin/sh /usr/local/webserver/mysql/bin/mysqld_safe --defaults-file=/data0/mysql/${mysql_port}/my.cnf 2>&1 > /dev/null &<br />}<br />function_stop_mysql()<br />{<br /> printf quot; Stoping MySQL...quot; <br /> /usr/local/webserver/mysql/bin/mysqladmin -u ${mysql_username} -p${mysql_password} -S /tmp/mysql.sock shutdown<br />}<br />function_restart_mysql()<br />{<br /> printf quot; Restarting MySQL...quot; <br /> function_stop_mysql<br /> sleep 5<br /> function_start_mysql<br />}<br />function_kill_mysql()<br />{<br /> kill -9 $(ps -ef &#124; grep 'bin/mysqld_safe' &#124; grep ${mysql_port} &#124; awk '{printf $2}')<br /> kill -9 $(ps -ef &#124; grep 'libexec/mysqld' &#124; grep ${mysql_port} &#124; awk '{printf $2}')<br />}<br />if [ quot; $1quot; = quot; startquot; ]; then<br /> function_start_mysql<br />elif [ quot; $1quot; = quot; stopquot; ]; then<br /> function_stop_mysql<br />elif [ quot; $1quot; = quot; restartquot; ]; then<br />function_restart_mysql<br />elif [ quot; $1quot; = quot; killquot; ]; then<br />function_kill_mysql<br />else<br /> printf quot; Usage: /data0/mysql/${mysql_port}/mysql {start&#124;stop&#124;restart&#124;kill}quot; <br />fi<br />⑤、赋予shell脚本可执行权限:<br />chmod +x /data0/mysql/3306/mysql<br /> <br />⑥、启动MySQL:<br />/data0/mysql/3306/mysql start<br /> <br />⑦、通过命令行登录管理MySQL服务器(提示输入密码时直接回车):<br />/usr/local/webserver/mysql/bin/mysql -u root -p -S /tmp/mysql.sock<br /> <br />⑧、输入以下SQL语句,创建一个具有root权限的用户和密码(12345678):<br />GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' IDENTIFIED BY '12345678';<br />GRANT ALL PRIVILEGES ON *.* TO 'admin'@'127.0.0.1' IDENTIFIED BY '12345678';<br /> <br />⑨、(可选)停止MySQL:<br />/data0/mysql/3306/mysql stop<br />3、编译安装PHP(FastCGI模式)<br />tar zxvf php-5.3.5.tar.gz && cd php-5.3.5<br />./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/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 --disable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --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 --without-pear<br />mkdir /usr/local/mysql/include/mysql<br />chown -R mysql:mysql /usr/local/mysql/include/mysql<br />ln -s /usr/local/mysql/include/* /usr/local/mysql/include/mysql/<br />vim /etc/ld.so.conf<br />添加<br />/usr/local/webserver/mysql/lib/<br />ldconfig <br />make ZEND_EXTRA_LIBS='-liconv'<br />make install<br />cp php.ini-production /usr/local/php/etc/php.ini<br />cd ../<br />4、编译安装PHP5扩展模块<br />tar zxvf memcache-2.2.5.tgz && cd memcache-2.2.5/<br />/usr/local/php/bin/phpize<br />./configure --with-php-config=/usr/local/php/bin/php-config<br />make && make install<br />cd ../<br /> <br />tar jxvf eaccelerator-0.9.6.1.tar.bz2 && cd eaccelerator-0.9.6.1/<br />/usr/local/php/bin/phpize<br />./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config<br />make && make install<br />cd ../<br /> <br />tar zxvf PDO_MYSQL-1.0.2.tgz && cd PDO_MYSQL-1.0.2/<br />/usr/local/php/bin/phpize<br />./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql<br />make && make install<br />cd ../<br /> <br />tar zxvf ImageMagick-6.5.1-2.tar.gz && cd ImageMagick-6.5.1-2/<br />./configure<br />make && make install<br />cd ../<br /> <br />tar zxvf imagick-2.3.0.tgz && cd imagick-2.3.0/<br />/usr/local/php/bin/phpize<br />./configure --with-php-config=/usr/local/php/bin/php-config<br />make && make install<br />cd ../<br /> <br />5、修改php.ini文件<br />查找/usr/local/php/etc/php.ini中的extension_dir = quot; ./quot; <br />修改为:<br />extension_dir = quot; /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/quot; <br />并在此行后增加以下几行,然后保存:<br />extension = quot; memcache.soquot; <br />extension = quot; pdo_mysql.soquot; <br />extension = quot; imagick.soquot; <br /> <br />再查找always_populate_raw_post_data = On 去掉注释<br />6、配置eAccelerator加速PHP:<br />mkdir /tmp/eaccelerator<br />vi /usr/local/php/etc/php.ini<br />按shift+g键跳到配置文件的最末尾,加上以下配置信息:<br />[eaccelerator]<br />zend_extension=quot; /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.soquot; <br />eaccelerator.shm_size=quot; 64quot; <br />eaccelerator.cache_dir=quot; /tmp/eacceleratorquot; <br />eaccelerator.enable=quot; 1quot; <br />eaccelerator.optimizer=quot; 1quot; <br />eaccelerator.check_mtime=quot; 1quot; <br />eaccelerator.debug=quot; 0quot; <br />eaccelerator.filter=quot; quot; <br />eaccelerator.shm_max=quot; 0quot; <br />eaccelerator.shm_ttl=quot; 3600quot; <br />eaccelerator.shm_prune_period=quot; 3600quot; <br />eaccelerator.shm_only=quot; 0quot; <br />eaccelerator.compress=quot; 1quot; <br />eaccelerator.compress_level=quot; 9quot; <br />7、Zend Guard Loader:<br />tar zxvf ZendGuardLoader-php-5.3-linux-glibc23-x86_64 && cd ZendGuardLoader-php-5.3-linux-glibc23-x86_64<br />mkdir -p /usr/local/zend<br />mv php-5.3.x/ZendGuardLoader.so /usr/local/zend/<br />vi /usr/local/php/etc/php.ini<br />zend_extension=/usr/local/zend/ZendGuardLoader.so<br />8、创建www用户和组:<br />/usr/sbin/groupadd www<br />/usr/sbin/useradd -g www www<br />mkdir -p /data/www/wwwroot<br />chmod +w /data/www/wwwroot<br />chown -R www:www /data/www/wwwroot<br /> <br />9、创建php-fpm配置文件<br />cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf<br />vim /usr/local/php/etc/php-fpm.conf<br />[global]<br />pid = run/php-fpm.pid<br />error_log = log/php-fpm.log<br />log_level = notice<br />emergency_restart_threshold = 10<br />emergency_restart_interval = 1m<br />process_control_timeout = 5s<br />daemonize = yes<br />[www]<br />listen = /tmp/php-cgi.sock<br />listen.backlog = -1<br />listen.allowed_clients = 127.0.0.1<br />user = www<br />group = www<br />pm = dynamic<br />pm.max_children = 64<br />pm.start_servers = 20<br />pm.min_spare_servers = 5<br />pm.max_spare_servers = 35<br />pm.max_requests = 1024<br />request_terminate_timeout = 0s<br />request_slowlog_timeout = 0s<br />slowlog = logs/slow.log<br />rlimit_files = 65535<br />rlimit_core = 0<br />chroot =<br />chdir =<br />catch_workers_output = yes<br />env[HOSTNAME] = $HOSTNAME<br />env[PATH] = /usr/local/bin:/usr/bin:/bin<br />env[TMP] = /tmp<br />env[TMPDIR] = /tmp<br />env[TEMP] = /tmp<br />10、启动php-cgi进程,监听127.0.0.1的9000端口,进程数为200(如果服务器内存小于3GB,可以只开启64个进程),用户为www:<br />ulimit -SHn 65535<br />/usr/local/php/sbin/php-fpm start<br />注:/usr/local/php/sbin/php-fpm还有其他参数,包 括:start|stop|quit|restart|reload|logrotate<br />修改php.ini后不重启php-cgi,重新加载配置文件 使用reload。<br /> <br />三、安装Nginx 0.8.15<br />1、安装Nginx所需的pcre库:<br />tar zxvf pcre-8.01.tar.gz && cd pcre-8.01/<br />./configure<br />make && make install<br />cd ../<br /> <br />2、安装Nginx<br />tar zxvf nginx-0.8.54.tar.gz && cd nginx-0.8.54/<br />./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module<br />make && make install<br />cd ../<br /> <br />3、创建Nginx日志目录<br />mkdir -p /data/log<br />chmod +w /data/log<br />chown -R www:www /data/log<br /> <br />4、创建Nginx配置文件<br />①、在/usr/local/nginx/conf/目录中创建nginx.conf文件:<br />rm -f /usr/local/nginx/conf/nginx.conf<br />vi /usr/local/nginx/conf/nginx.conf<br />输入以下内容:<br />引用<br />user  www;<br /> <br />worker_processes 8;<br /> <br />error_log  /data/log/nginx_error.log  crit;<br /> <br />pid        /usr/local/nginx/nginx.pid;<br /> <br />#Specifies the value for maximum file descriptors that can be opened by this process. <br />worker_rlimit_nofile 65535;<br /> <br />events <br />{<br />  use epoll;<br />  worker_connections 65535;<br />}<br /> <br />http <br />{<br />  include       mime.types;<br />  default_type  application/octet-stream;<br /> <br />  #charset  gb2312;<br />      <br />  server_names_hash_bucket_size 128;<br />  client_header_buffer_size 32k;<br />  large_client_header_buffers 4 32k;<br />  client_max_body_size 8m;<br />      <br />  sendfile on;<br />  tcp_nopush     on;<br /> <br />  keepalive_timeout 60;<br /> <br />  tcp_nodelay on;<br /> <br />  fastcgi_connect_timeout 300;<br />  fastcgi_send_timeout 300;<br />  fastcgi_read_timeout 300;<br />  fastcgi_buffer_size 64k;<br />  fastcgi_buffers 4 64k;<br />  fastcgi_busy_buffers_size 128k;<br />  fastcgi_temp_file_write_size 128k;<br /> <br />  gzip on;<br />  gzip_min_length  1k;<br />  gzip_buffers     4 16k;<br />  gzip_http_version 1.0;<br />  gzip_comp_level 2;<br />  gzip_types       text/plain application/x-javascript text/css application/xml;<br />  gzip_vary on;<br /> <br />  #limit_zone  crawler  $binary_remote_addr  10m;<br /> server_tokens off; <br />  server<br />  {<br />    listen       80;<br />    server_name  pass.rayli.com.cn;<br />    index index.html index.htm index.php;<br />    root  /data/www/wwwroot;<br /> <br />    #limit_conn   crawler  20;    <br />                             <br />    location ~ .*(php|php5)?$<br />    {      <br />      #fastcgi_pass  unix:/tmp/php-cgi.sock;<br />      fastcgi_pass  127.0.0.1:9000;<br />      fastcgi_index index.php;<br />      include fcgi.conf;<br />    }<br />    <br />    location ~ .*(gif|jpg|jpeg|png|bmp|swf)$<br />    {<br />      expires      30d;<br />    }<br /> <br />    location ~ .*(js|css)?$<br />    {<br />      expires      1h;<br />    }    <br /> <br /> <br /> location /nginx_status<br /> {<br /> stub_status on;<br /> access_log off;<br /> allow all;<br /> }<br /> <br />    log_format  access  '$remote_addr - $remote_user [$time_local] quot; $requestquot; '<br />              '$status $body_bytes_sent quot; $http_refererquot; '<br />              'quot; $http_user_agentquot; $http_x_forwarded_for';<br />    access_log  /data/log/access.log  access;<br />    <br /> <br />    }<br />}<br /> <br />②、在/usr/local/nginx/conf/目录中创建fcgi.conf文件:<br />vim /usr/local/nginx/conf/fcgi.conf<br />输入以下内容:<br />fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;<br />fastcgi_param  SERVER_SOFTWARE    nginx;<br />fastcgi_param  QUERY_STRING $query_string;<br />fastcgi_param  REQUEST_METHOD $request_method;<br />fastcgi_param  CONTENT_TYPE $content_type;<br />fastcgi_param  CONTENT_LENGTH $content_length;<br /> <br />fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;<br />fastcgi_param  SCRIPT_NAME $fastcgi_script_name;<br />fastcgi_param  REQUEST_URI $request_uri;<br />fastcgi_param  DOCUMENT_URI $document_uri;<br />fastcgi_param  DOCUMENT_ROOT $document_root;<br />fastcgi_param  SERVER_PROTOCOL   $server_protocol;<br />fastcgi_param  REMOTE_ADDR $remote_addr;<br />fastcgi_param  REMOTE_PORT $remote_port;<br />fastcgi_param  SERVER_ADDR $server_addr;<br />fastcgi_param  SERVER_PORT $server_port;<br />fastcgi_param  SERVER_NAME $server_name;<br /># PHP only, required if PHP was built with --enable-force-cgi-redirect<br />fastcgi_param  REDIRECT_STATUS    200;<br />5、启动Nginx<br />ulimit -SHn 65535<br />/usr/local/nginx/sbin/nginx<br />四、配置开机自动启动Nginx + PHP<br />vim /etc/rc.local<br />在末尾增加以下内容:<br />ulimit -SHn 65535<br />service php-fpm start<br />service nginx start<br />五、优化Linux内核参数<br />vim /etc/sysctl.conf<br />在末尾增加以下内容:<br /># Add<br />net.ipv4.tcp_max_syn_backlog = 65536 <br />net.core.netdev_max_backlog = 32768 <br />net.core.somaxconn = 32768 <br /> <br />net.core.wmem_default = 8388608 <br />net.core.rmem_default = 8388608 <br />net.core.rmem_max = 16777216 <br />net.core.wmem_max = 16777216 <br /> <br />net.ipv4.tcp_timestamps = 0 <br />net.ipv4.tcp_synack_retries = 2 <br />net.ipv4.tcp_syn_retries = 2 <br /> <br />net.ipv4.tcp_tw_recycle = 1 <br />#net.ipv4.tcp_tw_len = 1<br />net.ipv4.tcp_tw_reuse = 1 <br /> <br />net.ipv4.tcp_mem = 94500000 915000000 927000000<br /> <br />net.ipv4.tcp_max_orphans = 3276800 <br />#net.ipv4.tcp_fin_timeout = 30 <br />#net.ipv4.tcp_keepalive_time = 120 <br />net.ipv4.ip_local_port_range = 1024  65535<br /> <br />使配置立即生效:<br />/sbin/sysctl -p<br />六、创建nginx启动脚本<br />vi /etc/init.d/nginx<br />#!/bin/sh<br />#<br /># chkconfig: - 85 15 <br /># description: Nginx is an HTTP(S) server, HTTP(S) reverse lt;br /># proxy and IMAP/POP3 proxy server<br /># processname: nginx<br /># config: /etc/nginx/nginx.conf<br /># config: /etc/sysconfig/nginx<br /># pidfile: /var/run/nginx.pid<br /> <br /># Source function library.<br />. /etc/rc.d/init.d/functions<br /> <br /># Source networking configuration.<br />. /etc/sysconfig/network<br /> <br /># Check that networking is up.<br />[ quot; $NETWORKINGquot; = quot; noquot; ] && exit 0<br />nginx=quot; /usr/local/nginx/sbin/nginxquot; <br />prog=$(basename $nginx)<br />NGINX_CONF_FILE=quot; /usr/local/nginx/conf/nginx.confquot; <br />[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx<br />lockfile=/var/lock/subsys/nginx<br />start() {<br /> [ -x $nginx ] || exit 5<br /> [ -f $NGINX_CONF_FILE ] || exit 6<br /> echo -n $quot; Starting $prog: quot; <br /> daemon $nginx -c $NGINX_CONF_FILE<br /> retval=$?<br /> echo<br /> [ $retval -eq 0 ] && touch $lockfile<br /> return $retval<br />}<br />stop() {<br /> echo -n $quot; Stopping $prog: quot; <br /> killproc $prog -QUIT<br /> retval=$?<br /> echo<br /> [ $retval -eq 0 ] && rm -f $lockfile<br /> return $retval<br />}<br />restart() {<br /> configtest || return $?<br /> stop<br /> sleep 1<br /> start<br />}<br />reload() {<br /> configtest || return $?<br /> echo -n $quot; Reloading $prog: quot; <br /> killproc $nginx -HUP<br /> RETVAL=$?<br /> echo<br />}<br />force_reload() {<br /> restart<br />}<br />configtest() {<br /> $nginx -t -c $NGINX_CONF_FILE<br />}<br />rh_status() {<br /> status $prog<br />}<br />rh_status_q() {<br /> rh_status >/dev/null 2>&1<br />}<br />case quot; $1quot; in<br /> start)<br /> rh_status_q && exit 0<br /> $1<br /> ;;<br /> stop)<br /> rh_status_q || exit 0<br /> $1<br /> ;;<br /> restart|configtest)<br /> $1<br /> ;;<br /> reload)<br /> rh_status_q || exit 7<br /> $1<br /> ;;<br /> force-reload)<br /> force_reload<br /> ;;<br /> status)<br /> rh_status<br /> ;;<br /> condrestart|try-restart)<br /> rh_status_q || exit 0<br /> ;;<br /> *)<br /> echo $quot; Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}quot; <br /> exit 2<br />esac<br />六、在不停止Nginx服务的情况下平滑变更Nginx配置<br />1、修改/usr/local/nginx/conf/nginx.conf配置文件后,请执行以下命令检查配置文件是否正确:<br />/usr/local/nginx/sbin/nginx -t<br />如果屏幕显示以下两行信息,说明配置文件正确:<br />the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok<br />the configuration file /usr/local/nginx/conf/nginx.conf was tested successfully<br /> <br />2、这时,输入以下命令查看Nginx主进程号:<br />ps -ef | grep quot; nginx: master processquot; | grep -v quot; grepquot; | awk -F ' ' '{print $2}'<br />屏幕显示的即为Nginx主进程号,例如:<br />6302<br />这时,执行以下命令即可使修改过的Nginx配置文件生效:<br />kill -HUP 6302<br />或者无需这么麻烦,找到Nginx的Pid文件:<br />kill -HUP `cat /usr/local/nginx/nginx.pid`<br />七、编写每天定时切割Nginx日志的脚本<br />1、创建脚本/usr/local/nginx/sbin/cut_nginx_log.sh<br />vi /usr/local/nginx/sbin/cut_nginx_log.sh<br />输入以下内容:<br />#!/bin/bash<br /># This script run at 00:00<br /> <br /># The Nginx logs path<br />logs_path=quot; /usr/local/nginx/logs/quot; <br /> <br />mkdir -p ${logs_path}$(date -d quot; yesterdayquot; +quot; %Yquot; )/$(date -d quot; yesterdayquot; +quot; %mquot; )/<br />mv ${logs_path}access.log ${logs_path}$(date -d quot; yesterdayquot; +quot; %Yquot; )/$(date -d quot; yesterdayquot; +quot; %mquot; )/access_$(date -d quot; yesterdayquot; +quot; %Y%m%dquot; ).log<br />kill -USR1 `cat /usr/local/nginx/nginx.pid`<br />------------------------------------------------------------------------------------------------------<br />#!/bin/bash<br /># This script run at 00:00<br /># The Nginx logs path<br />logs_path=quot; /data/log/quot; <br />mv ${logs_path}access.log ${logs_path}access.log-$(date -d quot; yesterdayquot; +quot; %Y%m%dquot; <br />)<br />service nginx restart<br /> <br />2、设置crontab,每天凌晨00:00切割nginx访问日志<br />crontab -e<br />输入以下内容:<br />00 00 * * * /bin/bash  /usr/local/sbin/cut_nginx_log.sh<br />相关软件包下载地址: <br />适用CentOS、RedHat及其它Linux操作系统下载程序源码包:<br />本文中提到的所有开源软件为截止到2009年09月18日的最新稳定版。<br />从软件的官方网站下载:<br />cd /usr/local/src<br />wget http://sysoev.ru/nginx/nginx-0.8.15.tar.gz<br />wget http://www.php.net/get/php-5.2.10.tar.gz/from/this/mirror<br />wget http://blog.s135.com/soft/linux/nginx_php/phpfpm/php-5.2.10-fpm-0.5.11.diff.gz<br />wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.38.tar.gz/from/http://mysql.he.net/<br />wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.tar.gz<br />wget http://downloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz?modtime=1171868460&big_mirror=0<br />wget http://downloads.sourceforge.net/mcrypt/mcrypt-2.6.8.tar.gz?modtime=1194463373&big_mirror=0<br />wget http://pecl.php.net/get/memcache-2.2.5.tgz<br />wget http://downloads.sourceforge.net/mhash/mhash-0.9.9.9.tar.gz?modtime=1175740843&big_mirror=0<br />wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.9.tar.gz<br />wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2<br />wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz<br />wget http://blog.s135.com/soft/linux/nginx_php/imagick/ImageMagick.tar.gz<br />wget http://pecl.php.net/get/imagick-2.2.2.tgz<br />②、从blog.s135.com下载<br />cd /usr/local/src<br />wget http://blog.s135.com/soft/linux/nginx_php/nginx/nginx-0.8.15.tar.gz<br />wget http://blog.s135.com/soft/linux/nginx_php/php/php-5.2.10.tar.gz<br />wget http://blog.s135.com/soft/linux/nginx_php/phpfpm/php-5.2.10-fpm-0.5.11.diff.gz<br />wget http://blog.s135.com/soft/linux/nginx_php/mysql/mysql-5.1.38.tar.gz<br />wget http://blog.s135.com/soft/linux/nginx_php/libiconv/libiconv-1.13.tar.gz<br />wget http://blog.s135.com/soft/linux/nginx_php/mcrypt/libmcrypt-2.5.8.tar.gz<br />wget http://blog.s135.com/soft/linux/nginx_php/mcrypt/mcrypt-2.6.8.tar.gz<br />wget http://blog.s135.com/soft/linux/nginx_php/memcache/memcache-2.2.5.tgz<br />wget http://blog.s135.com/soft/linux/nginx_php/mhash/mhash-0.9.9.9.tar.gz<br />wget http://blog.s135.com/soft/linux/nginx_php/pcre/pcre-7.9.tar.gz<br />wget http://blog.s135.com/soft/linux/nginx_php/eaccelerator/eaccelerator-0.9.5.3.tar.bz2<br />wget http://blog.s135.com/soft/linux/nginx_php/pdo/PDO_MYSQL-1.0.2.tgz<br />wget http://blog.s135.com/soft/linux/nginx_php/imagick/ImageMagick.tar.gz<br />wget http://blog.s135.com/soft/linux/nginx_php/imagick/imagick-2.2.2.tgz<br />