# Root 安装 (OpenLiteSpeed)

本指南适用于 Ubuntu 20.04(LTS)x64,它将向您展示如何在 Ubuntu 上使用 OpenLiteSpeed Web 服务器设置 Chevereto

example.com 替换为您自己的域名 将 host.example.com 的 A 记录指向您的服务器 IP

# 准备系统

在开始之前,请确保基本系统已更新

sudo apt update && sudo apt upgrade

# 设置主机名

更改 Ubuntu20.04 上的主机名是一个相当简单的过程,只需要几个步骤。 静态域名和临时域名建议使用 host.example.com 这样的全限定域名 (FQDN)。 首先,检查您当前的主机名,使用 hostnamectlhostname 命令:

hostnamectl

更改系统主机名是一个简单的过程,语法如下:

sudo hostnamectl set-hostname host.example.com

**注意:**在同一网络的两台不同机器上不能使用相同的主机名。

在大多数系统中,主机名被映射到 /etc/hosts 中的 127.0.0.1,打开文件,将旧的 hostname 更改为新的 hostname

/etc/hosts
127.0.0.1   localhost
127.0.0.1   host.example.com

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

如果您在云实例上运行 Ubuntu,并且安装了 cloud-init 包,您还需要编辑 /etc/cloud/cloud.cfg 文件。 此包通常默认安装在云提供商提供的镜像中,用于处理云实例的初始化。 如果系统上存在该文件,请打开它:

sudo nano /etc/cloud/cloud.cfg

搜索 preserve_hostname,将 False 改为 true

# This will cause the set+update hostname module to not operate (if true)
preserve_hostname: true

保存文件并关闭编辑器,让我们验证更改:

hostnamectl

您的新主机名将显示在终端上:

   Static hostname: host.example.com
   Pretty hostname: Chevereto's Webserver
         Icon name: computer-vm
           Chassis: vm
        Machine ID: l04e355243f3da4602326b7c41e87a07
           Boot ID: ba315474704409fb9872ef2bd32c52c1
    Virtualization: kvm
  Operating System: Ubuntu 20.04 LTS
            Kernel: Linux 5.4.0-26-generic
      Architecture: x86-64

**注意:**重启系统是可选步骤,不是必需的

sudo reboot

# 安装 OpenLiteSpeed

不幸的是,OpenLiteSpeed 不在 Ubuntu 20.04 官方资源库中,因此您需要在系统中添加 OpenLiteSpeed 官方资源库:

wget -O - http://rpms.litespeedtech.com/debian/enable_lst_debian_repo.sh | sudo bash

添加存储库后,现在通过刷新 APT 缓存并运行以下命令来安装应用程序:

sudo apt update
sudo apt install openlitespeed

# 安装 PHP 7.4

另外,安装针对 OpenLiteSpeed 的 PHP 7.4 支持的软件包,您可以通过运行以下命令来安装 PHP 7.4:

sudo apt install lsphp74 lsphp74-common lsphp74-mysql lsphp74-dev lsphp74-curl lsphp74-dbg lsphp74-imagick -y

现在,启用 PHP 7.4 对 OpenLiteSpeed 的支持,您将需要创建已安装程序包的符号链接:

sudo ln -sf /usr/local/lsws/lsphp74/bin/lsphp /usr/local/lsws/fcgi-bin/lsphp5

# 安全 MySQL 数据库 (MariaDB 10.5)

首先,我们必须导入 MariaDB GPK 密钥:

sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'

现在,您必须添加 MariaDB apt 存储库:

sudo add-apt-repository 'deb [arch=amd64] http://mariadb.mirror.globo.tech/repo/10.5/ubuntu focal main'
sudo apt update
sudo apt install mariadb-client mariadb-server

安装完成后,启动 MariaDB 服务并将其添加到自启动:

systemctl start mariadb
systemctl enable mariadb

首先,我们必须确保 MySQL 安装的安全,我们将对其使用 'MySQL_SECURE_INSTALLATION' 命令行工具:

mysql_secure_installation

设置您的超级用户密码,然后为其余配置键入“Y”:

Set a root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

进入 MySQL 控制台:

sudo mysql -u root

进入 MySQL 控制台后,您会看到一个 mysql> 提示符。运行以下语句:

CREATE DATABASE chevereto;
CREATE USER 'chevereto' IDENTIFIED BY 'enter_a_password_here';
GRANT ALL ON chevereto.* TO 'chevereto' IDENTIFIED BY 'enter_a_password_here';
quit

**注意:**您必须注意数据库名称、用户名和密码(其中为 enter_a_password_here ),这些详细信息将在后面进行说明

# 设置网站

现在,我们可以开始运行 OpenLiteSpeed,以一种非常快速和舒适的方式管理 Web 服务器, 图形界面通过端口 7080 工作并且需要用户名和密码, 因此,我们需要为 OpenLiteSpeed 仪表板设置用户和密码身份验证。 进入 /usr/local/lsws/admin/misc/ 目录,运行 bash 脚本 admpass.sh,如下所示。

cd /usr/local/lsws/admin/misc/
sh admpass.sh

输入您的用户名和密码,就完成了 OpenLiteSpeed 身份验证的配置。 之后,你可以访问 OpenLiteSpeed 网页界面。打开你最喜欢的网页浏览器,进入 http://server-ip:7080。 在 OpenLiteSpeed 仪表板中,点击左侧的 服务器配置 菜单,点击 外部应用 选项卡。 要添加新的 PHP 7.4 配置,请点击右侧的添加 + 按钮。 类型选择 LiteSpeed SAPI App,点击 下一步 按钮。 现在键入详细配置,如下所示:

Name: lsphp74
Address: uds://tmp/lshttpd/lsphp.sock
Notes: lsphp74 for OpenLiteSpeed
Max Connections: 35
Initial Request Timeout (secs): 60
Retry Timeout (secs): 0
Command: $SERVER_ROOT/lsphp74/bin/lsphp

点击 '保存' 按钮,即可添加 PHP 7.4 配置。 接下来,我们将 OpenLiteSpeed 的默认 PHP 修改为 PHP 7.4 版本,在 服务器配置 菜单中,点击 脚本处理程序 标签。 现在点击操作部分的 '编辑' 按钮,在 处理程序名称上,选择我们刚刚添加的 lsphp74,然后点击 '保存' 按钮。

因此,您已经为 OpenLiteSpeed 添加并启用了 PHP 7.4 配置,现在我们必须在端口 80 上设置 OpenLiteSpeed,默认情况下,OpenLiteSpeed 在默认端口 '8088'上运行。要在默认的 http 端口 '80'上运行 OpenLiteSpeed,我们可以使用管理仪表板更改配置,导航到 OpenliteSpeed 仪表板,单击左侧的 Listener 菜单。

Default 监听器上点击 view 按钮,然后在 Address Settings 部分点击右侧的 edit 按钮,输入详情配置如下:

Listener Name: Default
IP Address: ANY
Port: 80

保存后,单击仪表板中的重新启动按钮,现在我们在 80 端口上运行 OpenLiteSpeed,打开 Web 浏览器并在地址栏中输入服务器 IP 地址,您应该会看到 OpenLiteSpeed 的默认索引页。

现在是设置虚拟主机的时候了,因为首先我们必须为我们的网站创建目录:

sudo mkdir /usr/local/lsws/example.com/{html,logs} -p

html 目录包含公共文件,而 logs 目录包含服务器日志。

接下来,导航到 OpenLiteSpeed 仪表板,从左侧进入 Virtual Hosts 部分,点击 Add 按钮,输入如下图所示的值:

Virtual Host Name: example.com
Virtual Host Root: $SERVER_ROOT/example.com/
Config File: $SERVER_ROOT/conf/vhosts/$VH_NAME/vhconf.conf
Follow Symbolic Link: Yes
Enable Scripts/ExtApps: Yes
Restrained: Yes
External App Set UID Mode: Server UID

单击保存按钮,完成后,您将看到以下错误:

⚠ file /usr/local/lsws/conf/vhosts/example.com/vhconf.conf does not exist. CLICK TO CREATE

由于配置文件暂时不存在,请点击链接,在 CLICK TO CREATE 下创建配置文件。 再次点击保存按钮,完成虚拟主机的创建,虚拟主机创建完成后,进入 虚拟主机>选择虚拟主机(example.com)>通用进行配置更改。

Document Root: $VH_ROOT/html/
Domain Name: example.com
Enable Compression: Yes

完成后点击保存按钮,接下来我们需要设置索引文件,点击 General 部分下 Index files 下的编辑按钮,设置以下选项:

Use Server Index Files: No
Index files: index.php, index.html, index.htm
Auto Index: No

完成后点击保存,下一步我们要选择日志文件,进入 日志 部分,在 虚拟主机日志 中点击编辑,输入下列值:

Use Server’s Log: Yes
File Name: $VH_ROOT/logs/error.log
Log Level: ERROR
Rolling Size (bytes): 10M

**注意:**如果您在生产/开发服务器上,可以选择调试日志级别。

单击保存,然后单击 访问日志 部分中的加号以添加新条目,请输入下列值:

Log Control: Own Log File
File Name: $VH_ROOT/logs/access.log
Piped Logger: Not Set
Log Format: Not Set
Log Headers: Not Set
Rolling Size (bytes): 10M
Keep Days: 30
Bytes log: Not Set
Compress Archive: Yes

完成后点击保存,接下来我们需要在 Security 部分配置 Access Control,设置如下值:

Allowed List: *
Denied List: Not set

完成后点击保存,下一步我们需要定义 脚本处理程序 的定义,设置如下值:

Suffixes: php
Handler Type: LiteSpeed SAPI
Handler Name: [Server Level]: lsphp74

接下来我们需要在 Rewrite section 中设置 Rewrite Control,设置如下值:

Enable Rewrite: Yes
Autoload from .htaccess
Log level: Not Set

现在我们需要在Rewrite section中编辑 伪静态规则,将 Chevereto 的 .htaccess 放在那里并保存。

接下来,我们需要设置 Listeners,为此,请转到 Listeners section,点击 View on Default Listeners 按钮,然后点击 Virtual Host Mappings 下的 Add 按钮,添加一个新的映射,并设置下列值:

Virtual Host: example.com
Domains: example.com

完成后单击 Save,现在单击 Graceful Restart 按钮以应用以上所有更改并重新启动服务器。

# 设置 SSL

在 OpenLiteSpeed 中设置 SSL 需要设置两个证书,一个是整个服务器的自签名证书,另一个是加密特定位置的服务器证书,让我们先创建自签名证书:

openssl req -x509 -days 365 -newkey rsa:4096 -keyout key.pem -out cert.pem -nodes

为了能够使用 Let's Encrypt,我们必须安装 Certbot 工具:

sudo apt install certbot

获取网站的 SSL 证书:

sudo certbot certonly --webroot -w /usr/local/lsws/example.com/html/ -d example.com

**注意:**按照互动提示操作。

现在导航到 OpenliteSpeed 仪表板,进入 Listeners>>Add New Listener,然后添加以下值:

Listener Name: SSL
IP Address: ANY
Port: 443
Secure: Yes

完成后点击保存,点击 SSL 进入SSL listener下的 Virtual Host Mappings部分,点击添加按钮,输入下列值:

Virtual Host: example.com
Domains: example.com

完成后点击保存,进入 Listeners>SSL Listener>SSL Tab>SSL私钥与证书(编辑按钮),为我们之前创建的自签名证书输入以下值:

Private Key File: /srv/self-signed/key.pem
Certificate File: /srv/self-signed/cert.pem
Chained Certificate: Yes

将自签名证书从根目录移动到另一个目录:

sudo mkdir /srv/self-signed
mv key.pem cert.pem /srv/self-signed

接下来,进入 虚拟主机>>example.com>>SSLTab>>私有SSL密钥与证书 (编辑按钮),在我们的加密证书中填写以下值:

Private Key File: /etc/letsencrypt/live/example.com/privkey.pem
Certificate File: /etc/letsencrypt/live/example.com/fullchain.pem
Chained Certificate: Yes

完成后单击“保存”,单击“正常重启”按钮重新启动服务器,现在您应该已经在网站上成功安装了 LetsEncrypt 证书。

在我们完成 Chevereto 的基于 Web 的设置过程之前,我们需要调整 Chevereto 目录中的一些条目,首先将目录中所有文件的所有权授予用户 NOTERO 和组 nogroup,OpenLiteSpeed web 服务器默认运行该用户和组nogroup。以下 chown 命令授予 OpenLiteSpeed 读取和写入 Chevereto 目录中的文件的能力,以便它可以为网站提供服务并自动执行更新:

chown -R nobody:nogroup /usr/local/lsws/example.com/

要更改 php.ini 文件并增加上传限制,您必须在 /usr/local/lsws/lsphp74/etc/php/7.4/litespeed/php.ini 中更改以下值:

upload_max_filesize = 20M
post_max_size = 20M
max_execution_time = 30
memory_limit = 512M