如何在Ubuntu VPS上新建/迁移网站并设置相关账号权限

操作说明

本文假定读者已经在Ubuntu VPS上安装MySQL数据库管理程序和Apache2,且有VPS的root权限,并在本地计算机上安装好了PuTTyFilezilla。作者在Digital Ocean的VPS上成功实现了本文的全部操作,其中VPS的操作系统为Ubuntu 20.04 (LTS) x64。

指令说明:

  • $后面的指令需要在VPS的Terminal以root权限执行;
  • >后面的指令是在VPS的MySQL中执行;
  • []中的内容需要读者编辑成自己的信息。

设置新用户

本节的目的是设置用来管理新网站的用户[newuser],其权限仅涉及该网站相关的文件夹。

$ mkdir /home/[root-folder] #新建新用户根目录
$ groupadd [newgroup] #添加新用户组
$ useradd –d /home/[root-folder] -g [newgroup] [newuser] #添加新用户newuser并设置其根目录为root-folder,属于组newgroup。

设置SSH登录

本节的目的是设置用来登录用户[newuser]的SSH Key。设置完成之后,就可以通过客户端(例如PuTTy)来登录用户[newuser]。

$ mkdir /home/[root-folder]/.ssh
$ nano /home/[root-folder]/.ssh/authorized_keys

PuTTygen生成新的SSH Key。复制公钥的文本(以ssh-rsa)开头,并粘贴到上一行新建的authorized_keys文件。然后

  • 先Ctrl+O保存;
  • 再回车确认;
  • 最后Ctrl+X退出文本编辑器nano。
$ chown -R [newuser]:[newgroup] /home/[root-folder]/ #设置新用户根目录的所有者和组

$ chmod 700 /home/[root-folder]/.ssh #设置SSH相关文件夹的权限
$ chmod 644 /home/[root-folder]/.ssh/authorized_keys #设置SSH 公钥文件的权限

设置数据库

本节的目的是设置网站的数据库[db_website]。

$ mysql #进入MySQL

如果需要迁移网站之前的数据库,可以导出格式为.sql的数据库文件,并使用Filezilla上传到主机上。

> CREATE DATABASE [db_website]; #新建名为[db_website]的数据库
> CREATE USER '[db_user]'@'localhost' IDENTIFIED BY '[password]'; #新建名为[db_user]、密码为[password]的数据库用户
> GRANT ALL PRIVILEGES ON [db_website].* to '[db_user]'@'localhost'; #把数据库[db_website]的全部权限授予用户[db_user]
> FLUSH PRIVILEGES; #刷新数据库权限
> use [db_website]; #进入数据库[db_website]
> source [file_path]/[file_name].sql; #把主机上的文件[file_path]/[file_name].sql导入数据库[db_website]
> exit;

上传网站内容到主机

先把网站内容的文件夹压缩,上传到主机上。假设文件位于[file_path]/[file_name].tar。

$ cd [file_path] #进入[file_path]目录
$ tar –xvf [file_name].tar #解压缩[file_name].tar文件

编辑网站数据库信息

在网站文件夹中找到和数据库相关的配置文件(具体位置对于不同框架的网站有区别),把其中数据库的信息改成前面的:

  • 数据库名称:[db_website]
  • 用户:[db_user]
  • 密码:[password]
  • 端口:localhost:3306

在Apache2中设置网站信息

本节的目的是在服务器软件Apache2中设置网站的信息。

$ chown -R [newuser]:[newgroup] /home/[root-folder] #如果使用root账号操作,可能重新设置一下/home/[root-folder]的用户和组
$ nano /etc/apache2/sites-available/[new_website].conf #新建新网站[new_website]的配置文件

编辑以下代码,加入自己网站的信息,并复制到[new_website].conf:

<VirtualHost *:80>
    ServerName [your_domain]
    ServerAlias www.[your_domain] 
    ServerAdmin webmaster@localhost
    DocumentRoot /home/[root-folder]/[website-folder]
    ErrorLog ${APACHE_LOG_DIR}/error.log 
    CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on 
RewriteCond %{SERVER_NAME} =[your_domain]
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

再编辑Apache2的配置信息:

$ nano /etc/apache2/apache2.conf #打开配置文件apache2.conf 

复制并粘贴以下代码,然后保存并关闭配置文件apache2.conf。

<Directory /home/[root-folder]>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

启用网站

$ a2ensite bdwm.club #启用网站
$ systemctl reload apache2 #重启Apache2以使得新配置生效

申请SSL证书

如果还没安装certbot,先安装:

$ apt-get install certbot

安装好之后,启动certbot,通过Let’s Encrypt服务申请SSL证书:

$ certbot --apache

发表评论

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