Centos6.2_X86_64 _LNMP安装全程实录

操作系统版本 Centos6.2X_86_64 

系统环境的设置

  
  
  
  
  1. for i in ` rpm -q 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-devel libidn libidn-devel openssl openssl-devel bison bison-devel readline readline-devel libmcrypt libmcrypt-devel net-snmp-devel|grep 'not installed' | awk '{print $2}' `;  
  2. do 
  3. yum -y install $i; 
  4. done 

mysql的安装

  
  
  
  
  1. wget http://mysql.ntu.edu.tw/Downloads/MySQL-5.5/mysql-5.5.23.tar.gz 
  2. groupadd -g 27 mysql 
  3. useradd -g 27 -s /sbin/nologin mysql 
  4. cd mysql 
  5. tar xvf cmake-2.8.8.tar.gz 
  6. cd cmake-2.8.8 
  7. ./configure 
  8. make && make install  2>../lnpp_install_error.log 
  9. if [ $? != 0 ] 
  10. then 
  11. exit 1 
  12. fi 
  13. cd .. 
  14. echo "install cmake is succeed" 
  15. cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DINSTALL_MANDIR=/usr/share/man -DENABLED_PROFILING=ON -DMY 
  16. SQL_DATADIR=/usr/local/mysql/data/ -DWITH_EXTRA_CHARSETS=all -DWITH_READLINE=ON -DWITH_LIBWRAP=on -DWITH_SSL=system -DWITH_DE 
  17. BUG=0 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STO 
  18. RAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 
  19. make && make install 2> ../lnpp_install_error.log 
  20. cp support-files/my-medium.cnf /etc/my.cnf 
  21. cp support-files/mysql.server /etc/init.d/mysqld 
  22. chmod  755  /etc/init.d/mysqld 
  23. chown -R mysql:mysql /usr/local/mysql/ 
  24. #sed  -i '/^\[mysqld\]$/a set-variable=max_connections=2000' /etc/my.cnf 
  25. cp extra/my_print_defaults /usr/local/mysql/bin/ 
  26. chkconfig --add  mysqld 
  27. chkconfig mysqld on 
  28. ln -s /usr/local/mysql/lib/libmysqlclient.so.18  /usr/lib/ 
  29. ln -s /usr/local/mysql/lib/libmysqlclient.so.18  /usr/lib64/ 
  30. ln -s /usr/local/mysql/bin/mysql /bin/mysql 
  31. /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 
  32. /usr/local/mysql/bin/mysqld_safe & 
  33. service mysqld restart 

php的安装

  
  
  
  
  1. #wget http://downloads.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz 
  2. tar xvf libmcrypt-2.5.8.tar.gz 
  3. cd libmcrypt-2.5.8 
  4. ./configure --prefix=/usr/local/ 
  5. make && make install 
  6. cd .. 
  7.  
  8. #wget http://downloads.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz 
  9. tar xvf  mhash-0.9.9.9.tar.gz 
  10. cd mhash-0.9.9.9 
  11. ./configure --prefix=/usr/local/ 
  12. make && make install 
  13. cd . .

  14. #wget http://downloads.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz 
  15. tar xvf mcrypt-2.6.8.tar.gz 
  16. cd mcrypt-2.6.8 
  17. LD_LIBRARY_PATH=/usr/local/lib ./configure --prefix=/usr/local/ 
  18. make && make install 
  19. cd . .
  20. #wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz tar xvf libiconv-1.14.tar.gz cd libiconv-1.14 ./configure --prefix=/usr/local make && make install cd . ln -s /usr/local/mysql/lib/* /usr/lib ln -s /usr/local/mysql/lib/* /usr/lib64 echo "/usr/local/lib" >>/etc/ld.so.conf
  1. groupadd -g 28 www useradd -g 28 -u 28 -M -s /sbin/nologin www mkdir /etc/php.d
  2. #wget http://cn2.php.net/distributions/php-5.3.11.tar.gz
  3. tar xvf php-5.3.11.tar.gz
  4. cd php-5.3.11
  5. ./configure --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/libexec --datadir=/usr/s hare --sysconfdir=/etc --sharedstatedir=/var/lib --localstatedir=/var --libdir=/usr/lib64 --includedir=/usr/include --infodir =/usr/share/info --mandir=/usr/share/man --with-libdir=/lib64 --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-c onfig-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-exec-dir=/usr/bin --disable-ipv6 --with-libxml-dir --wit h-openssl --with-pcre-regex --with-zlib --with-bz2 --with-curl --with-curlwrappers --with-pcre-dir --with-jpeg-dir --with-p ng-dir --with-zlib-dir --with-xpm-dir --with-freetype-dir --enable-gd-native-ttf --enable-gd-jis-conv --with-mhash --with- mcrypt --with-mysql --with-mysql-sock=/etc/mysql.sock --with-mysqli=/usr/local/mysql/bin/mysql_config --with-zlib-dir --with -zlib-dir --with-readline --enable-shmop --with-iconv-dir=/usr/local --with-libxml-dir=/usr --with-snmp --with-openssl-dir -- enable-soap --enable-sockets --enable-zip
  6. sed -i "s/-lm -lxml2 -lz -lm -lcrypt/-lm -lxml2 -lz -lm -lcrypt -liconv/g" Makefile
  7. make && make install
  8. cp php.ini-development /etc/php.ini
  9. cp /etc/php-fpm.conf.default /etc/php-fpm.conf sed -i "s/;date.timezone =/date.timezone =Asia\/Chongqing/g" /etc/php.ini
  10. cd ../

pcre的安装

  
  
  
  
  1. wget http://downloads.sourceforge.net/project/pcre/pcre/8.30/pcre-8.30.tar.gz
  2. tar xvf pcre-8.30.tar.gz 
  3. cd pcre-8.30 
  4. ./configure 
  5. make && make install 

nginx的安装

  
  
  
  
  1. wget http://nginx.org/download/nginx-1.2.0.tar.gz 
  2. tar xvf nginx-1.2.0.tar.gz 
  3. cd nginx-1.2.0 
  4. mkdir /etc/nginx/ 
  5. mkdir /var/log/nginx 
  6. mkdir /var/tmp/nginx 
  7. ./configure --prefix=/usr --sbin-path=/usr/sbin --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log  --pid-path=/var/log/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=www --group=www  --with-http_ssl_module --with-http_flv_module --with-http_mp4_module --with-http_gzip_static_module  --with-http_stub_status_module --with-google_perftools_module --http-proxy-temp-path=/var/tmp/nginx/proxy  --http-fastcgi-temp-path=/var/tmp/nginx/fcgi --http-client-body-temp-path=/var/tmp/nginx/client --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi 
  8. make && make install 

安装googelgperftools工具,可以进一步提gao

  
  
  
  
  1. wget http://download.savannah.gnu.org/releases/libunwind/libunwind-1.0.1.tar.gz
  2. wget http://gperftools.googlecode.com/files/gperftools-2.0.tar.gz
  3. tar xvf libunwind-1.0.tar.gz 
  4. cd libunwind-1.0 
  5. ./configure 
  6. make 
  7. make install 
  8. cd ../ 
  9. tar xvf gperftools-2.0.tar.gz  
  10. cd gperftools-2.0 
  11. ./configure --disable-cpu-profiler --disable-heap-profiler --disable-heap-checker --enable-minimal --disable-dependency-tracking 
  12. make && make install 
  13. echo "/usr/local/lib" >> /etc/ld.so.conf.d/usr_local_lib.conf 
  14. echo "/usr/local/include" >> /etc/ld.so.conf 
  15. ldconfig 
  
  
  
  
  1. echo -e "<?php\n phpinfo() \n ?>" >/usr/html/test.php
  2. #more information see http://wiki.nginx.org/NginxGooglePerftoolsModule
  3. mkdir /var/tmp/nginx/tcmalloc chmod 0777 /var/tmp/nginx/tcmalloc
  4. sed -i '/pid logs\/nginx.pid;/agoogle_perftools_profiles \/var\/tmp\/nginx\/tcmalloc\/tcmalloc;' nginx.conf
  5. chown www.root /var/tmp/nginx/tcmalloc lsof -n | grep tcmalloc
  6. cp nginx.sh /etc/init.d/
  7. cp php-fpm.sh /etc/init.d/php-fpm
  8. chmod 755 /etc/init.d/nginx
  9. chmod 755 /etc/init.d/php-fpm
  10. chkconfig --add nginx chkconfig --add php-fpm chkconfig --levels 345 nginx on chkconfig --levels 345 php-fpm on
  11. service nginx start
  12. service php-fpm start
  13. cp nginx_log.sh /home/nginx_log
  14. chmod 755 /home/nginx_log
  15. echo "1 0 * * * cd /home;/home/nginx_log" >/tmp/nginx_log.tmp
  16. crontab -l >>/tmp/nginx_log.tmp
  17. crontab -uroot /tmp/nginx_log.tmp
  18. rm -f /tmp/nginx_log.tmp

nginx的脚本如下(nginx.sh)

  
  
  
  
  1. #!/bin/sh 
  2. # nginx - this script starts and stops the nginx daemon 
  3. # chkconfig:   - 85 15  
  4. # description:  Nginx is an HTTP(S) server, HTTP(S) reverse \ 
  5. #               proxy and IMAP/POP3 proxy server 
  6. # processname: nginx 
  7. # config:      /etc/nginx/nginx.conf 
  8. # config:      /etc/sysconfig/nginx 
  9. # pidfile:     /var/run/nginx.pid   
  10. # Source function library. 
  11. . /etc/rc.d/init.d/functions   
  12. # Source networking configuration. 
  13. . /etc/sysconfig/network   
  14. # Check that networking is up. 
  15. [ "$NETWORKING" = "no" ] && exit 0  
  16. nginx="/usr/sbin/nginx" 
  17. prog=$(basename $nginx)  
  18. NGINX_CONF_FILE="/etc/nginx/nginx.conf"   
  19. [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx  
  20. lockfile=/var/lock/subsys/nginx   
  21. make_dirs() { 
  22.    # make required directories 
  23.    user=`$nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -` 
  24.    if [ -z "`grep $user /etc/passwd`" ]; then 
  25.        useradd -M -s /bin/nologin $user 
  26.    fi 
  27.    options=`$nginx -V 2>&1 | grep 'configure arguments:'` 
  28.    for opt in $options; do 
  29.        if [ `echo $opt | grep '.*-temp-path'` ]; then 
  30.            value=`echo $opt | cut -d "=" -f 2` 
  31.            if [ ! -d "$value" ]; then 
  32.                # echo "creating" $value 
  33.                mkdir -p $value && chown -R $user $value 
  34.            fi 
  35.        fi 
  36.    done 
  37.   
  38. start() { 
  39.     [ -x $nginx ] || exit 5 
  40.     [ -f $NGINX_CONF_FILE ] || exit 6 
  41.     make_dirs 
  42.     echo -n $"Starting $prog: " 
  43.     daemon $nginx -c $NGINX_CONF_FILE 
  44.     retval=$? 
  45.     echo 
  46.     [ $retval -eq 0 ] && touch $lockfile 
  47.     return $retval 
  48.   
  49. stop() { 
  50.     echo -n $"Stopping $prog: " 
  51.     killproc $prog -QUIT 
  52.     retval=$? 
  53.     echo 
  54.     [ $retval -eq 0 ] && rm -f $lockfile 
  55.     return $retval 
  56.   
  57. restart() { 
  58.     configtest || return $? 
  59.     stop 
  60.     sleep 1 
  61.     start 
  62.   
  63. reload() { 
  64.     configtest || return $? 
  65.     echo -n $"Reloading $prog: " 
  66.     killproc $nginx -HUP 
  67.     RETVAL=$? 
  68.     echo 
  69.   
  70. force_reload() { 
  71.     restart 
  72.   
  73. configtest() { 
  74.   $nginx -t -c $NGINX_CONF_FILE 
  75.   
  76. rh_status() { 
  77.     status $prog 
  78.   
  79. rh_status_q() { 
  80.     rh_status >/dev/null 2>&1 
  81.   
  82. case "$1" in 
  83.     start) 
  84.         rh_status_q && exit 0 
  85.         $1 
  86.         ;; 
  87.     stop) 
  88.         rh_status_q || exit 0 
  89.         $1 
  90.         ;; 
  91.     restart|configtest) 
  92.         $1 
  93.         ;; 
  94.     reload) 
  95.         rh_status_q || exit 7 
  96.         $1 
  97.         ;; 
  98.     force-reload) 
  99.         force_reload 
  100.         ;; 
  101.     status) 
  102.         rh_status 
  103.         ;; 
  104.     condrestart|try-restart) 
  105.         rh_status_q || exit 0 
  106.             ;; 
  107.     *) 
  108.         echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" 
  109.         exit 2 
  110. esac 

php-fpm脚本内容如下

  
  
  
  
  1. #!/bin/bash 
  2. # Startup script for the PHP FastCGI server. 
  3. # chkconfig: 345 85 15 
  4. # description: PHP is an HTML-embedded scripting language 
  5. # processname: php 
  6. # config: /etc/php.ini 
  7.   
  8. # Source function library. 
  9. . /etc/rc.d/init.d/functions 
  10.   
  11. PHPFCGI="/usr/sbin/php-fpm" 
  12. FCGIPORT="9000" 
  13. FCGIADDR="127.0.0.1" 
  14. FCGI_WEB_SERVER_ADDRS="127.0.0.1" 
  15. PHP_FCGI_CHILDREN=3 
  16. PHP_FCGI_MAX_REQUESTS=1000 
  17. ALLOWED_ENV="PATH USER" 
  18. PHPUSER=www 
  19. PIDFILE=/var/run/php-fpm.pid 
  20. PHP_FILE=etc/php.ini 
  21. PHP_FPM_FILE=/etc/php-fpm.conf  
  22. if [ -z "$PHP_FCGI_CHILDREN" ]; then 
  23.   PHP_FCGI_CHILDREN=5 
  24. fi   
  25. #ALLOWED_ENV="$ALLOWED_ENV PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS FCGI_WEB_SERVER_ADDRS"  
  26. case "$1" in 
  27.   start) 
  28.         PHPFCGI_START=$"Starting ${NAME} service: " 
  29.         echo -n $PHPFCGI_START 
  30.   
  31.         # check for $PHPUSER, create if non-existent 
  32.         if [ -z "`id -u $PHPUSER 2> /dev/null`" ]; then 
  33.             useradd -s /sbin/nologin $PHPUSER 
  34.         fi 
  35.   
  36.         # clean environment 
  37.         E
  38.         for i in $ALLOWED_ENV; do E="$E $i=${!i}"; done 
  39. #       daemon --user $PHPUSER --pidfile $PIDFILE "env - $E $PHPFCGI -q -b $FCGIADDR:$FCGIPORT &> /dev/null &" 
  40.         daemon  $PHPFCGI -y $PHP_FPM_FILE -c $PHP_FILE 
  41.         pid=`pidof php-fpm` 
  42.         if [ -n "$pid" ]; then 
  43.             echo $pid > $PIDFILE 
  44.             success $PHPFCGI_START 
  45.         else 
  46.             failure $PHPFCGI_START 
  47.         fi 
  48.         echo 
  49.         ;; 
  50.   stop) 
  51.         echo -n "Stopping php-fpm: " 
  52.         killproc -p $PIDFILE php-fpm.pid 
  53.         echo 
  54.         ;; 
  55.   status) 
  56.         status php-fpm 
  57.         ;; 
  58.   restart) 
  59.         $0 stop 
  60.         $0 start 
  61.         ;; 
  62.   *) 
  63.         echo "Usage: $0 {start|stop|status|restart}" 
  64.         exit 1 
  65. esac 
  66.   
  67. exit 0 

nginx日志脚本(nginx_log.sh)

  
  
  
  
  1. #!/bin/bash 
  2. nginx_log_path=/var/log/nginx 
  3. nginx_log_back_path=/var/log/nginx/back_log 
  4.  
  5. mkdir -p $nginx_log_back_path/$(date +%Y)/$(date +%m) 
  6. mv $nginx_log_path/access.log $nginx_log_back_path/$(date +%Y)/$(date +%m)/access.log.$(date +%Y%m%d) 
  7. mv $nginx_log_path/error.log  $nginx_log_back_path/$(date +%Y)/$(date +%m)/error.log.$(date +%Y%m%d) 
  8. kill -USER1 `cat /var/log/nginx/nginx.pid` 

系统调优

kernel_set.sh

  
  
  
  
  1. #!/bin/bash
  2. echo -e "*                soft    nofile         20480\n*                hard    nofile         65535" >>/etc/security/limits 
  3. .conf 
  4. source /etc/profile 
  5. cat >>/etc/sysctl.conf << EOF 
  6. fs.file-max = 65536 
  7. kernel.core_uses_pid = 1 
  8. kernel.msgmax = 65536 
  9. kernel.msgmnb = 65536 
  10. kernel.shmall = 268435456 
  11. kernel.shmmax = 4294967295 
  12. net.core.netdev_max_backlog = 262144 
  13. net.core.rmem_default = 1746400 
  14. net.core.rmem_max = 3492800 
  15. net.core.somaxconn = 262144 
  16. net.core.wmem_default = 1746400 
  17. net.core.wmem_max = 3492800 
  18. net.ipv4.conf.all.rp_filter = 1 
  19. net.ipv4.conf.default.rp_filter = 1 
  20. net.ipv4.ip_forward = 1 
  21. net.ipv4.ip_local_port_range = 1024    65000 
  22. net.ipv4.netfilter.ip_conntrack_max = 655350 
  23. net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 1200 
  24. net.ipv4.tcp_fin_timeout = 1 
  25. net.ipv4.tcp_keepalive_time = 30 
  26. net.ipv4.tcp_max_orphans = 262144 
  27. net.ipv4.tcp_max_syn_backlog = 819200 
  28. net.ipv4.tcp_max_tw_buckets = 500000 
  29. net.ipv4.tcp_mem = 78643200 104857600 157286400 
  30. net.ipv4.tcp_rmem = 873200 1746400 3492800 
  31. net.ipv4.tcp_synack_retries = 2 
  32. net.ipv4.tcp_syncookies = 1 
  33. net.ipv4.tcp_tw_recycle = 1 
  34. net.ipv4.tcp_tw_reuse = 1 
  35. net.ipv4.tcp_wmem = 873200 1746400 3492800 
  36. EOF 
  37. sysctl -p 

 以上由itnihao发布,转载请注明出处,谢谢合作

                       ------------------- itnihao 2012年5月4号于成都

http://cn2.php.net/manual/zh/install.fpm.configuration.php

你可能感兴趣的:(centos,LNMP)