Rocky Linux 8 使用 PHP 安装和配置 Caddy Web 服务器

Caddy 是一个用 Go 语言编写的免费、开源、轻量级的现代 Web 服务器。 我们可以将 Caddy 用作文件服务器、动态服务器和可扩展的反向代理。 我们可以通过插件扩展服务器功能。 Caddy 具有广泛的功能,其中一些功能如下所列:

  • 虚拟主机
  • 通过 Let’s Encrypt 自动 HTTPS
  • 支持 HTTP/2
  • 可通过插件扩展
  • 在没有任何外部依赖项的情况下运行

在这篇文章中,我们将向我们展示 Rocky Linux 8 上安装支持 PHP 的 Caddy Web 服务器。

先决条件

  • 在 云平台上运行 Rocky Linux 8 的服务器
  • 在我们的服务器上配置的 root 密码

第 1 步 – 创建 云服务器

首先,登录到我们的 云服务器。 创建一个新服务器,选择 Rocky Linux 8 作为至少 2GB RAM 的操作系统。 通过 SSH 连接到我们的云服务器并使用页面顶部突出显示的凭据登录。

登录到服务器后,运行以下命令以使用最新的可用软件包更新基本系统。

dnf update -y

第 2 步 – 安装 Caddy Web 服务器

默认情况下,Caddy 包不包含在 Rocky Linux 8 默认存储库中,因此我们需要在系统中启用特殊存储库。

dnf install 'dnf-command(copr)'
dnf copr enable @caddy/caddy

启用存储库后,我们可以使用以下命令安装 Caddy Web 服务器:

dnf install caddy -y

安装 Caddy 后,使用以下命令验证 Caddy 版本:

caddy version

样本输出:

v2.4.6 h1:HGkGICFGvyrodcqOOclHKfvJC0qTU7vny/7FhYp9hNw=

接下来,启动 Caddy 服务并使其在系统重新启动时启动:

systemctl start caddy
systemctl enable caddy

现在,打开我们的 Web 浏览器并使用 URL http://wer-server-ip 访问 Caddy Web 服务器。 我们应该在以下屏幕上看到 Caddy 测试页面:
球童测试页面

第 3 步 – 在 Caddy 上创建新站点

首先,使用以下命令为新网站创建目录结构:

mkdir -p /var/www/example.com
mkdir /var/log/caddy

接下来,在新网站上设置适当的所有权:

chown caddy:caddy /var/www/example.com
chown caddy:caddy /var/log/caddy

接下来,为新网站创建一个 index.html 页面:

nano /var/www/example.com/index.html

添加以下行:




Caddy Web Server


This is my first web page on Caddy!

完成后保存并关闭文件。

第 4 步 – 创建虚拟主机配置文件

接下来,我们需要编辑 Caddy 配置文件来托管新网站。 我们可以使用以下命令对其进行编辑:

nano /etc/caddy/Caddyfile

删除所有行并添加以下行:

test.example.com:80 {
        root * /var/www/example.com
        file_server
        encode gzip

        log {
             	output file /var/log/caddy/example.access.log
        }

	@static {
                file
                path *.ico *.css *.js *.gif *.jpg *.jpeg *.png *.svg *.woff *.pdf *.webp
        }
	header @static Cache-Control max-age=5184000

}

完成后保存并关闭文件。 接下来,验证 Caddy 配置文件:

caddy validate --adapter caddyfile --config /etc/caddy/Caddyfile

我们应该看到以下输出:

2021/11/17 09:59:04.997	INFO	using provided configuration	{"config_file": "/etc/caddy/Caddyfile", "config_adapter": "caddyfile"}
2021/11/17 09:59:05.000	WARN	input is not formatted with 'caddy fmt'	{"adapter": "caddyfile", "file": "/etc/caddy/Caddyfile", "line": 27}
2021/11/17 09:59:05.000	INFO	http	server is listening only on the HTTPS port but has no TLS connection policies; adding one to enable TLS	{"server_name": "srv0", "https_port": 443}
2021/11/17 09:59:05.001	INFO	http	enabling automatic HTTP->HTTPS redirects	{"server_name": "srv0"}
2021/11/17 09:59:05.001	INFO	tls.cache.maintenance	started background certificate maintenance	{"cache": "0xc00057a8c0"}
2021/11/17 09:59:05.001	INFO	tls.cache.maintenance	stopped background certificate maintenance	{"cache": "0xc00057a8c0"}
Valid configuration

接下来,重新启动 Caddy 服务以应用更改:

systemctl restart caddy

我们还可以使用以下命令检查 Caddy 服务:

systemctl status caddy

我们将获得以下输出:

● caddy.service - Caddy
   Loaded: loaded (/usr/lib/systemd/system/caddy.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2021-11-17 10:00:23 UTC; 4s ago
     Docs: https://caddyserver.com/docs/
 Main PID: 20077 (caddy)
    Tasks: 6 (limit: 11411)
   Memory: 24.9M
   CGroup: /system.slice/caddy.service
           └─20077 /usr/bin/caddy run --environ --config /etc/caddy/Caddyfile

Nov 17 10:00:23 rockylinux systemd[1]: Started Caddy.
Nov 17 10:00:23 rockylinux caddy[20077]: {"level":"info","ts":1637143223.8054335,"logger":"tls.cache.maintenance","msg":"started background c>
Nov 17 10:00:23 rockylinux caddy[20077]: {"level":"info","ts":1637143223.8054764,"logger":"tls","msg":"cleaning storage unit","description":">
Nov 17 10:00:23 rockylinux caddy[20077]: {"level":"info","ts":1637143223.8055048,"logger":"tls","msg":"finished cleaning storage units"}
Nov 17 10:00:23 rockylinux caddy[20077]: {"level":"info","ts":1637143223.8060036,"logger":"tls.obtain","msg":"lock acquired","identifier":"ex>
Nov 17 10:00:24 rockylinux caddy[20077]: {"level":"error","ts":1637143224.0880945,"logger":"tls.obtain","msg":"could not get certificate from>
Nov 17 10:00:24 rockylinux caddy[20077]: {"level":"info","ts":1637143224.4512274,"logger":"tls.issuance.zerossl","msg":"generated EAB credent>
Nov 17 10:00:25 rockylinux caddy[20077]: {"level":"info","ts":1637143225.7558215,"logger":"tls.issuance.acme","msg":"waiting on internal rate>
Nov 17 10:00:25 rockylinux caddy[20077]: {"level":"info","ts":1637143225.755876,"logger":"tls.issuance.acme","msg":"done waiting on internal >
Nov 17 10:00:27 rockylinux caddy[20077]: {"level":"info","ts":1637143227.8956456,"logger":"tls.issuance.acme.acme_client","msg":"trying to so

现在,打开我们的 Web 浏览器并使用 URL http://test.example.com 访问 Caddy 网站。 我们应该在以下屏幕上看到我们的网站:
球童 HTML 页面

第 5 步 – 在 Caddy Web 服务器上启用 PHP 支持

首先,我们需要在服务器上安装 PHP 和其他必需的扩展。 我们可以使用以下命令安装所有这些:

dnf install php-fpm php-cli php-gd -y

安装所有软件包后,编辑 Caddy 配置文件:

nano /etc/caddy/Caddyfile

定义 php_fastcgi 位置,如下所示:

test.example.com:80 {
        root * /var/www/example.com
	php_fastcgi unix//run/php-fpm/www.sock
        file_server
        encode gzip

        log {
             	output file /var/log/caddy/example.access.log
        }

	@static {
                file
                path *.ico *.css *.js *.gif *.jpg *.jpeg *.png *.svg *.woff *.pdf *.webp
        }
	header @static Cache-Control max-age=5184000

}

保存并关闭文件,然后编辑 PHP-FPM 文件:

nano /etc/php-fpm.d/www.conf

更改以下行:

user = caddy
group = caddy
listen.acl_users = apache,nginx,caddy

保存并关闭文件,然后启动 PHP-FPM 服务并使其在系统重新启动时启动:

systemctl start php-fpm
systemctl enable php-fpm

接下来,创建一个示例 info.php 页面:

nano /var/www/example.com/info.php

添加以下行:


保存并关闭文件,然后打开 Web 浏览器并使用 URL http://test.example.com/info.php 访问 info.php 页面。 我们将获得以下页面:
球童 PHP 页面

在上面的指南中,我们解释了 Rocky Linux 8 上使用 PHP 安装 Caddy。Caddy 是 Apache 和 Nginx 的一个很好的替代品。 我们应该在生产环境中尝试它——从 开始使用我们的虚拟专用服务器!

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论