• Nginx and Php 最小化安装(CentOS)


    ##目录
    0.下载相关的文件 
    1.PCRE 
    2.Nginx 
    3.PHP 
    4.测试 
    5.编写快速启动和关闭的nginx与php脚本 
    ##0.下载相关的文件
    1. [pcre-8.21.tar.bz2](ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/)
    2. [nginx-1.4.1.tar.gz](http://nginx.org/)
    3. [php-5.3.27](http://php.net/downloads.php)
    
    ##1.PCRE
    系统自带的PCRE版本太低了.所以需要卸载重装。 
    第一步:查看PCRE的版本 
    ```
    $ rpm -qa | grep pcre
    ```
    第二步:保留以前的libpcre.so.0,没有这个无法重装PCRE的
    ```
    $ sudo cp /lib/libpcre.so.0 /lib/libpcre.so.0.back
    ```
    第三步:卸载PCRE
    ```
    $ sudo rpm -e --nodeps pcre-7.8-4.el6.i686 #这里的这个7.8-4.el6.i686-是我这里版本,要根据自己电脑修改
    ```
    第四步:安装新的PCRE
    ```
    $ tar -xj -f pcre-8.21.tar.gz
    $ cd pcre-8.21
    $ sudo mv /lib/libpcre.so.0.back /lib/libpcre.so.0
    $ ./configure 
    $ make
    $ sudo make install 
    ```
    ##2.Nginx
    ```
    $ ./configure 
    $ --prefix=/usr/local/nginx 
    $ --conf-path=/etc/nginx/nginx.conf 
    $ --user=www  
    $ --group=www 
    $ --pid-path=/var/run/nginx.pid 
    $ --with-http_stub_status_module 
    $ --with-http_ssl_module  
    $ --with-http_realip_module  
    $ --with-http_flv_module 
    $ --with-http_dav_module  
    $ --with-http_gzip_static_module 
    $ --http-log-path=/data/log/nginx/access.log 
    $ --error-log-path=/data/log/nginx/error.log  
    $ --without-http-cache 
    $ --with-mail 
    $ --with-mail_ssl_module 
    $ --http-proxy-temp-path=/tmp/nginx/proxy  
    $ --http-fastcgi-temp-path=/tmp/nginx/fastcgi 
    $ --http-uwsgi-temp-path=/tmp/nginx/uwsgi 
    $ --http-scgi-temp-path=/tmp/nginx/scgi 
    $ --http-client-body-temp-path=/tmp/nginx/client 
    $ make 
    $ sudo make install
    $ sudo /usr/local/nginx/sbin/nginx 
    ```
    ###配置, 开启PHP支持
    ```
    $ sudo vim /usr/local/nginx/conf/nginx.conf
    ```
    增加PHP主页
    ```
    location / {
    root html;
    index index.html index.php index.htm;
    }
    ```
    开启PHP支持
    ```
    location ~ .php$ {
    root html;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
    include fastcgi_params;
    }
    ```
    注意这里的fastcgi_pass 和 fastcgi_param的"/var/www", fastcgi_pass是nginx请求到php的端口,而"/var/www"就是项目的存放路径 
    ```
    $ sudo /usr/local/nginx/sbin/nginx
    ```
    在浏览器输入https://127.0.0.1就可以查看Nginx的欢迎信息了
    ##3.PHP
    这里是最小化安装,所以就不配置什么插件了
    Nginx 与 PHP的通信需要使用 PHP-FPM,在php5.3.3以后,PHP-FPM以及集成到了php,如果要使用的话,在编译的时候,加一句--enable-fpm
    ```
    $ sudo ./configure --prefix=/usr/local/php --enable-fpm
    $ sudo make
    $ sudo make test
    $ sudo make install
    ```
    ###配置
    ```
    $ sudo cd /usr/local/php
    $ cp etc/php-fpm.conf.default etc/php-fpm.conf
    $ sudo vim etc/php-fpm.conf
    $ 找到[global],去掉";pid = run/php-fpm.pid"的注释
    ```
    ##4.测试
    
    我们之前提到了"/var/www",我们在这里新建一个php文件,来测试环境是否搭建成功
    ```
    $ sudo vim /var/www/info.php
    ```
    info.php
    ```php
    <? echo phpinfo(); ?>
    ```
    如果之前已经开启nginx服务器,现在就不用开了
    ```
    $ sudo /usr/local/nginx/sbin/nginx
    $ sudo /usr/local/php/sbin/php-fpm
    ```
    
    ##5.编写快速启动和关闭的nginx与php脚本
    示例:
    ```
    $ sudo vim /etc/init.d/php-fpm
    $ sudo chmod +x /etc/init.d/php-fpm
    $ sudo /sbin/chkconfig php-fpm on
    $ sudo /sbin/chkconfig --list php-fpm
    ```
    成功的话
    就可以看到好几个 on
    
    测试
    ```
    $ sudo /etc/init.d/php-fpm stop
    $ sudo /etc/init.d/php-fpm start
    $ sudo /etc/init.d/php-fpm restart
    ```
    php-fpm 脚本
    ```
    #!/bin/bash
    #
    # Startup script for the PHP-FPM server.
    #
    # chkconfig: 345 85 15
    # description: PHP is an HTML-embedded scripting language
    # processname: php-fpm
    # config: /usr/local/php/etc/php.ini
    
    # Source function library.
    . /etc/rc.d/init.d/functions
    
    PHP_PATH=/usr/local
    DESC="php-fpm daemon"
    NAME=php-fpm
    # php-fpm路径
    DAEMON=$PHP_PATH/php/sbin/$NAME
    # 配置文件路径
    CONFIGFILE=$PHP_PATH/php/etc/php-fpm.conf
    # PID文件路径(在php-fpm.conf设置)
    PIDFILE=$PHP_PATH/php/var/run/$NAME.pid
    SCRIPTNAME=/etc/init.d/$NAME
    
    # Gracefully exit if the package has been removed.
    test -x $DAEMON || exit 0
    
    rh_start() {
    $DAEMON -y $CONFIGFILE || echo -n " already running"
    }
    
    rh_stop() {
    kill -QUIT `cat $PIDFILE` || echo -n " not running"
    }
    
    rh_reload() {
    kill -HUP `cat $PIDFILE` || echo -n " can't reload"
    }
    
    case "$1" in
    start)
    echo -n "Starting $DESC: $NAME"
    rh_start
    echo "."
    ;;
    stop)
    echo -n "Stopping $DESC: $NAME"
    rh_stop
    echo "."
    ;;
    reload)
    echo -n "Reloading $DESC configuration..."
    rh_reload
    echo "reloaded."
    ;;
    restart)
    echo -n "Restarting $DESC: $NAME"
    rh_stop
    sleep 1
    rh_start
    echo "."
    ;;
    *)
    echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2
    exit 3
    ;;
    esac
    exit 0
    ```
    
    nginx 脚本
    ```
    #!/bin/bash 
    # 
    #chkconfig: - 85 15 
    #description: Nginx is a World Wide Web server. 
    #processname: nginx 
    
    nginx=/usr/local/nginx/sbin/nginx 
    conf=/usr/local/nginx/conf/nginx.conf 
    
    case $1 in 
    start) 
    echo -n "Starting Nginx" 
    $nginx -c $conf 
    echo " done" 
    ;; 
    
    stop) 
    echo -n "Stopping Nginx" 
    killall -9 nginx 
    echo " done" 
    ;; 
    
    test) 
    $nginx -t -c $conf 
    ;; 
    
    reload) 
    echo -n "Reloading Nginx" 
    ps auxww | grep nginx | grep master | awk '{print $2}' | xargs kill -HUP 
    echo " done" 
    ;; 
    
    restart) 
    $0 stop 
    $0 start 
    ;; 
    
    show) 
    ps -aux|grep nginx 
    ;; 
    
    *) 
    echo -n "Usage: $0 {start|restart|reload|stop|test|show}" 
    ;; 
    
    esac
    ```
    
    乘风破浪会有时,直挂云帆济沧海。
  • 相关阅读:
    洛谷—— P1187 3D模型
    商铺项目(Redis缓存)
    商铺项目(使用DES加密配置信息)
    Linux下tomcat启动项目原因排查
    商铺项目(商品详情页开发)
    商铺项目(店铺详情页开发)
    商铺项目(店铺列表开发)
    商铺项目(首页前端开发)
    商铺项目(首页后台开发)
    商铺项目(商品类别模块二)
  • 原文地址:https://www.cnblogs.com/nsdont/p/3240339.html
Copyright © 2020-2023  润新知