zoukankan      html  css  js  c++  java
  • linux--->阿里云centos6.9环境配置安装lnmp

    阿里云centos6.9环境配置安装lnmp

    mysql安装
    本人博客:http://www.cnblogs.com/frankltf/p/8615418.html
    
    PHP安装
    • 1、安装依赖关系
      yum install libmcrypt libmcrypt-devel mcrypt mhash
      在这个过程中遇到yum安装mcrypt错误:No package php-mcrypt available,解决方法如下:
      yum install epel-release //扩展包更新包
      yum update //更新yum源
      yum install libmcrypt libmcrypt-devel mcrypt mhash

    • 2.下载并编译安装php

    wget http://cn2.php.net/distributions/php-5.6.32.tar.gz  
    tar zxvf php-5.6.32.tar.gz  
    cd php-5.6.32  
    
    ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --disable-fileinfo --enable-maintainer-zts
    
    
    • 3.在执行第二步的配置文件设置过程中可能会遇到很多报错,大部分原因是因为缺少相关依赖包造成的,只需要安装相应的依赖包即可继续。

    • 4.配置
      修改fpm配置php-fpm.conf.default文件名称
      mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
      复制php.ini配置文件
      cp php.ini-production /usr/local/php/etc/php.ini
      复制php-fpm启动脚本到init.d
      cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
      赋予执行权限
      chmod +x /etc/init.d/php-fpm
      添加为启动项
      chkconfig --add php-fpm
      设置开机启动
      chkconfig php-fpm on
      按照标准,给php-fpm创建一个指定的用户和组
      创建群组
      groupadd www
      创建一个用户,不允许登陆和不创主目录
      useradd -s /sbin/nologin -g www -M www
      立即启动php-fpm
      /etc/init.d/php-fpm start
      ln -s /usr/local/php/bin/php /usr/bin/php

    PHP安装完毕!

    安装Nginx1.8.0
    • 1.准备工作
      添加用户与属组:
      groupadd -r nginx
      useradd -s /sbin/nologin -g nginx -M nginx
      创建目录:
      mkdir -pv /var/tmp/nginx/client/
      下载:
      wget http://nginx.org/download/nginx-1.8.0.tar.gz
      解压安装包
      tar zxvf nginx-1.8.0.tar.gz
      cd nginx-1.8.0

    • 2.编译安装
      ./configure
      --prefix=/usr/local/nginx
      --sbin-path=/usr/local/nginx/sbin/nginx
      --conf-path=/usr/local/nginx/conf/nginx.conf
      --error-log-path=/var/log/nginx/error.log
      --http-log-path=/var/log/nginx/access.log
      --pid-path=/var/run/nginx.pid
      --lock-path=/var/lock/nginx.lock
      --user=nginx
      --group=nginx
      --with-http_ssl_module
      --with-http_flv_module
      --with-http_stub_status_module
      --with-http_gzip_static_module
      --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
      --http-scgi-temp-path=/var/tmp/nginx/scgi
      --with-pcre
      注意:若报错./configure: error: the HTTP rewrite module requires the PCRE library,执行:
      yum -y install pcre-devel
      这里要特别注意sbin、conf、pid、local的path要和后续的控制脚本保持一致!
      make && make install

    • 3.为Nginx提供SysV init脚本

    vim /etc/init.d/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:    /var/run/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/nginx.lock"
     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
    

    类似的脚本网上很多,注意config、pid、sbin的路径保持和编译一致即可。
    在这一步中遇到一个困扰了很久的错误,pid文件的丢失,尝试了网上很多方法都未解决,最终解决方法:将/etc/init.d/nginx文件中的# pidfile: /var/run/nginx/nginx.pid 改成 # pidfile: /var/run/nginx.pid ,因为每次终止nginx进程都会删除nginx.pid文件及其nginx文件夹,但是在重启时并不会在/var/run/下创建nginx文件夹,于是最简单的解决方案就是重新安装,并将pid路径改为 /var/run/nginx.pid。

    • 4.配置
      chmod +x /etc/init.d/nginx
      chkconfig --add nginx
      chkconfig nginx on
      然后就可以启动服务了
      systemctl restart nginx.service

      /etc/init.d/nginx start
      Nginx安装完毕 ,下面开始整合Nginx与PHP
    整合Nginx与PHP

    1、编辑Nginx.conf,启用如下选项:

    cd /usr/local/nginx/conf/
    vim nginx.conf
    修改如下:

    user nginx nginx;
    
    location / { 
                root  /home/www; 
                index  index.php index.html index.htm; 
            }
    location ~ .php$ {
                root          /home/www;
                fastcgi_pass  127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include        fastcgi_params;
            }
    

    重新载入配置
    /etc/init.d/nginx reload
    或者
    service nginx restart

    2、在设置的网站root目录下新建index.php测试页面

    可通过浏览器 访问此测试页面,可验证nginx连接php配置成功。
    注意:若是连接超时可能是防火墙阻隔了80端口,可使用上面mysql开放3306端口的方式开放80端口。

    至此,CenOS下LNMP环境搭建完毕!

    参考:http://blog.csdn.net/guwuhui123/article/details/69943295

  • 相关阅读:
    用C++实现网络编程---抓取网络数据包的实现方法
    UNICODE字符串与多字节字符串的转换
    MFC ComboBox的使用
    Windows API学习---线程与内核对象的同步
    Windows API学习---用户方式中的线程同步
    MFC读取XML文件并解析
    Windows API学习---插入DLL和挂接API
    常用[js,css,jquery,html]
    JDBC链接MySQL和Oracle
    使用.NET MVC框架项目开发流程(项目开发流程)
  • 原文地址:https://www.cnblogs.com/frankltf/p/8616546.html
Copyright © 2011-2022 走看看