如何托管网站(设置自己的服务器的指南)

如何创建服务器


要在服务器上托管网站,您需要动手操作并自行设置整个环境。在下面,您将找到一个通用示例,说明如何使用运行中的虚拟专用服务器来完成工作 Ubuntu 18.04

简而言之,您需要:

    • 执行初始服务器设置
    • 设置DNS区域并指向您的域
    • 安装软件堆栈
    • 创建一个虚拟主机
    • 启动您的网站并开始运营

附言如果您不想执行这些复杂的步骤,请考虑使用虚拟主机.

1.第一个服务器设置步骤

如果您决定租用专用服务器或VPS,则首先需要打下坚实的基础。这涉及通过终端或SSH客户端访问服务器,并进行安全调整和更新。.

连接到您的服务器

首先连接到服务器。以下命令可以解决问题:

ssh [受电子邮件保护] _server_IP-端口

首次连接时,系统可能会提示您将服务器IP添加到已知主机列表中。输入 继续,然后系统会提示您输入 根密码.

将服务器IP添加到已知主机

这是如果一切正常的话您应该在屏幕上看到的示例.

初始Ubuntu SSH登录屏幕

获取最新更新

运行以下命令以获取您的Ubuntu 18.04服务器的最新更新:

sudo apt更新
sudo apt升级

运行第二个命令时,您会看到一个确认屏幕。输入 ÿ 继续.

确认服务器更新Ubuntu

创建一个新用户

接下来,您需要添加一个新用户,因为不建议将root用户用于日常任务。我们称其为网站管理员。要开始创建用户,请执行:

adduser网站管理员

创建一个新用户Ubuntu

创建密码后,系统将提示您输入常规详细信息(可以将其留为空白)。然后输入 ÿ 确认新用户创建.

默认情况下,新用户没有足够的权限来执行所需的所有操作,因此您需要手动添加它们。方法如下:

usermod -aG sudo网站管理员

而已!您的新管理用户已准备就绪。要开始使用它而不是root,请执行:

su –网站管理员

更改系统用户

设置公钥身份验证(可选)

使用密码进行身份验证会使您容易遭受暴力攻击,并使服务器处于中等风险(尤其是如果您懒于设置唯一且安全的密码).

提高服务器完整性的一种好方法是使用SSH密钥而不是常规密码。无论您运行的是哪个Linux发行版,步骤都应该相同。开始 登出 服务器并在您的服务器上执行以下命令 本地电脑 创建一个新的公钥:

ssh-keygen

系统会要求您输入其他密码以及保存公钥的位置。默认情况下,它将所有内容保存到 /用户/您的用户/.ssh 目录(除非有其他计划,否则可以保留).

运行SSH Keygen

完成后,请使用以下命令将SSH密钥复制到您的服务器:

ssh-copy-id [受电子邮件保护] _server_IP

为了以防万一,您还可以对root用户执行相同的操作:

ssh-copy-id [受电子邮件保护] _server_IP

将SSH密钥移至远程服务器

最后,您需要再次登录服务器。仅这次,您将使用SSH密钥及其密码短语进行身份验证。如果有人猜到您的密码,则他们将无法登录,因为需要使用公钥才能成功建立连接.

使用SSH密钥登录服务器

禁用密码身份验证(可选)

由于您现在可以使用新生成的SSH密钥访问服务器,因此建议禁用常规密码身份验证。为此,我们可以使用 纳米 文本编辑器:

须藤nano / etc / ssh / sshd_config

查找说#PasswordAuthentication是的行,删除 并更改 到一个 没有. 最终结果应如下所示:

在sshd配置中禁用密码认证

要保存这些更改并退出nano编辑器,请按 Ctrl + X, 输入 ÿ 然后按 输入. 最后,通过重新加载sshd服务来应用所有内容:

须藤systemctl重新加载sshd

就是这样!现在,您将使用公共密钥而不是密码进行身份验证,这被认为是访问和管理服务器的一种更安全的方法。.

设置防火墙

最后但并非最不重要的一点是,建议使用防火墙来保护自己免受潜伏在网络中的危险。简单的防火墙是完成这项工作的最佳工具之一。要设置它,执行:

须藤apt-get install ufw

安装后,除非手动打开防火墙,否则防火墙将无法工作。您可以使用以下方法启用它:

sudo ufw启用

启用ufw Ubuntu

要检查它是否已启动并正在运行,请执行以下操作:

sudo ufw状态详细

2.设置DNS区域

下一个挑战将是创建DNS区域,该区域充当域名和服务器之间的绑定材料。我们可以将其分为两个较小的步骤:

  1. 在服务器内设置DNS区域
  2. 在您的域名注册机构中创建自定义名称服务器

创建一个新的DNS区域

要创建新的DNS区域,我们将使用一个名为bind9的工具。最后,这项服务使我们可以通过域名而不是IP地址加载网站.

要在您的Ubuntu 18.04服务器上安装Bind9,请执行:

须藤apt-get install bind9

安装后,所有文件都将在 / etc / bind 目录。让我们先导航到它:

cd / etc / bind

为了使所有内容保持整洁有序,我们将为DNS区域创建一个单独的目录:

sudo mkdir -p区域

让我们为我们的域创建一个新的DNS区域文件。我们将使用 domain-example.com 出于演示目的(您应将其替换为实际域名).

须藤纳米区/ domain-example.com

DNS区域代码段示例:

;
;域-example.com的BIND数据文件
;
$ TTL 3小时
@ IN SOA ns1.domain-example.com。 admin.domain-example.com。 (
1个序列号
3小时; 3小时后刷新
1小时; 1小时后重试
1w; 1周后过期
1h); 1天负缓存TTL
;
@ IN NS ns1.domain-example.com.
@ IN NS ns2.domain-example.com.

domain-example.com。在一个YOUR_SERVER_IP中
ns1在YOUR_SERVER_IP中
ns2在YOUR_SERVER_IP中
www in CNAME domain-example.com.
在一个YOUR_SERVER_IP中发送邮件
在CNAME中输入ftp domain-example.com.
domain-example.com。在MX 10 domain-example.com中.

确保替换您的所有实例 Your_Server_IPdomain-example.com 与实际值。通过按保存区域文件 Ctrl + X 然后输入 ÿ 确认更改.

接下来,我们需要编辑本地配置并指定新创建的DNS区域的位置。这样可以确保服务器知道哪个区域文件属于哪个域名.

须藤纳米named.conf.local

替换时将以下行粘贴到文件底部 domain-example.com 使用您的实际网站地址.

区 "domain-example.com" {
型主
文件 "/etc/bind/zones/domain-example.com";
};

Ctrl + X 和输入 ÿ 保存更改并退出纳米编辑器.

您还可以通过执行以下命令测试是否已正确添加和配置了所有内容:

sudo named-checkzone domain-example.com /etc/bind/zones/domain-example.com

验证dns区域

最后,运行以下两个命令以重新启动服务器的DNS服务并确保其正在运行:

sudo /etc/init.d/bind9重新启动
sudo /etc/init.d/bind9开始

至此,DNS区域已从服务器端准备就绪。要最终确定,您需要在域注册商中创建自定义名称服务器条目.

为您的域创建自定义名称服务器

由于我们指定了两个名称服务器(ns1.domain-example.comns2.domain-example.com)在我们的DNS区域示例中,我们需要在域注册商处创建这些条目并使用它们.

条目的外观如下:

自定义名称服务器 指着
ns1.domain-example.com Your_Server_IP
ns2.domain-example.com Your_Server_IP

子名称服务器创建

创建完成后,您需要将您的域指向这些新的名称服务器.

更新名称服务器

3.安装LAMP堆栈

LAMP是网络上最常用的软件堆栈之一。它是Linux,Apache HTTP Server,MySQL / MariaDB和PHP的缩写。托管网站之前,您需要确保服务器上所有这些成分都可用。使用Ubuntu 18.04的设置过程如下所示:

阿帕奇

服务器随附的默认软件包中可能已包含Apache HTTP Server。如果不是,则执行:

须藤apt-get install apache2

安装Apache

由于存在防火墙,我们需要确保这些端口已打开,否则Apache将无法正常工作。这是您应允许通过防火墙的内容:

sudo ufw允许80 / tcp
sudo ufw允许443 / tcp

然后,重新启动它以确保已应用更改:

sudo ufw重新加载

此时,您应该通过访问以下页面来查看 您服务器的IP地址 通过浏览器:

默认的Apache2页面

的PHP

要获得最新的PHP版本以及WordPress需要的一些其他模块,请执行以下命令:

须藤apt-get install php php-common php-mysql php-gd php-cli

确认PHP安装

您可以通过键入以下命令检查服务器上安装了哪个PHP版本:

的PHP -V

检查PHP版本

MySQL / MariaDB

MariaDB和MySQL是Linux中数据库服务器的两个首选。在此示例中,我们将使用MariaDB。要将其安装在服务器上,请执行:

sudo apt-get install mariadb-server mariadb-client

安装Mariadb

完成后,您需要使用该软件包随附的其他脚本。它将为您的数据库服务器建立基本的安全措施。通过键入以下内容启动它:

须藤mysql_secure_installation

第一步,将要求您提供MySQL的根密码。按下 输入 按钮继续,因为尚未创建。然后按照命令行界面中弹出的其余说明进行操作.

Mariadb安全安装

最后,您可以通过运行以下命令检查我的数据库服务器是否可运行:

sudo systemctl状态mysql

4创建虚拟主机

下一个任务是为您的网站文件创建一个专用目录。首先更改您的工作目录:

cd / var / www / HTML

使用此命令为您的域创建一个文件夹,并在其中创建一个文件夹:

须藤mkdir -p domain-example.com/public_html

然后,使 网站管理员 我们先前通过以下方式创建所有者的用户:

sudo chown -R网站管理员:网站管理员domain-example.com/public_html

您还需要确保将读取权限应用于Apache根目录。在这种情况下:

须藤chmod -R 755 / var / www / html /

此时,Apache从以下位置获取所有设置: 000-default.conf 文件。我们需要复制此文件的内容,并为我们的域名创建一个单独的文件。复制虚拟主机配置模板的最简单方法是使用以下命令:

须藤cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domain-example.com.conf

本质上,这将在同一目录中以其他名称复制文件。该文件告诉您的Apache Web服务器域的根目录,错误日志和其他重要路径的位置。要更改其内容,我们将使用nano:

须藤纳米/etc/apache2/sites-available/domain-example.com.conf

Apache配置示例:

#ServerName指令设置请求方案,主机名和端口
#服务器用来标识自己的身份。在创建时使用
#重定向URL。在虚拟主机的上下文中,ServerName
#指定必须在请求的Host:标头中显示的主机名
#匹配此虚拟主机。对于默认的虚拟主机(此文件),此
#值不是决定性的,因为它用作最后的主机,无论.
#但是,必须为任何其他虚拟主机显式设置它.

ServerAdmin [受电子邮件保护]
DocumentRoot /var/www/html/domain-example.com/public_html
ServerName domain-example.com
ServerAlias www.domain-example.com

#可用的日志级别:trace8,…,trace1,调试,信息,通知,警告,
#错误,暴击,警报,emerg.
#也可以配置特定的日志级别
#个模块,例如.
#LogLevel info ssl:warn

错误日志$ {APACHE_LOG_DIR} /error.log
CustomLog $ {APACHE_LOG_DIR} /access.log合并

#对于conf-available /中的大多数配置文件,它们是
#在全局级别启用或禁用,可以
#仅对一个特定的虚拟主机包含一行。例如
#以下代码行仅为此主机启用CGI配置
#在以下位置被全局禁用后 "a2disconf".
#include conf-available / serve-cgi-bin.conf

确保用您的实际域名替换domain-example.com的所有实例。要保存文件,请按 Ctrl + X 并通过输入进行确认 ÿ. 最终结果应如下所示:

将域配置添加到Apache

此时,您需要关闭默认的虚拟主机配置文件并使用新创建的文件。此命令将禁用它:

须藤a2dissite 000-default.conf

然后,添加新创建的配置文件,如下所示:

须藤a2ensite domain-example.com.conf

最后,您需要重新启动Apache才能应用更改。您可以通过运行以下命令进行操作:

sudo systemctl重新加载apache2

您已在服务器上成功安装了LAMP。由于您的域已经指向服务器,因此您可能需要等待几个小时,DNS才能完全传播。然后,通过浏览器访问您的域时,您应该会看到类似的屏幕.

域根目录内容

5.设置WordPress(或上传网站)

由于初始服务器设置终于完成,因此可以在其上托管网站了。在本节中,我们将向您展示如何启动和运行WordPress网站的一般示例。.

创建一个新的MySQL数据库和用户

首先通过终端访问MySQL接口:

须藤MySQL

>使用以下语法创建新数据库:

创建数据库wpdatabase;

然后,创建一个新用户并指定密码:

创建用户’wpuser’@’localhost’由’SuperSecurePassword123’标识;

接下来,使用以下命令为新创建的用户分配管理特权:

将所有特权授予wpdatabase。*至’wpuser’@’localhost’;

而已!您的MySQL用户和数据库已准备好采取行动。要关闭界面,请输入:

出口

将WordPress文件移动到您的服务器

最后但并非最不重要的一点是,我们必须将实际的网站文件上传到您域的根目录。我们将逐步介绍两种方法:

  • 使用wget命令获取最新的WordPress版本
  • 配置FTP客户端(例如FileZilla)

方法1:使用命令行工具

第一种方法是使用名为 get. 要在服务器上使用它,您必须安装它:

sudo apt-get安装wget

然后,将工作目录更改为域名的根文件夹:

cd /var/www/html/domain-example.com/public_html

使用wget命令从网上下载最新版本的WordPress:

wget https://www.wordpress.org/latest.zip

然后,使用以下命令提取存档的所有内容:

解压缩Latest.zip

默认情况下,所有文件都会出现在名为 WordPress的 (这可能导致您的网站通过 domain-example.com/wordpress)。为了使所有文件正常工作,我们需要将所有文件从该目录中移至上面的目录。方法如下:

cd wordpress

以下命令会将所有文件从当前目录移动到您指定的位置:

sudo mv * /var/www/html/domain-example.com/public_html/

开始安装之前,您需要准备wp-config.php文件。由于仅提供一个样本。从重命名开始:

须藤MV wp-config-sample.php wp-config.php

然后,使用nano编辑文件并添加MySQL数据库配置详细信息.

须藤纳米wp-config.php

确保更新 的MySQL 用户, 数据库, 和 主办 具有先前创建的值的部分.

编辑WP配置

最后,在浏览器中访问您的域名,您将看到初始的WordPress设置屏幕.

初始WordPress设置

完成后,您可以安装迁移插件(例如,多合一WP迁移)以导入现有的WordPress网站。.

方法2:使用FTP客户端

或者,您可以使用FTP客户端,例如FileZilla。如果您配置了SSH密钥并禁用了密码身份验证,则需要使用它(而不是常规的用户名和密码组合)登录。要配置SFTP连接:

  1. FileZilla网站管理员 并添加一个 新网站.
  2. 将协议设置为 SFTP – SSH文件传输协议.
  3. 在输入您的服务器IP 主办 字段并将端口设置为 22.
  4. 将登录类型设置为 密钥文件.
  5. 指定SSH密钥的路径(例如. /用户/名称/.ssh/id_rsa).
  6. FileZilla会将其转换为 .ppk 文件,然后可以用来建立连接.

转换SSH密钥

最终配置应如下所示:

FileZilla sftp配置

现在,您将可以通过FTP访问服务器并直接从计算机上载任何文件.

FileZilla sftp连接

恭喜你!您已经了解了如何在运行Ubuntu 18.04的虚拟专用服务器上托管网站。从初始服务器设置到准备软件堆栈的所有内容均已涵盖。剩下的就是拿起服务器并使您的手变脏!

本文是在Hostinger.com的帮助下发布的.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me

About the author

Adblock
detector