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

原文地址:https://www.cnblogs.com/frankltf/p/8616546.html