Caddyは、Go言語で記述された、無料のオープンソースの軽量で最新のWebサーバーです。 Caddyは、ファイルサーバー、動的サーバー、およびスケーラブルなリバースプロキシとして使用できます。プラグインを介してサーバー機能を拡張できます。キャディにはさまざまな機能があり、その一部を以下に示します。
- 仮想ホスティング
- Let'sEncryptによる自動HTTPS
- HTTP/2をサポート
- プラグインで拡張可能
- 外部依存関係なしで実行
この投稿では、RockyLinux8にPHPをサポートするCaddyWebサーバーをインストールする方法を紹介します。
前提条件
- Atlantic.NetクラウドプラットフォームでRockyLinux8を実行しているサーバー
- サーバーで構成されているrootパスワード
ステップ1-Atlantic.Netクラウドサーバーを作成する
まず、Atlantic.Netクラウドサーバーにログインします。 2GB以上のRAMを搭載したオペレーティングシステムとしてRockyLinux8を選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。
サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。
dnf update -y
ステップ2–CaddyWebサーバーをインストールする
dnf install 'dnf-command(copr)' dnf copr enable @caddy/caddy
リポジトリを有効にしたら、次のコマンドを使用してCaddyWebサーバーをインストールできます。
dnf install caddy -y
キャディがインストールされたら、次のコマンドを使用してキャディのバージョンを確認します。
caddy version
サンプル出力:
v2.4.6 h1:HGkGICFGvyrodcqOOclHKfvJC0qTU7vny/7FhYp9hNw=
次に、Caddyサービスを開始し、システムの再起動時に開始できるようにします。
systemctl start caddy systemctl enable caddy
次に、Webブラウザーを開き、URL http:// your-server-ipを使用してCaddyWebサーバーにアクセスします。 。次の画面にキャディテストページが表示されます。
ステップ3–キャディーに新しいサイトを作成する
まず、次のコマンドを使用して、新しいWebサイトのディレクトリ構造を作成します。
mkdir -p /var/www/example.com mkdir /var/log/caddy
次に、新しいWebサイトに適切な所有権を設定します:
chown caddy:caddy /var/www/example.com chown caddy:caddy /var/log/caddy
次に、新しいWebサイトのindex.htmlページを作成します。
nano /var/www/example.com/index.html
次の行を追加します:
<!DOCTYPE html> <html> <head> <title>Caddy Web Server</title> </head> <body> <h1>This is my first web page on Caddy!</h1> </body> </html>
終了したら、ファイルを保存して閉じます。
ステップ4–仮想ホスト構成ファイルを作成する
次に、新しいWebサイトをホストするために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を使用してCaddyWebサイトにアクセスします。 。次の画面にWebサイトが表示されます。
ステップ5–CaddyWebサーバーで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
次の行を追加します:
<?php phpinfo(); ?>
ファイルを保存して閉じてから、Webブラウザーを開き、URL http://test.example.com/info.phpを使用してinfo.phpページにアクセスします。 。次のページが表示されます:
結論
上記のガイドでは、RockyLinux8にPHPを使用してCaddyをインストールする方法を説明しました。CaddyはApacheおよびNginxの非常に優れた代替手段です。実稼働環境で試してみてください– Atlantic.Netから仮想プライベートサーバーで始めましょう!