使用VPS来搭建一个可供建站的LNMP(Linux,Nginx,MariaDB,PHP)环境

今天这篇文章,小陈笔记将会教大家如何快速地搭建一个可供建站的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
phpmyadmin安装页面1

在这个界面里,请按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

发表评论

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