今天这篇文章,小陈笔记将会教大家如何快速地搭建一个可供建站的LEMP环境(Linux,Nginx,MariaDB,PHP)
如果你想搭建的是LAMP(Linux,Apache,MariaDB,PHP)环境的话,请参考这篇文章:https://www.chensnotes.com/vps-lamp-environment.html
搭建VPS
我将以腾讯云中国站的香港地域轻量应用服务器(1核1G内存)做示范。
配置时区
如果时区没有被准确配置的话,那么日后数据库里面的时间可能会和当地的时间有所不同。
可以通过以下指令来查看当前主机的时区:
sudo timedatectl
腾讯云香港轻量应用服务器的默认时区是中国上海,所以如果人在东八区的话,其实没有修改的必要。
但如果想要修改时区的话,输入以下指令,就可以在出现的图形界面中选定服务器的时区:
sudo dpkg-reconfigure tzdata
一些初始化操作
建立一个非root账号,并给予其sudo权限:
sudo adduser chenpan
sudo usermod -aG sudo chenpan
修改防火墻配置
sudo ufw allow OpenSSH
sudo ufw enable
安装Nginx
sudo apt update
sudo apt install nginx
在安装完成之后,我们还得开放相应的服务器端口,才能让访问Nginx搭建的网站。
因为小陈笔记一贯支持https,所以在这里,我会同时开放80和443端口。
sudo ufw allow 'Nginx Full'
这样子通过https的请求,就能够被防火墙所通过。
我们可以通过以下指令来验证:
sudo ufw status
我们应该会看到:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
安装MariaDB
小陈笔记决定迁移到MariaDB,因此这篇文章也将以安装MariaDB为例。安装MySQL的方法大同小异。
sudo apt install mariadb-server
通过以上的指令,你就可以安装MariaDB了。如果你对安全有比较高的要求的话,也可以安装MySQL Secure组件(如果你想装phpmyadmin的话,请先不要安装MySQL Secure,请在phpmyadmin安装完毕之后再安装):
sudo mysql_secure_installation
建议创一个root权限的MySQL用户:
CREATE USER 'chenpan'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'chenpan'@'localhost';
FLUSH PRIVILEGES;
exit
安装PHP
安装PHP同样可以用一句指令完成:
sudo apt install php-fpm php-mysql
注意,这里我们需要安装的是php-fpm,这是因为Nginx不像Apache那样自带PHP编译器,所以Nginx必须借助php-fpm才可以处理请求。
建站
这样就算完成了LEMP(Linux,Nginx,MariaDB,PHP)环境的搭建。但是要怎么样才可以建站呢?
如果是单个用户的话,这里我推荐修改Nginx的用户(默认的是www-data),这样的好处是我们之后可以更加方便地管理权限。
修改Nginx的用户的话,需要打开修改以下文件:
sudo nano /etc/nginx/nginx.conf
把 user www-data;改为以下,保存并退出:
user chenpan;
(可选)安装phpmyadmin
我会建议大家安装phpmyadmin,这是一款能够让我们可视化地管理MariaDB的软件。
可以通过以下指令安装:
sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl
在这个界面里,请按TAB->ENTER,不要选择apache2或是lighttpd中的任意一个。
之后安装程序会叫用户提供一个密码给phpmyadmin,请输入一个安全可靠的密码。
安装完成之后,为了正常访问phpmyadmin,请输入以下指令:
sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
我将使用自己的域名phpmyadmin.chensnotes.com来访问phpmyadmin,因此我们在以下路径创建新的配置文档phpmyadmin.chensnotes.com:
sudo nano /etc/nginx/conf.d/phpmyadmin.chensnotes.com
输入以下内容:
server {
listen 80;
listen [::]:80;
server_name phpmyadmin.chensnotes.com;
#域名,请修改为自己的域名
root /usr/share/phpmyadmin/;
index index.php index.html index.htm index.nginx-debian.html;
access_log /var/log/nginx/phpmyadmin_access.log;
error_log /var/log/nginx/phpmyadmin_error.log;
location / {
try_files $uri $uri/ /index.php;
}
location ~ ^/(doc|sql|setup)/ {
deny all;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
include snippets/fastcgi-php.conf;
}
location ~ /\.ht {
deny all;
}
}
重新载入Nginx:
sudo systemctl reload nginx
然后就可以通过以下链接访问phpmyadmin了:
http://phpmyadmin.chensnotes.com
SSH加密
sudo apt install python3-certbot-nginx
sudo certbot --nginx -d phpmyadmin.chensnotes.com