ubuntuにdokuwiki入れる

備忘録兼です。


特に理由もなくUbuntu Serverにdokuwiki環境を入れてみたくなったので入れてみました。
せっかくなので、ローカルLLMのgpt-ossの120Bに入れ方を問い合わせて、参考にしてみます。

  • Ubuntu Server 24.04 + nginx + dokuwiki
  • ローカルLLMのgpt-oss(120B)に手順を問い合わせる
  • 必要なら修正
  • ローカルなのでセキュリティとかは気にしない

一発で問い合わせた内容だと正常に動作する環境は仕上がりませんでした。
本来なら再度問い合わせて修正させる所ですが、コンテキストの制限によく引っ掛かるので特に試行しない事にし、手動で修正します。

  • インストールでphp8.2を決め打ちして失敗する。デフォルトに変更
  • nginx用の設定ファイルもphp8.2なので修正
  • ファイルコピーのpathが違って失敗する。実態に合わせて修正
  • 存在しないディレクトリを変更しようとして失敗する

常に情報の更新をしているわけではないという、ローカルLLMの重みファイル由来の欠点が出た感じでしょうか。
nginx用の設定ファイルは雑に作った場合より作り込まれている感じです。


最後に使いやすく変更します。
nginxの設定なんかはサーバーネームを雑に設定した以外はそのままです。

  • 一発コピペでdokuwikiが動くように全体を修正
  • 明らかに冗長なコードを削除
  • 一部コマンドを好みで変更
sudo apt update
sudo apt upgrade -y
sudo apt install nginx php-fpm php-cli php-xml php-mbstring php-gd php-curl php-json unzip -y

# ファイル取得
cd /tmp
curl https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz -O
tar xf dokuwiki-stable.tgz 

# 配置
sudo mkdir -p /var/www/dokuwiki
sudo cp -r /tmp/dokuwiki*/* /var/www/dokuwiki

# 権限設定
sudo chown -R www-data:www-data /var/www/dokuwiki
sudo chmod -R 755 /var/www/dokuwiki
sudo find /var/www/dokuwiki -type f -exec chmod 644 {} \;

# nginx設定
sudo cat << 'EOF' | sudo tee /etc/nginx/sites-available/dokuwiki.conf
server {
    listen 80;
    server_name _;

    root /var/www/dokuwiki;
    index index.php index.html;

    # -------------------------------------------------
    # 静的ファイル(画像・CSS 等)のキャッシュ設定
    # -------------------------------------------------
    location ~* \.(js|css|png|jpg|jpeg|gif|svg|ico|woff2?)$ {
        expires 30d;
        add_header Cache-Control "public, no-transform";
        try_files $uri =404;
    }

    # -------------------------------------------------
    # DokuWiki の PHP 実行
    # -------------------------------------------------
    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;   # PHP?FPM のソケット
        fastcgi_index index.php;
    }

    # -------------------------------------------------
    # DokuWiki が内部で使う .htaccess 相当の設定
    # (リライトはほぼ不要だが、直接ファイルアクセス防止)
    # -------------------------------------------------
    location ~* ^/(conf|data|bin)/ {
        deny all;
        return 404;
    }

    # -------------------------------------------------
    # ディレクトリインデックス・エラーページ
    # -------------------------------------------------
    location / {
        try_files $uri $uri/ =404;
    }
}
EOF
sudo ln -s /etc/nginx/sites-available/dokuwiki.conf /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default

sudo systemctl restart nginx