2020 Ubuntu 20.04 从零开始安装 LEMP

前言

本文假设读者有一定 Linux Server 基础。所以并不会对每一个命令进行解释。更多是对自己需要的记录。

本文适合你已经初始化完成了一台 Ubuntu 20.04 的 VPS。如果是第一次进入系统需要初始化。

命令说明

, $, # 皆是符号来作为命令行提示符

> // 表示在本地环境输入
$  // 表示在 VPS 环境下普通用户身份输入
#  // 表示在 VPS 环境下 root 用户身份输入
[] // 表示一个变量,需要替换为你自己的正确值

安装 Nginx Web 服务器

apt 安装 nginx

$ sudo apt update $ sudo apt install nginx

打开防火墙

$ sudo ufw allow 'Nginx HTTP'

检查防火墙状态

$ sudo ufw status

显示

Output
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
Nginx HTTP                 ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

Nginx 应该就搞定了。

验证安装

输入

https://[你的服务器IP地址]

到浏览器里面检查一下

如果看见类似提示,证明安装成功

如果忘记服务器的IP,可以这样获取到

$ curl -4 icanhazip.com
安装 MySQL
apt 安装

$ sudo apt install mysql-server
完成以后初始化MySql
$ sudo mysql_secure_installation
看到提示
Output

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No:

选 Y

看到提示

Output
There are three levels of password validation policy:

LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
看到提示
Output
Please set the password for root here.

New password:

Re-enter new password:
输入你的密码,大于8位且包含大小写字母,数字,特殊字符,字典文件。

接下来的提示内容可以无脑一路 Y 过去。
主要包括

默认设置里面包括一个匿名账户,建议输入“y”删除。
安全起见建议不允许root账户远程登录,仅允许root账户本地登录。
建议输入“y”删除名为“test”的测试数据库。
建议输入“y”并按回车键确定立即刷新权限。
修改 mysql 的root 用户登陆方式
root进入mysql

$ sudo mysql

在mysql里面查看用户权限信息

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

Output
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | | auth_socket | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

rows in set (0.00 sec)

修改 root 用户的权限方式

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '[你的mysql root密码]';
立即刷新权限
mysql> FLUSH PRIVILEGES;
再次查看用户权限信息
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

Output
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | | mysql_native_password | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
rows in set (0.00 sec)

可以看到 auth_socket 改为了 mysql_native_password。 成功!

退出mysql

mysql> exit
温馨提示
下次登陆 mysql root 用户
需要使用
$ mysql -u root -p
[你的mysql root密码]
安装 PHP 并 配置 Nginx 使用 PHP 进程
可能需要更新 apt 源
$ sudo add-apt-repository universe
如果显示
Output:
'universe' distribution component is already enabled for all sources.
那就源已经在了

安装 PHP

$ sudo apt install php-fpm php-mysql

创建一个 Nginx 的配置文件

$ sudo vim /etc/nginx/sites-available/example.com

/etc/nginx/sites-available/example.com 文件内容

server {
listen 80;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name [你的服务器IP地址];

location / {
try_files $uri $uri/ =404;
}

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

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

fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; 这一句注意你的PHP版本。

做软链接

$ sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

把默认的 default 软链接干掉

$ sudo unlink /etc/nginx/sites-enabled/default

nginx 配置文件语法检查

$ sudo nginx -t

重启 nginx

$ sudo service nginx restart

创建测试 PHP 文件

$ sudo vim /var/www/html/info.php

/var/www/html/info.php文件内容

<?php phpinfo();

测试

访问

https://[你的服务器IP地址]/info.php

如果看到类似网页,就成功了。

温馨提示 : 非特殊注明,否则均为©李联华的博客网原创文章,本站文章未经授权禁止任何形式转载;IP地址:52.14.17.240,归属地:俄亥俄州Dublin ,欢迎您的访问!
文章链接:https://www.ooize.com/2020-ubuntu-20-04-install-from-scratch-lemp.html
Popup Image

通知

本站原则上是免费提供技术支持,但是服务器维护和运营成本高,可以实行自由赞助:赞助

Loading...