Linux 下的php,nginx,mysql的安装

  1. yum -y install wget make vim install gcc gcc-c++ ncurses ncurses-devel 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 curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers pcre pcre-devel  zlip zlip-devel  

新建软件安装目录

  1. mkdir /usr/local/webserver  

php依赖库安装

libxml2(包含库和实用工具用于解析XML文件)

  1. tar zxvf libxml2-2.9.0.tar.gz -C /usr/local/webserver/  
  2. cd /usr/local/webserver/libxml2-2.9.0  
  3. ./configure  
  4. make&&make install  

libmcrypt(加密算法扩展库支持DES, 3DES, RIJNDAEL, Twofish, IDEA, GOST, CAST-256, ARCFOUR, SERPENT, SAFER+等算法)

  1. tar zxvf libmcrypt-2.5.8.tar.gz -C /usr/local/webserver/  
  2. cd /usr/local/webserver/libmcrypt-2.5.8  
  3. ./configure  
  4. make && make install  

nginx安装

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


修改nginx脚本权限

  1. chmod +x /etc/init.d/nginx  


添加到系统服务

  1. /sbin/chkconfig nginx on  


mysql安装

  1. groupadd mysql   
  2. useradd -r -g mysql mysql   
  3. tar zxvf mysql-5.6.16-linux-glibc2.5-x86_64.tar.gz -C /usr/local/webserver/   
  4. mv /usr/local/webserver/mysql-5.6.16-linux-glibc2.5-x86_64 /usr/local/webserver/mysql   
  5. ## ln -s /usr/local/webserver/mysql-5.6.16-linux-glibc2.5-x86_64 /usr/local/webserver/mysql  
  6. cd /usr/local/webserver/mysql/  
  7. chown -R mysql .   
  8. chgrp -R mysql .   
  9. scripts/mysql_install_db --user=mysql   
  10. chown -R root .    
  11. chown -R mysql data    
  1. cp support-files/my-default.cnf /etc/my.cnf  
  2. bin/mysqld_safe --user=mysql &   

修改mysql.server脚本

  1. vi support-files/mysql.server  
  1. basedir=  
  2. datadir=  
  3. 改为  
  4. basedir=/usr/local/webserver/mysql  
  5. datadir=/usr/local/webserver/mysql/data  


配置启动脚本

  1. cp support-files/mysql.server /etc/init.d/mysqld  


添加到环境变量

  1. vi ~/.bash_profile  
  1. PATH=$PATH:$HOME/bin:/usr/local/webserver/mysql/bin  


php安装

gd库安装

  1. tar zxvf gd-2.0.33.tar.gz  
  2. cd gd-2.0.33  
  3. ./configure --prefix=/usr/local/webserver/gd2/  
  4. make && make install  
  1. tar zxvf php-5.3.28.tar.gz -C /usr/local/webserver/  
  2. mv /usr/local/webserver/php-5.3.28/ /usr/local/webserver/php  
  3. cd /usr/local/webserver/php  
  4. ./configure --enable-fpm --with-mysql=/usr/local/webserver/mysql/ --with-mysqli=/usr/local/webserver/mysql/bin/mysql_config --with-config-file-path=/usr/local/webserver/php/ --with-openssl --enable-mbstring --with-zlib --enable-xml --with-gd=/usr/local/webserver/gd2/ --with-jpeg-dir --enable-bcmath --with-mcrypt --with-iconv --enable-pcntl --enable-shmop --enable-simplexml --enable-ftp  
  5. make && make install  
  1. cp php.ini-development /usr/local/webserver/php/php.ini  


配置php.ini

  1. vim php.ini  
  1. ;date.timezone =  
  2. 改为 date.timezone = prc  

配置nginx.conf

  1. mv /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf_bak  
  2. vim /usr/local/nginx/conf/nginx.conf  
  1. user  root root;  
  2. worker_processes  1;  
  3.   
  4. #error_log  logs/error.log;  
  5. #error_log  logs/error.log  notice;  
  6. #error_log  logs/error.log  info;  
  7.   
  8. #pid        logs/nginx.pid;  
  9.   
  10.   
  11. events {  
  12.     worker_connections  1024;  
  13. }  
  14.   
  15.   
  16. http {  
  17.     include       mime.types;  
  18.     default_type  application/octet-stream;  
  19.   
  20.     #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '  
  21.     #                  '$status $body_bytes_sent "$http_referer" '  
  22.     #                  '"$http_user_agent" "$http_x_forwarded_for"';  
  23.   
  24.     #access_log  logs/access.log  main;  
  25.   
  26.     sendfile        on;  
  27.     #tcp_nopush     on;  
  28.   
  29.     #keepalive_timeout  0;  
  30.     keepalive_timeout  65;  
  31.   
  32.   
  33.     server {  
  34.         listen          80;  
  35.         server_name     192.168.51.33;  
  36.         root            /home/www;  
  37.   
  38.         autoindex on;  
  39.         autoindex_exact_size off;  
  40.         autoindex_localtime on;  
  41.   
  42.   
  43.     #配置站点伪静态(此处配置好之后,需要在ecstore/config/config.php中修改“define('WITH_REWRITE',true);”)  
  44.         if ($request_uri ~ (.+?.php)(|/.*)$ ){  
  45.             break;                                                                                                                                    
  46.         }  
  47.         if (!-e $request_filename) {  
  48.             rewrite ^/(.*)$ /index.php/$1 last;  
  49.         }  
  50.   
  51.   
  52.         location / {  
  53.             index  index.php index.html index.htm;  
  54.         }  
  55.         error_page   500 502 503 504  /50x.html;  
  56.         location = /50x.html {  
  57.             root   html;  
  58.         }  
  59.         location ~ .php {  
  60.             include        fastcgi_params;  
  61.             fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  
  62.             #设置pathinfo  
  63.   
  64.             set $path_info "";  
  65.             set $real_script_name $fastcgi_script_name;  
  66.             if ($fastcgi_script_name ~ "^(.+?.php)(/.+)?$") {  
  67.                 set $script_name $1;  
  68.                 set $path_info $2;  
  69.             }  
  70.   
  71.             fastcgi_param SCRIPT_NAME $script_name;  
  72.             fastcgi_param PATH_INFO $path_info;  
  73.             fastcgi_pass   127.0.0.1:9000;  
  74.             fastcgi_index  index.php;  
  75.         }  
  76.     }  
  77.   
  78.   
  79.   
  80.         # deny access to .htaccess files, if Apache's document root  
  81.         # concurs with nginx's one  
  82.         #  
  83.         #location ~ /.ht {  
  84.         #    deny  all;  
  85.         #}  
  86.   
  87.   
  88.     # another virtual host using mix of IP-, name-, and port-based configuration  
  89.     #  
  90.     #server {  
  91.     #    listen       8000;  
  92.     #    listen       somename:8080;  
  93.     #    server_name  somename  alias  another.alias;  
  94.   
  95.     #    location / {  
  96.     #        root   html;  
  97.     #        index  index.html index.htm;  
  98.     #    }  
  99.     #}  
  100.   
  101.   
  102.     # HTTPS server  
  103.     #  
  104.     #server {  
  105.     #    listen       443;  
  106.     #    server_name  localhost;  
  107.   
  108.     #    ssl                  on;  
  109.     #    ssl_certificate      cert.pem;  
  110.     #    ssl_certificate_key  cert.key;  
  111.   
  112.     #    ssl_session_timeout  5m;  
  113.   
  114.     #    ssl_protocols  SSLv2 SSLv3 TLSv1;  
  115.     #    ssl_ciphers  HIGH:!aNULL:!MD5;  
  116.     #    ssl_prefer_server_ciphers   on;  
  117.   
  118.     #    location / {  
  119.     #        root   html;  
  120.     #        index  index.html index.htm;  
  121.     #    }  
  122.     #}  
  123.   
  124. }  


配置php.ini

  1. vi /usr/local/webserver/php/php.ini  
  1. enable_dl = On  
  2. cgi.force_redirect = 0  
  3. cgi.fix_pathinfo=1  
  4. fastcgi.impersonate = 1  
  5. cgi.rfc2616_headers = 1  
  6. allow_url_fopen = On  


配置php-fpm启动脚本

  1. vi /etc/init.d/php-fpm  
  1. #! /bin/sh  
  2.   
  3. ### BEGIN INIT INFO  
  4. # Provides:          php-fpm  
  5. # Required-Start:    $remote_fs $network  
  6. # Required-Stop:     $remote_fs $network  
  7. # Default-Start:     2 3 4 5  
  8. # Default-Stop:      0 1 6  
  9. # Short-Description: starts php-fpm  
  10. # Description:       starts the PHP FastCGI Process Manager daemon  
  11. ### END INIT INFO  
  12.   
  13. prefix=/usr/local/  
  14.   
  15. php_fpm_BIN=${prefix}/sbin/php-fpm  
  16. php_fpm_CONF=${prefix}/etc/php-fpm.conf  
  17. php_fpm_PID=${prefix}/var/run/php-fpm.pid  
  18.   
  19.   
  20. php_opts="--fpm-config $php_fpm_CONF"  
  21. php_pid="--pid $php_fpm_PID"  
  22.   
  23. wait_for_pid () {  
  24.         try=0  
  25.   
  26.         while test $try -lt 35 ; do  
  27.   
  28.                 case "$1" in  
  29.                         'created')  
  30.                         if [ -f "$2" ] ; then  
  31.                                 try=''  
  32.                                 break  
  33.                         fi  
  34.                         ;;  
  35.   
  36.                         'removed')  
  37.                         if [ ! -f "$2" ] ; then  
  38.                                 try=''  
  39.                                 break  
  40.                         fi  
  41.                         ;;  
  42.                 esac  
  43.   
  44.                 echo -n .  
  45.                 try=`expr $try + 1`  
  46.                 sleep 1  
  47.   
  48.         done  
  49.   
  50. }  
  51.   
  52. case "$1" in  
  53.         start)  
  54.                 echo -n "Starting php-fpm "  
  55.   
  56.                 $php_fpm_BIN $php_opts $php_pid  
  57.   
  58.                 if [ "$?" != 0 ] ; then  
  59.                         echo " failed"  
  60.                         exit 1  
  61.                 fi  
  62.   
  63.                 wait_for_pid created $php_fpm_PID  
  64.   
  65.                 if [ -n "$try" ] ; then  
  66.                         echo " failed"  
  67.                         exit 1  
  68.                 else  
  69.                         echo " done"  
  70.                 fi  
  71.         ;;  
  72.   
  73.         stop)  
  74.                 echo -n "Gracefully shutting down php-fpm "  
  75.   
  76.                 if [ ! -r $php_fpm_PID ] ; then  
  77.                         echo "warning, no pid file found - php-fpm is not running ?"  
  78.                         exit 1  
  79.                 fi  
  80.   
  81.                 kill -QUIT `cat $php_fpm_PID`  
  82.   
  83.                 wait_for_pid removed $php_fpm_PID  
  84.   
  85.                 if [ -n "$try" ] ; then  
  86.                         echo " failed. Use force-exit"  
  87.                         exit 1  
  88.                 else  
  89.                         echo " done"  
  90.                 fi  
  91.                       ;;  
  92.   
  93.         force-quit)  
  94.                 echo -n "Terminating php-fpm "  
  95.   
  96.                 if [ ! -r $php_fpm_PID ] ; then  
  97.                         echo "warning, no pid file found - php-fpm is not running ?"  
  98.                         exit 1  
  99.                 fi  
  100.   
  101.                 kill -TERM `cat $php_fpm_PID`  
  102.   
  103.                 wait_for_pid removed $php_fpm_PID  
  104.   
  105.                 if [ -n "$try" ] ; then  
  106.                         echo " failed"  
  107.                         exit 1  
  108.                 else  
  109.                         echo " done"  
  110.                 fi  
  111.         ;;  
  112.   
  113.         restart)  
  114.                 $0 stop  
  115.                 $0 start  
  116.         ;;  
  117.   
  118.         reload)  
  119.   
  120.                 echo -n "Reload service php-fpm "  
  121.   
  122.                 if [ ! -r $php_fpm_PID ] ; then  
  123.                         echo "warning, no pid file found - php-fpm is not running ?"  
  124.                         exit 1  
  125.                 fi  
  126.   
  127.                 kill -USR2 `cat $php_fpm_PID`  
  128.   
  129.                 echo " done"  
  130.         ;;  
  131.   
  132.         *)  
  133.                 echo "Usage: $0 {start|stop|force-quit|restart|reload}"  
  134.                 exit 1  
  135.         ;;  
  136.   
  137. esac  


脚本执行权限

  1. cd /usr/local/etc && cp php-fpm.conf.default php-fpm.conf  
  2. chmod +x /etc/init.d/php-fpm  

设置开机启动

  1. /sbin/chkconfig php-fpm on  


/******下面是ecstore所需******/

ZendGuard安装

  1. tar zxvf ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz -C /usr/local/webserver/  
  2. mv /usr/local/webserver/ZendGuardLoader-php-5.3-linux-glibc23-x86_64 /usr/local/webserver/ZendGuardLoader  
  3. cd /usr/local/webserver/ZendGuardLoader  
  4. cp php-5.3.x/ZendGuardLoader.so /usr/local/webserver/php/ext/  


配置php.ini

  1. vi /usr/local/webserver/php/php.ini  
    1. [Zend Guard]  
    2. ;/usr/local/webserver/php/ext/ZendGuardLoader.so  这个是你当时指定的zend的目录  
    3. zend_extension=/usr/local/webserver/php/ext/ZendGuardLoader.so  
    4. zend_loader.enable=1  
    5. zend_loader.disable_licensing=0  
    6. zend_loader.obfuscation_level_support=3  
    7. zend_loader.license_path= 
原文地址:https://www.cnblogs.com/try-better-tomorrow/p/5099540.html