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

CentOS 6.2实战部署Nginx+MySQL+PHP(2)

时间:2015-06-21 21:15来源:linux.it.net.cn 作者:IT



#安装Nginx

[root@dba01 ~]# tar -zxvf nginx-1.2.7.tar.gz && cd nginx-1.2.7

[root@dba01 nginx-1.2.7]# /usr/sbin/groupadd www
[root@dba01 nginx-1.2.7]# /usr/sbin/useradd -g www www
[root@dba01 nginx-1.2.7]# ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
[root@dba01 nginx-1.2.7]# make && make install
[root@dba01 ~]# /usr/local/nginx/sbin/nginx 
/usr/local/nginx/sbin/nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
[root@dba01 ~]# ln -s /lib64/libpcre.so.0 /lib64/libpcre.so.1
[root@dba01 ~]# /usr/local/nginx/sbin/nginx          
[root@dba01 ~]# netstat -lntp|grep nginx
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                  LISTEN      29508/nginx  
[root@dba01 ~]# /etc/init.d/iptables stop


#安装php
#备注:php5.3.3以后的版本源码不需要打php-fpm补丁,该补丁已经集成进5.3.3,在编译时,不需再--enable-fastcgi了,在php5.3.3中强制启用fastcgi.
[root@dba01 nginx-1.2.7]# cd
[root@dba01 ~]# tar -zxvf libmcrypt-2.5.8.tar.gz && cd libmcrypt-2.5.8

[root@dba01 libmcrypt-2.5.8]# ./configure && make && make install


[root@dba01 libmcrypt-2.5.8]# cd 
[root@dba01 ~]# tar -zxvf mhash-0.9.9.9.tar.gz && cd mhash-0.9.9.9

[root@dba01 mhash-0.9.9.9]# ./configure && make && make install


[root@dba01 mhash-0.9.9.9]# cd ..
[root@dba01 ~]# tar -zxvf mcrypt-2.6.8.tar.gz && cd mcrypt-2.6.8
config.status: executing default commands
[root@dba01 mcrypt-2.6.8]# LD_LIBRARY_PATH=/usr/local/lib ./configure --prefix=/usr/local/
[root@dba01 mcrypt-2.6.8]# make && make install

 


[root@dba01 mcrypt-2.6.8]# cd ..
[root@dba01 ~]# tar -zxvf libiconv-1.14.tar.gz

[root@dba01 ~]# cd libiconv-1.14
[root@dba01 libiconv-1.14]# ./configure && make && make install
[root@dba01 libiconv-1.14]# cd


[root@dba01 ~]# useradd -g nginx nginx -s /sbin/nologin 
[root@dba01 ~]# tar -zxvf php-5.3.11.tar.gz

[root@dba01 ~]# cd php-5.3.11
[root@dba01 php-5.3.11]# ./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 --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

[root@dba01 php-5.3.11]# make ZEND_EXTRA_LIBS='-liconv'
[root@dba01 php-5.3.11]# make install
[root@dba01 php-5.3.11]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@dba01 php-5.3.11]# cp -rf php.ini-production /usr/local/php/etc/php.ini
[root@dba01 php-5.3.11]# chmod +x /etc/init.d/php-fpm
[root@dba01 php-5.3.11]# chkconfig php-fpm on
[root@dba01 php-5.3.11]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf


[root@dba01 php-5.3.11]# cd

[root@dba01 ~]# tar -xjvf eaccelerator-0.9.6.1.tar.bz2

[root@dba01 ~]# cd eaccelerator-0.9.6.1
[root@dba01 eaccelerator-0.9.6.1]#  /usr/local/php/bin/phpize
[root@dba01 eaccelerator-0.9.6.1]# ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config && make && make install


[root@dba01 eaccelerator-0.9.6.1]# cd ..
[root@dba01 ~]# tar zxvf PDO_MYSQL-1.0.2.tgz

[root@dba01 ~]# cd PDO_MYSQL-1.0.2
[root@dba01 PDO_MYSQL-1.0.2]# /usr/local/php/bin/phpize
[root@dba01 PDO_MYSQL-1.0.2]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql && make && make install && cd


[root@dba01 ~]# yum -y install libevent libevent-devel
[root@dba01 ~]# tar -zxvf memcached-1.2.5.tar.gz 

[root@dba01 ~]# cd memcached-1.2.5
[root@dba01 memcached-1.2.5]# ./configure --prefix=/usr/local/memcache && make && make install && cd

 


[root@dba01 ~]# tar -zxvf memcache-2.2.5.tgz 
[root@dba01 ~]# cd memcache-2.2.5
[root@dba01 memcache-2.2.5]# /usr/local/php/bin/phpize
[root@dba01 memcache-2.2.5]# ./configure --with-php-config=/usr/local/php/bin/php-config && make && make install && cd


[root@dba01 ~]# sed -i 's#output_buffering = Off#output_buffering = On#' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i "s#; always_populate_raw_post_data = On#always_populate_raw_post_data = On#g" /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i "s#; cgi.fix_pathinfo=0#cgi.fix_pathinfo=0#g" /usr/local/php/etc/php.ini
[root@dba01 ~]# mkdir -p /usr/local/eaccelerator_cache
[root@dba01 ~]# sed -i '1290a [eaccelerator]' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '1291a zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so"' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '1292a eaccelerator.shm_size="64"' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '1293a eaccelerator.cache_dir="/usr/local/eaccelerator_cache"' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '1294a eaccelerator.enable="1"' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '1295a eaccelerator.optimizer="1"' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '1296a eaccelerator.check_mtime="1"' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '1297a eaccelerator.debug="0"' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '1298a eaccelerator.filter=""' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '1299a eaccelerator.shm_max="0"' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '1300a eaccelerator.shm_ttl="3600"' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '1301a eaccelerator.shm_prune_period="3600"' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '1302a seaccelerator.shm_only="0"' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '1303a eaccelerator.compress="1"' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '1304a eaccelerator.compress_level="9"' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '58s#<!--##g' /usr/local/php/etc/php-fpm.conf
[root@dba01 ~]# sed -i '58s#-->##g' /usr/local/php/etc/php-fpm.conf
[root@dba01 ~]# sed -i '59s#<!--##g' /usr/local/php/etc/php-fpm.conf
[root@dba01 ~]# sed -i '59s#-->##g' /usr/local/php/etc/php-fpm.conf
[root@dba01 ~]# sed -i '63s#<!--##g' /usr/local/php/etc/php-fpm.conf
[root@dba01 ~]# sed -i '63s#-->##g' /usr/local/php/etc/php-fpm.conf
[root@dba01 ~]# sed -i '66s#<!--##g' /usr/local/php/etc/php-fpm.conf
[root@dba01 ~]# sed -i '66s#-->##g' /usr/local/php/etc/php-fpm.conf
[root@dba01 ~]# sed -i '63s#nobody#nginx#g' /usr/local/php/etc/php-fpm.conf  
[root@dba01 ~]# sed -i '66s#nobody#nginx#g' /usr/local/php/etc/php-fpm.conf  
[root@dba01 ~]# sed -i '79s#5#128#g' /usr/local/php/etc/php-fpm.conf
[root@dba01 ~]# sed -i '113s#1024#20480#g' /usr/local/php/etc/php-fpm.conf
[root@dba01 ~]# sed -i '132s#500#1024#g' /usr/local/php/etc/php-fpm.conf
[root@dba01 ~]# ulimit -SHn 65535
[root@dba01 ~]# /usr/local/php/sbin/php-fpm
[root@dba01 ~]# netstat -lntp|grep php-fpm
tcp        0      0 127.0.0.1:9000              0.0.0.0:*                  LISTEN      18005/php-fpm


[root@dba01 ~]# mkdir -p /var/www/memcache;mkdir -p /var/www/bbs
[root@dba01 ~]# cat /usr/local/nginx/conf/nginx.conf
user  nginx nginx;


worker_processes 8;


error_log  /app/logs/nginx_error.log  crit;


pid        /usr/local/nginx/nginx.pid;


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


events
{
 use epoll;
 worker_connections 20480;
}


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


 #charset  gb2312;


  log_format  wikilogs  '$remote_addr - $remote_user [$time_local] "$request" '
              '$status $body_bytes_sent "$http_referer" '
              '"$http_user_agent" $http_x_forwarded_for';

 


  log_format  bbslogs  '$remote_addr - $remote_user [$time_local] "$request" '
              '$status $body_bytes_sent "$http_referer" '
              '"$http_user_agent" $http_x_forwarded_for';
server_names_hash_bucket_size 128;
 client_header_buffer_size 32k;
 large_client_header_buffers 4 32k;
 client_max_body_size 8m;


 sendfile on;
 tcp_nopush    on;


 keepalive_timeout 60;


 tcp_nodelay on;


 fastcgi_connect_timeout 300;
 fastcgi_send_timeout 300;
 fastcgi_read_timeout 300;
 fastcgi_buffer_size 64k;
 fastcgi_buffers 4 64k;
 fastcgi_busy_buffers_size 128k;
 fastcgi_temp_file_write_size 128k;


 gzip on;
 gzip_min_length  1k;
 gzip_buffers    4 16k;
 gzip_http_version 1.0;
 gzip_comp_level 2;
 gzip_types      text/plain application/x-javascript text/css application/xml;
 gzip_vary on;


 #limit_zone  crawler  $binary_remote_addr  10m;


  server
 {
  listen      80;
  server_name  wiki.jc.com;
  index index.html index.htm index.php;
  root  /var/www/memcache;


  location ~ .*\.(php|php5)?$
  {
    #fastcgi_pass  unix:/tmp/php-cgi.sock;
    fastcgi_pass  127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi.conf;
  }


  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
  {
    expires      30d;
  }


  location ~ .*\.(js|css)?$
  {
    expires      1h;
  }


  access_log  /app/logs/wikilogs.log  wikilogs;
  }
  server
  {
  listen      80;
  server_name  www.jc.com;
  index index.html index.htm index.php;
  root  /var/www/bbs;


  location ~ .*\.(php|php5)?$
  {
    #fastcgi_pass  unix:/tmp/php-cgi.sock;
    fastcgi_pass  127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi.conf;
  }


  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
  {
    expires      30d;
  }


  location ~ .*\.(js|css)?$
  {
    expires      1h;
  }


  access_log  /app/logs/bbslogs.log  bbslogs;
  }


}


[root@dba01 ~]# vim /usr/local/php/etc/php.ini +1306  添加如下:
[memcache]
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/"
extension=memcache.so

 


[root@dba01 ~]# cd /etc/init.d/
[root@dba01 init.d]# rz -y
rz waiting to receive.
zmodem trl+C ȡ


 100%      1 KB    1 KB/s 00:00:01      0 Errors


[root@dba01 init.d]# dos2unix nginx

dos2unix: converting file nginx to UNIX format ...
[root@dba01 init.d]# chmod 755 nginx 
[root@dba01 init.d]# cat nginx 
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemin
#
# chkconfig:  - 85 15 
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \
#              proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /usr/local/nginx/conf/nginx.conf
# pidfile:    /usr/local/nginx/logs/nginx.pid


# Source function library.
. /etc/rc.d/init.d/functions


# Source networking configuration.
. /etc/sysconfig/network


# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0


nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)


NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"


lockfile=/var/lock/subsys/nginx


start() {
  [ -x $nginx ] || exit 5
  [ -f $NGINX_CONF_FILE ] || exit 6
  echo -n $"Starting $prog: "
  daemon $nginx -c $NGINX_CONF_FILE
  retval=$?
  echo
  [ $retval -eq 0 ] && touch $lockfile
  return $retval
}


stop() {
  echo -n $"Stopping $prog: "
  killproc $prog -QUIT
  retval=$?
  echo
  [ $retval -eq 0 ] && rm -f $lockfile
  return $retval
}


restart() {
  configtest || return $?
  stop
  start
}


reload() {
  configtest || return $?
  echo -n $"Reloading $prog: "
  killproc $nginx -HUP
  RETVAL=$?
  echo
}


force_reload() {
  restart
}


configtest() {
 $nginx -t -c $NGINX_CONF_FILE
}


rh_status() {
  status $prog
}


rh_status_q() {
  rh_status >/dev/null 2>&1
}


case "$1" in
  start)
      rh_status_q && exit 0
      $1
      ;;
  stop)
      rh_status_q || exit 0
      $1
      ;;
  restart|configtest)
      $1
      ;;
  reload)
      rh_status_q || exit 7
      $1
      ;;
  force-reload)
      force_reload
      ;;
  status)
      rh_status
      ;;
  condrestart|try-restart)
      rh_status_q || exit 0
          ;;
  *)
      echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
      exit 2
esac


[root@dba01 init.d]# mkdir -p /app/logs
[root@dba01 init.d]# /etc/init.d/nginx stop
Stopping nginx:                                            [  OK  ]
[root@dba01 init.d]# netstat -lntp|grep nginx
[root@dba01 init.d]# /etc/init.d/nginx restart
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
Stopping nginx:                                            [FAILED]
Starting nginx:                                            [  OK  ]
[root@dba01 init.d]# netstat -lntp|grep nginx 
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                  LISTEN      18084/nginx       

[root@dba01 init.d]# cd /var/www/memcache/
[root@dba01 memcache]# cat phpinfo.php 
<?php
phpinfo();
?>

[root@dba01 memcache]# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0C:29:CA:47:D4  
        inet addr:192.168.1.118  Bcast:255.255.255.255  Mask:255.255.255.0
        inet6 addr: fe80::20c:29ff:feca:47d4/64 Scope:Link
        UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
        RX packets:263728 errors:0 dropped:0 overruns:0 frame:0
        TX packets:172759 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:1000 
        RX bytes:294558603 (280.9 MiB)  TX bytes:19137975 (18.2 MiB)

测试:http://192.168.1.118/phpinfo.php

CentOS 6.2实战部署Nginx+MySQL+PHP

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