部署时间:2012-07-24 复制代码 代码如下:
yum install openssl-devel pcre-devel zlib-devel libjpeg-devel libpng-devel freetype-devel gcc make
复制代码 代码如下:
useradd -M -r -s /sbin/nologin -d /opt/web/ www
复制代码 代码如下:
mkdir -p /var/tmp/nginx/client/ mkdir -p /var/tmp/nginx/proxy/ mkdir -p /var/tmp/nginx/fcgi/
复制代码 代码如下:
cd /usr/local/src/ wget http://nginx.org/download/nginx-1.2.2.tar.gz
复制代码 代码如下:
tar vxzf nginx-1.2.2.tar.gz cd nginx-1.2.2/ ./configure --prefix=/opt/web/nginx --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi/ make make install
复制代码 代码如下:
vim /opt/web/nginx/conf/nginx.conf # 指定启动用户: user www www; # 进程数量,nginx作者认为一个就可以,根据自己的访问量修改 worker_processes 1; # 设置错误日志: #error_log logs/error.log notice; #error_log logs/error.log info; error_log /var/log/nginx/error.default.log; pid /opt/web/nginx/nginx.pid; events { use epoll; worker_connections 1024; } http { charset utf-8; include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; #keepalive_timeout 0; keepalive_timeout 65; gzip on; gzip_min_length 1000; gzip_proxied any; gzip_types text/plain text/css text/xml application/x-javascript application/xml application/atom+xml text/javascript; server { listen 80; server_name localhost; charset utf-8; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ .php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ .php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; #include fastcgi_params; include fastcgi.conf; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # location ~ /.ht { deny all; } } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443; # server_name localhost; # ssl on; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_timeout 5m; # ssl_protocols SSLv2 SSLv3 TLSv1; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} proxy_read_timeout 200; # Only retry if there was a communication error, not a timeout # on the Tornado server (to avoid propagating "queries of death" # to all frontends) proxy_next_upstream error; proxy_set_header X-Scheme $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 引入虚拟主机文件 include /opt/web/nginx/conf/sites/*.conf; } 6、建立虚拟机配置文件存放的目录 复制代码 代码如下:
mkdir /opt/web/nginx/conf/sites
复制代码 代码如下:
server { listen 80; client_max_body_size 10M; #多个域名用空格分割,第一个为默认 server_name www.jquerycn.cn jquerycn.cn; charset UTF-8; index index.html index.htm index.php; # 定义根目录 set $root /var/webroot/www.jquerycn.cn/; # 设置站点路径 root $root; # 防止目录浏览 autoindex off; if ($host != 'www.jquerycn.cn') { rewrite ^/(.*)$ http://www.jquerycn.cn/$1 permanent; } # 防止.htaccess文件被请求 location ~ /.ht { deny all; } error_page 404 /404.html; index index.html index.htm; location /uploads/ { alias /data/webroot/www.jquerycn.cn/uploads/; } try_files $uri @uwsgi; location @uwsgi{ # 将其它的请求转交给uwsgi include uwsgi_params; uwsgi_pass unix:/tmp/360ito_uwsgi.sock; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #proxy_pass http://localhost:5000; } # 将php类型的请求转交给fastcgi location ~ .php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; } # 访问日志: access_log /var/log/nginx/access.www.jquerycn.cn.log; # 加载.htaccess重写文件,注意,这里不支持变量路径 # 不能写成 include $root/www.jquerycn.cn/.htaccess; # include /var/webroot/www.jquerycn.cn/.htaccess; # 开启域名跳转,则当访问出错后,其他域名会自动跳转到 www.jquerycn.cn # 注意,这里我说的是,仅仅当访问出错后,才会跳转,所以,这里并不能实现301重定向! server_name_in_redirect on; } 7、安装最新版本PHP( PHP5.3.14 ) 复制代码 代码如下:
cd /usr/local/src/ wget http://cn.php.net/get/php-5.3.14.tar.bz2/from/this/mirror tar xjvf php-5.3.14.tar.bz2 cd php-5.3.14 执行: 复制代码 代码如下:
./buildconf --force
如果报错,可能是你的 autoconf不是 2.13 版本的,PHP5.3.系列的bug,需要安装 autoconf为2.13的版本: 复制代码 代码如下:
CentOS : # yum install autoconf213 Debian : # apt-get install autoconf2.13 设置环境变量 复制代码 代码如下:
# CentOS : export PHP_AUTOCONF="/usr/bin/autoconf-2.13" # Debian : export PHP_AUTOCONF="/usr/bin/autoconf2.13" 再次运行:./buildconf --force ,出现 buildconf: autoconf version 2.13 (ok) ,则表示成功。 编译安装 PHP 复制代码 代码如下:
./configure --prefix=/opt/web/php --with-config-file-path=/opt/web/php/etc --with-config-file-scan-dir=/opt/web/php/etc/conf.d --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=/opt/db/Percona-Server-5.5.14-rel20.5 --with-mysqli=/opt/db/Percona-Server-5.5.14-rel20.5/bin/mysql_config --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-xml --enable-mbstring --with-gd --enable-gd-native-ttf --with-openssl --enable-inline-optimization make && make install cp php.ini-production /opt/web/php/etc/php.ini cd /opt/web/php/etc cp php-fpm.conf.default php-fpm.conf 修改php-fpm.conf 启用如下几行,即去掉前面的分号(;) 复制代码 代码如下:
pid = run/php-fpm.pid error_log = log/php-fpm.log log_level = notice listen = 127.0.0.1:9000 listen.allowed_clients = 127.0.0.1 listen.owner = www listen.group = www listen.mode = 0666 user = www group = www pm = dynamic pm.max_children = 50 pm.start_servers = 5 pm.min_spare_servers = 5 pm.max_spare_servers = 35 pm.max_requests = 500 env[HOSTNAME] = $HOSTNAME env[PATH] = /usr/local/bin:/usr/bin:/bin env[TMP] = /tmp env[TMPDIR] = /tmp env[TEMP] = /tmp 8、启动php-fpm 复制代码 代码如下:
/opt/web/php/sbin/php-fpm
复制代码 代码如下:
/opt/web/nginx/sbin/nginx
复制代码 代码如下:
vim /var/webroot/www.jquerycn.cn/test.php
复制代码 代码如下:
<?PHP phpinfo(); ?> 10、在浏览器地址栏输入:http://test.jquerycn.cn/test.php 成功的话,可以看到phpinfo()输出的信息
|