完美配置 CentOS+Nginx+MySQL+PHP(LNMP)网站环境

准备工作

  1. 配置防火墙,开启 80 端口、3306 端口、如需使用 SSH 还应开启 22 端口、使用 FTP 需开启 21 端口、如果网站使用 SSL 访问需开启 443 端口: 删除原有的 iptables , 添加合适的配置

    rm -rf /etc/sysconfig/iptables
    vi /etc/sysconfig/iptables

    添加如下内容 :

    ################################ 添加好之后防火墙规则如下所示 ################################

    Firewall configuration written by system-config-firewall

    Manual customization of this file is not recommended.

    *filter
    :INPUT ACCEPT [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]
    -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
    -A INPUT -p icmp -j ACCEPT
    -A INPUT -i lo -j ACCEPT
    -A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
    -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
    -A INPUT -m state –state NEW -m tcp -p tcp –dport 8080 -j ACCEPT
    -A INPUT -m state –state NEW -m tcp -p tcp –dport 8081 -j ACCEPT
    -A INPUT -m state –state NEW -m tcp -p tcp –dport 8082 -j ACCEPT
    -A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
    -A INPUT -j REJECT –reject-with icmp-host-prohibited
    -A FORWARD -j REJECT –reject-with icmp-host-prohibited
    COMMIT
    #######################################################################################

    :wq 保存退出,重启防火墙使配置生效

    /etc/init.d/iptables restart

  2. 关闭 SELINUX

    rm -rf /etc/selinux/config
    vi /etc/selinux/config

    添加一行内容:

    SELINUX=disabled

    :wq 保存退出

    #重启系统
    shutdown -r now

  3. 安装第三方 yum 源

    #安装下载工具
    yum install wget
    #下载
    wget http://www.atomicorp.com/installers/atomic
    #安装
    sh ./atomic
    #更新 yum 源
    yum check-update

开始安装

一。安装 nginx

#删除系统自带的软件包
yum remove httpd* php*
#安装 nginx
yum install -y nginx
#设置 nginx 开机启动
chkconfig nginx on
#启动 nginx
service nginx start

二。安装 PHP

  1. 检查当前安装的 PHP 包 yum list installed | grep php 如果有安装的 PHP 包,先删除他们,如: yum remove php.x86_64 php-cli.x86_64 php-common.x86_64
  2. 配置安装包源:

    Centos 5.X

    rpm -Uvh http://mirror.webtatic.com/yum/el5/latest.rpm

    CentOs 6.x

    rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm

    CentOs 7.X

    rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
    rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm 如果想删除上面安装的包,重新安装 rpm -qa | grep webstatic
    rpm -e [上面搜索到的包即可]
  3. 执行安装 yum -y install php56w.x86_64
    yum -y –enablerepo=webtatic install php56w-devel
    yum -y install php56w-xml.x86_64 php56w-gd.x86_64 php56w-ldap.x86_64 php56w-mbstring.x86_64 php56w-mcrypt.x86_64 php56w-mysql.x86_64 php56w-pdo.x86_64 php56w-opcache.x86_64
  4. 安装 PHP FPM yum -y install php56w-fpm
    #设置 php-fpm 开机启动
    chkconfig php-fpm on
    #启动 php-fpm
    /etc/init.d/php-fpm start 注:如果想更换到 php5.5 或 5.4 版本,直接把上面的 56w 换成 55w 或者 54w 就可以了

三。安装 MySQL

  1. 安装 yum install -y mysql mysql-server
    #启动 MySQL
    /etc/init.d/mysqld start
    #设为开机启动
    chkconfig mysqld on
    #拷贝配置文件(注意:如果 /etc 目录下面默认有一个 my.cnf,直接覆盖即可)
    cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
  2. 为 root 账户设置密码 mysql_secure_installation

    回车,根据提示输入 Y,输入 2 次密码,回车,根据提示一路输入 Y,最后出现:Thanks for using MySQL!

    MySql 密码设置完成,重新启动 MySQL:

    #重启
    /etc/init.d/mysqld restart
    #停止
    /etc/init.d/mysqld stop
    #启动
    /etc/init.d/mysqld start

配置

1. 配置 nginx

rm -rf /etc/nginx/conf.d/*
vi /etc/nginx/conf.d/default.conf

添加如下内容 :

server{
listen 80;
server_name _;
index index.php index.html index.htm;
root /var/www;

location ~ .*.(php|php5)?$
{
        #fastcgi_pass  unix:/tmp/php-cgi.sock;
        fastcgi_pass  127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi.conf;
}

location / {
    try\_files $uri $uri/ /index.php?$query\_string;
}

}

说明: /var/www 为 web 根目录,location / ... 为 url 的 rewrite, 隐藏 index.php

2. 配置 php-fpm

vi /etc/php-fpm.d/www.conf

将用户和用户组设置为 nginx, 默认为 Apache, 如:

#修改用户为 nginx
user = nginx
#修改组为 nginx
group = nginx

说明

启动命令:

nginx 重启 | 启动 | 停止

service nginx restart | start | stop

php-fpm 重启 | 启动 | 停止

service php-fpm restart | start | stop

mysql 重启 | 启动 | 停止

service mysqld restart | start | stop

一些文件的目录:

nginx.conf

/etc/nginx/nginx.conf

php.ini

/etc/php.ini

my.cnf

/etc/my.cnf

项目根目录

/var/www

开始测试

vi /var/www/index.php

添加以下代码

:wq! 保存退出

#设置权限
chown nginx.nginx /var/www -R
#重启 nginx
service nginx restart
#重启 php-fpm
service php-fpm restart

在客户端浏览器输入服务器 IP 地址 (如: 127.0.0.1),可以看到相关的配置信息! 说明 lnmp 配置成功!  

本文参考自:点击进入