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

サイト刷新中

完成してから載せ替えるものじゃないの?
とは思うところですが、サイトを刷新中。

空き時間で直す感じなので、多分暫くは触っているでしょう。

ちなみに1年以上何もしてなかったらしいですよ?

DSM7の為にGitLabからGitLabへの移行

SynologyのDSMを7にアップする際、今までのGitLabが存在するとアップできない為、別のGitLabへ移行した際のメモです

参考にする場合は自己責任でお願いします

  • 移行元
    • Synology DSM 6.2.4-25556
    • Synology のパッケージマネージャから入れたGitLab
    • GitLabのバージョンは13.12.2-0072
    • 実態はSynology DSMで動いているDocker上で動くGitLabコンテナ
      • gitlab本体以外にPostfresqlとredisが付いてくる仕様
  • 移行先
    • GitLab CE のDockerコンテナ(GitLabが提供しているイメージから)
    • 深く考えずlatest
    • Synology DSM上のDocker上で動かす
      • 他のコンテナに依存しないスタンドアロン仕様

以下移行した手順

  1. Synology DSMのDocker GUIからgitlab/gitlab-ceを検索してイメージを取得
    1. 深く考えずlatest
  2. イメージからコンテナを起動する
    1. 次のURLを参考に、dataとlogsとconfigをコンテナの外に保存する設定を追加
    2. https://docs.gitlab.com/ee/install/docker.html
  3. 新しいGitLabを起動後、最初に画面を開いた時点でrootのパスワードを設定する
    1. と以下のURLに書いてあるが、設定画面が出てこない
    2. https://docs.gitlab.com/ee/install/docker.html
    3. 代わりに、以下を参考にしてコマンドでパスワードを設定する
    4. https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.
  4. 普段のユーザーを追加
  5. 古いGitLabから新しいGitLabにリポジトリの移行
    1. 古いGitLabでgitlab-rakeコマンドが無いのかパスが通っていないのか、一括で移行できそうな方法が無理なので断念
    2. 新しいGitLabから古いGitLabのリポジトリを指定してクローン、Dockerのホストが同じためIPが同じで拒否され断念(ポートが違うけど見てくれない)
    3. 古いGitLabでリポジトリをエクスポートして、新しいGitLabでインポートする。これは上手く行った
  6. その他、必要なら設定

特にエクスポートからインポートで消えるデータなどは気にする必要が無いので楽でした。とはいえ本来ならコマンドで一括かつ簡単に移行できそうな所なので、調査不足感は否めない終わりでした

舞い戻る

  1. 連休なので何かしたいなと思ったけど、そのままじゃ何もしないだろう
  2. やった事を書き出すなりしてみよう
  3. 更新してないサイトは更新が面倒
  4. 更新してないtwitterも何か違う
  5. 消したブログを復活させよう

よって復活のブログです
更新は完全に気まぐれ。内容は恐らくその時々の気まぐれ。