Ubuntu 20.04 快速配置 LNMP 笔记

低配的服务器采用编译安装会非常慢,本文采用 Ubuntu 的 apt 包管理器进行快速安装,干净高效。

更新源

做下面所有事之前一定要先更新源,否则过期源会导致安装失败

1
sudo apt update

nginx 安装

1
sudo apt install nginx

MySQL 安装

1
sudo apt install mysql-server mysql-client

安装过程中需设置 MySQL 的 root 密码

对 MySQL 进行初始化

1
sudo mysql_secure_installation

PHP和相关扩展安装

1
sudo apt install php php-cli php-fpm php-json php-common php-mysql php-zip php-gd php-mbstring php-curl php-xml php-xmlrpc php-pear php-bcmath php-opcache php-imap php-bz2 -y

简易配置

修改 nginx 默认站点配置,路径:/etc/nginx/sites-available/default

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# Default server configuration
#
server {
    listen 80 default_server;
    listen [::]:80 default_server;

    # 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/html;
    index index.html index.htm index.php;
    server_name _;

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

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

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

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

1
2
3
4
5
6
7
8
9
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;

配置完记得重启下 nginx

1
systemctl restart nginx

phpMyAdmin 安装

1
sudo apt install phpmyadmin

安装过程会弹出一个选择框,因为我们不是 Apache 环境,所以使用 TAB 键跳过,直接选择 OK ,会安装在以下目录

1
/usr/share/phpmyadmin/

因为 apt 上的 phpMyAdmin 版本比较旧,对 PHP 7.2 和 MySQL 5.7 支持不太好,所以我们直接将整个目录删除,去 phpMyAdmin 的官网(https://www.phpmyadmin.net/)下载最新版本,直接上传覆盖到该目录,然后输入软链接命令

1
sudo ln -s /usr/share/phpmyadmin/ /var/www/html/phpmyadmin

打开浏览器,输入 网站路径/phpmyadmin/setup/ ,按照提示对 phpMyAdmin 进行配置,配置完毕后会生成 config.inc.php 文件,将其上传到 phpMyAdmin 安装路径,并在该路径建立 tmp 文件夹 并设置该文件夹权限为 777

LNMP默认目录

nginx

配置路径:/etc/nginx/

网站路径:/var/www/

MySQL

配置路径:/etc/mysql/

数据路径:/var/lib/mysql/

PHP

配置路径:/etc/php/7.2/

phpMyAdmin

安装路径:/usr/share/phpmyadmin/

网站目录

存放路径:/var/www/

nginx存放配置路径:/etc/nginx/sites-available/

nginx启用配置路径:/etc/nginx/sites-enabled/

(使用 ln -s 将 sites-available 软链接到 sites-enabled 并 systemctl reload nginx 重启 nginx 服务,即可启用新网站)

常用命令

Ubuntu 可以使用 service 命令管理服务。

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

启动:service {service-name} start

停止:service {service-name} stop

重载:service {service-name} reload

重启:service {service-name} restart

查看状态:service {service-name} status

开启自启动:service {service-name} enable

关闭自启动:service {service-name} disable

如重载 nginx 和 PHP 服务:

1
2
service nginx reload
service php7.4-fpm reload

参考

https://coxxs.me/405

Postfix 插件的配置

https://bbs.aliyun.com/read/161211.html

https://www.linode.com/docs/email/postfix/email-with-postfix-dovecot-and-mysql/