Ubuntu 16.04 快速配置 LNMP(LEMP) 环境

从接触 Linux 服务器(vps)配置 Web 服务开始,用过 lnmp.org 的一键安装包,也学过自己编译安装。其实两者的本质都是编译安装,虽说编译安装自定义性较高,但是也容易遇到各种问题,而且费时费力,后期还不易维护。

在朋友和相关文章的指导下,了解了 apt 的神奇魅力。乘着 ubuntu LTS 更新到 16.04 之际,来学学用 apt 来快速配置一个干净易维护 LNMP 环境。

安装

更新 apt 包

apt update

Nginx 安装

apt install nginx

MySQL 安装

apt install mysql-server mysql-client #安装过程中需设置 mysql root 密码
mysql_secure_installation #加强安全性,可选

PHP & php-mysql 插件

apt install php-fpm php-mysql php7.0-mbstring

简单五行命令,便完成了 LNMP 的环境安装。安装的同时,还已经进行了各种基本的配置。

以上几行命令也可以合并为以下几行来执行:

apt update
apt install nginx mysql-server mysql-client php-fpm php-mysql php7.0-mbstring #安装过程中需设置 mysql root 密码
mysql_secure_installation #加强 mysql 安全性,可选

简单配置

nginx php-fpm 配置

在 /etc/nginx/sites-available 中添加配置:

server {
    listen 80;
    listen [::]:80;

    # listen [::]:443 ssl http2;
    # listen 443 ssl http2;

    # include ssl.conf;
    # ssl_certificate /path/to/crt;
    # ssl_certificate_key /path/to/key;

    root /var/www/server_domain_or_IP;
    index index.html index.htm index.php;

    server_name server_domain_or_IP;

    location ~ /\. { return 404; }
 
    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

其中预留了未来启用 SSL 的代码,ssl.conf 文件如下:

ssl_session_cache        shared:SSL:10m;
ssl_session_timeout      10m;

ssl_session_tickets      on;

ssl_stapling             on;
ssl_stapling_verify      on;
#ssl_trusted_certificate /path/to/pem;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:ECDHE-RSA-AES128-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA128:DHE-RSA-AES128-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA128:ECDHE-RSA-AES128-SHA384:ECDHE-RSA-AES128-SHA128:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA384:AES128-GCM-SHA128:AES128-SHA128:AES128-SHA128:AES128-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;

记得将 /etc/nginx/sites-available 中的配置软链接到 /etc/nginx/sites-enabled,以启用该配置。

LNMP默认目录

Nginx

配置:/etc/nginx

网站:/var/www

MySQL

配置:/etc/mysql

数据:/var/lib/mysql

PHP

配置:/etc/php/7.0

常用命令

ubuntu 16.04 使用 systemctl 管理服务。

LNMP 中 service 名称分别为 nginx、mysql、php7.0-fpm

启动:systemctl start service

停止:systemctl stop service

重载:systemctl reload service

重启:systemctl restart service

查看状态:systemctl status service

开启自启动:systemctl enable service

关闭自启动:systemctl disable service

如重载 Nginx 可执行:

systemctl reload nginx

查看 PHP 状态可执行:

systemctl status php7.0-fpm

通过 apt 直接安装,除了能够更快速的完成服务器配置、安装干净外,后期也更加便于维护。

Coxxs

参考文章:https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-in-ubuntu-16-04

感谢 orzFly 提供的帮助。

2017-5-9:移除 cgi.fix_pathinfo 修改部分,因为在新版 php-fpm & nginx 的默认配置中已没有漏洞

《Ubuntu 16.04 快速配置 LNMP(LEMP) 环境》有1个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注