検索は翻訳元へ

共通事項 Ubuntu 24.04 LTS VPS インストール

訳注

このページは、他の VPS のページの一部として動的に挿入される モジュールページ です。

このガイドは、 Nginx と PHP 8.3 を持つ Ubuntu 24.04 LTS (Noble Numbat) VPS に Grav をインストールする方法を解説します。

最初のサーバーのセットアップ

最初に、 ローカルの /etc/hosts にエントリーをセットアップして、サーバー IP に親しみやすい名前(たとえば、 myserver.local のような)をつけます。これにより、サーバーに SSH 接続しやすくなります:

ssh root@myserver.local -p 0000

Note

上記の -p 0000 オプションは、非標準の(22以外の) SSH ポート番号の VPS サービスを利用する場合に必要です。

システムのパッケージを更新

root 権限で接続後、すべてのインストールパッケージをアップデートしてください:

apt update && apt upgrade -y

必要なパッケージをインストール

Nginx, PHP 8.3, そして Grav に必要な拡張機能をインストールしてください:

apt install -y vim zip unzip nginx git \
    php8.3-fpm php8.3-cli php8.3-gd php8.3-curl \
    php8.3-mbstring php8.3-xml php8.3-zip php8.3-intl php8.3-apcu

ここでインストールしているのは:

  • Nginx - 高パフォーマンスの web サーバー
  • PHP 8.3-FPM - PHP の FastCGI 処理マネージャー
  • PHP Extensions - Grav の画像処理やキャッシュなどに必要なもの

PHP-FPM を設定

セキュリティ向上のため、PHP 設定を編集します:

vim /etc/php/8.3/fpm/php.ini

sgi.fix_pathinfo を探して(vim では、 /cgi.fix_pathinfo で検索できます)、コメントを外し、 0 を設定してください:

cgi.fix_pathinfo=0

Warning

この設定により、リクエストされたファイルが見つからない場合に、 PHP が最も近いファイルを実行することを防ぎます。 - 有効にしたままにすると重大なセキュリティリスクになります。

専用ユーザーを作成

サイトを実行する grav というユーザーを作成してください。(root 権限で web アプリを実行しないでください):

adduser grav

パスワードは強力なものを使ってください。

PHP-FPM プールを設定

PHP-FPM プールを設定します。

grav ユーザー専用の PHP-FPM プールを作成します:

cd /etc/php/8.3/fpm/pool.d
mv www.conf www.conf.bak
vim grav.conf

以下の設定を追記してください:

[grav]
user = grav
group = grav

listen = /run/php/php8.3-fpm-grav.sock

listen.owner = www-data
listen.group = www-data

pm = dynamic
pm.max_children = 10
pm.start_servers = 3
pm.min_spare_servers = 2
pm.max_spare_servers = 5

chdir = /

Web ディレクトリを作成

grav ユーザーへ変換し、 web ディレクトリを作成してください:

su - grav
mkdir -p ~/www/html

セットアップを確認するためのテストファイルを作成してください:

echo '<?php phpinfo();' > ~/www/html/info.php
exit

Nginx の設定

Nginx サーバーブロックを作成してください:

vim /etc/nginx/sites-available/grav

以下の設定を追記してください:

server {
    listen 80;
    index index.html index.php;

    ## Begin - Server Info
    root /home/grav/www/html;
    server_name _;
    ## End - Server Info

    ## Begin - Index
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    ## End - Index

    ## Begin - Security
    # deny all direct access for these folders
    location ~* /(\.git|cache|bin|logs|backup|tests)/.*$ { return 403; }
    # deny running scripts inside core system folders
    location ~* /(system|vendor)/.*\.(txt|xml|md|html|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
    # deny running scripts inside user folder
    location ~* /user/.*\.(txt|md|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
    # deny access to specific files in the root folder
    location ~ /(LICENSE\.txt|composer\.lock|composer\.json|nginx\.conf|web\.config|htaccess\.txt|\.htaccess) { return 403; }
    ## End - Security

    ## Begin - PHP
    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.3-fpm-grav.sock;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
    }
    ## End - PHP
}

サイトを有効化し、 default を削除してください:

ln -s /etc/nginx/sites-available/grav /etc/nginx/sites-enabled/
rm /etc/nginx/sites-enabled/default

設定をテストしてください:

nginx -t

こんなふうになるはずです:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

サービスをスタートさせる

Nginx 及び PHP-FPM をリスタートさせます:

systemctl restart nginx
systemctl restart php8.3-fpm

http://YOUR_SERVER_IP/info.php にアクセスし、 PHP が動いているか確認してください。 PHP 8.3 及び APCu が列挙された PHP info ページが表示されるはずです。

Caution

テスト後は、 info.php ファイルを削除してください: rm /home/grav/www/html/info.php

Grav をインストール

grav ユーザーに変換し、 Grav をダウンロードしてください:

su - grav
cd ~/www
wget -O grav.zip https://getgrav.org/download/core/grav/latest
unzip grav.zip
rm -rf html
mv grav html

インストールの確認

http://YOUR_SERVER_IP にアクセスしてください。 Grav is Running! ページが表示されるはずです。

CLI ツールのテスト

grav ユーザーとして実行したため、 CLI ツールはそのままで動かせます:

cd ~/www/html
bin/grav clear

出力:

Clearing cache

Cleared:  cache/twig/*
Cleared:  cache/compiled/*

Touched: /home/grav/www/html/user/config/system.yaml

GPM コマンドも、同様に動きます:

bin/gpm index

オプション: Admin プラグインのインストール

Grav Admin パネルをインストールするには:

bin/gpm install admin

その後、 http://YOUR_SERVER_IP/admin にアクセスし、管理者アカウントを作成してください。

オプション: Let’s Encrypt での HTTPS 有効化

本番サイトでは、 Certbot を使った HTTPS を有効化します:

apt install -y certbot python3-certbot-nginx
certbot --nginx -d yourdomain.com

Certbot は、自動的に Nginx を SSL に設定し、自動更新します。

次のステップ