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 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
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 的默认配置中已没有漏洞

2017-10-4:更新 ssl_ciphers 部分。

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

发表评论

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