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

Caddy 是一个免费的开源 Web 服务器,用于在 Internet 上托管网站和应用程序。 它是一个用 Go 语言编写的简单、轻量级、现代的 Web 服务器。 Caddy 可以用作文件服务器、动态服务器和可扩展的反向代理。 它提供了许多插件来帮助我们扩展服务器功能。 Caddy 提供了一组丰富的功能,包括 HTTP/2 支持、虚拟主机支持、Let’s Encrypt SSL 支持、无依赖的代码库等等。

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

先决条件

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

第 1 步 – 创建 云服务器

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

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

dnf update -y

第 2 步 – 在 Oracle Linux 8 上安装 Caddy Web 服务器

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

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

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

dnf install caddy -y

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

caddy version

样本输出:

v2.5.1 h1:bAWwslD1jNeCzDa+jDCNwb8M3UJ2tPa8UZFFzPVmGKs=

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

systemctl start caddy
systemctl enable caddy

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

systemctl status caddy

我们应该看到以下输出:

● caddy.service - Caddy
   Loaded: loaded (/usr/lib/systemd/system/caddy.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2022-06-28 07:07:28 EDT; 7s ago
     Docs: https://caddyserver.com/docs/
 Main PID: 1784 (caddy)
    Tasks: 5 (limit: 11409)
   Memory: 14.5M
   CGroup: /system.slice/caddy.service
           └─1784 /usr/bin/caddy run --environ --config /etc/caddy/Caddyfile

Jun 28 07:07:28 oraclelinux8 caddy[1784]: JOURNAL_STREAM=9:27345
Jun 28 07:07:28 oraclelinux8 caddy[1784]: {"level":"info","ts":1656414448.1275246,"msg":"using provided configuration","config_file":"/etc/ca>
Jun 28 07:07:28 oraclelinux8 caddy[1784]: {"level":"info","ts":1656414448.1344466,"logger":"admin","msg":"admin endpoint started","address":">
Jun 28 07:07:28 oraclelinux8 caddy[1784]: {"level":"warn","ts":1656414448.1346254,"logger":"http","msg":"server is listening only on the HTTP>
Jun 28 07:07:28 oraclelinux8 caddy[1784]: {"level":"info","ts":1656414448.1351585,"msg":"autosaved config (load with --resume flag)","file":">
Jun 28 07:07:28 oraclelinux8 caddy[1784]: {"level":"info","ts":1656414448.1352255,"msg":"serving initial configuration"}
Jun 28 07:07:28 oraclelinux8 caddy[1784]: {"level":"info","ts":1656414448.135435,"logger":"tls.cache.maintenance","msg":"started background c>
Jun 28 07:07:28 oraclelinux8 caddy[1784]: {"level":"info","ts":1656414448.1354668,"logger":"tls","msg":"cleaning storage unit","description":>
Jun 28 07:07:28 oraclelinux8 caddy[1784]: {"level":"info","ts":1656414448.1354911,"logger":"tls","msg":"finished cleaning storage units"}
Jun 28 07:07:28 oraclelinux8 systemd[1]: Started 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

添加以下 HTML 代码:




Caddy Web Server


Congratulations! Caddy Web Server Works on Oracle Linux 8

完成后保存并关闭文件。

第 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

我们应该看到以下输出:

2022/06/28 11:11:49.935	INFO	using provided configuration	{"config_file": "/etc/caddy/Caddyfile", "config_adapter": "caddyfile"}
2022/06/28 11:11:49.938	WARN	Caddyfile input is not formatted; run the 'caddy fmt' command to fix inconsistencies	{"adapter": "caddyfile", "file": "/etc/caddy/Caddyfile", "line": 2}
2022/06/28 11:11:49.938	WARN	http	server is listening only on the HTTP port, so no automatic HTTPS will be applied to this server	{"server_name": "srv0", "http_port": 80}
2022/06/28 11:11:49.939	INFO	tls.cache.maintenance	started background certificate maintenance	{"cache": "0xc0005b4380"}
2022/06/28 11:11:49.939	INFO	tls.cache.maintenance	stopped background certificate maintenance	{"cache": "0xc0005b4380"}
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 Tue 2022-06-28 07:12:22 EDT; 8s ago
     Docs: https://caddyserver.com/docs/
 Main PID: 1812 (caddy)
    Tasks: 5 (limit: 11409)
   Memory: 12.6M
   CGroup: /system.slice/caddy.service
           └─1812 /usr/bin/caddy run --environ --config /etc/caddy/Caddyfile

Jun 28 07:12:22 oraclelinux8 caddy[1812]: {"level":"info","ts":1656414742.7249784,"msg":"using provided configuration","config_file":"/etc/ca>
Jun 28 07:12:22 oraclelinux8 caddy[1812]: {"level":"warn","ts":1656414742.7270412,"msg":"Caddyfile input is not formatted; run the 'caddy fmt>
Jun 28 07:12:22 oraclelinux8 caddy[1812]: {"level":"info","ts":1656414742.7286003,"logger":"admin","msg":"admin endpoint started","address":">
Jun 28 07:12:22 oraclelinux8 caddy[1812]: {"level":"warn","ts":1656414742.728899,"logger":"http","msg":"server is listening only on the HTTP >
Jun 28 07:12:22 oraclelinux8 caddy[1812]: {"level":"info","ts":1656414742.7295816,"msg":"autosaved config (load with --resume flag)","file":">
Jun 28 07:12:22 oraclelinux8 caddy[1812]: {"level":"info","ts":1656414742.729656,"msg":"serving initial configuration"}
Jun 28 07:12:22 oraclelinux8 systemd[1]: Started Caddy.
Jun 28 07:12:22 oraclelinux8 caddy[1812]: {"level":"info","ts":1656414742.7376888,"logger":"tls.cache.maintenance","msg":"started background >
Jun 28 07:12:22 oraclelinux8 caddy[1812]: {"level":"info","ts":1656414742.7378275,"logger":"tls","msg":"cleaning storage unit","description":>
Jun 28 07:12:22 oraclelinux8 caddy[1812]: {"level":"info","ts":1656414742.737864,"logger":"tls","msg":"finished cleaning storage units"}

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

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

要在 Caddy 上启用 PHP 支持,必须在我们的服务器上安装 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

}

保存并关闭文件,然后重新启动 Caddy 服务:

systemctl 重启球童

接下来,编辑 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 页面。 我们将获得以下页面:
Caddy PHP 测试页面

在上面的文章中,我们学习了 Oracle Linux 8 上使用 PHP 安装 Caddy。我们现在可以在生产环境中使用 Caddy 来部署网站并测试其性能。 在 的专用主机上试一试!

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

请登录后发表评论