PodmanでDokuWikiの起動

ルートフォルダだったので、パスを /srv から /home に変更(2024/09/29)

はじめに

自宅サーバー用にリバースプロキシ呼び出しなので、ローカル用途では不要な設定が含まれています。

ネットワークの作成

podman network create --subnet 10.0.30.0/24 --gateway 10.0.30.1 network-dokuwiki

DokuWiki用のポッド作成

ボリュームの作成

mkdir -p \
  /home/podman/dokuwiki-pod/nginx/conf.d \
  /home/podman/dokuwiki-pod/public \
  /home/podman/dokuwiki-pod/php/conf.d

ダミーコンテナを作成し設定ファイル取り出し

podman run -d --name tmp docker.io/library/nginx:latest
podman cp tmp:/etc/nginx/nginx.conf /home/podman/dokuwiki-pod/nginx/nginx.conf
podman cp tmp:/etc/nginx/conf.d/default.conf /home/podman/dokuwiki-pod/nginx/conf.d/default.conf
podman rm -f tmp

podman run -d --name tmp php:fpm-alpine
podman cp tmp:/usr/local/etc/php/php.ini-production /home/podman/dokuwiki-pod/php/php.ini
podman rm -f tmp

ポッド作成

podman pod create --name dokuwiki-pod -p 30080:80 -p 30443:443 --network=network-dokuwiki
podman create --pod dokuwiki-pod --name dokuwiki-nginx \
  -v /home/podman/dokuwiki-pod/nginx/nginx.conf:/etc/nginx/nginx.conf:ro \
  -v /home/podman/dokuwiki-pod/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf:ro \
  -v /home/podman/dokuwiki-pod/public:/usr/share/nginx/html \
  docker.io/library/nginx:latest

podman create --pod dokuwiki-pod --name dokuwiki-phpfpm \
  -v /home/podman/dokuwiki-pod/php/php.ini:/usr/local/etc/php/php.ini:ro \
  -v /home/podman/dokuwiki-pod/public:/usr/share/nginx/html \
  php:fpm-alpine

nginx設定

server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.php index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        root           /usr/share/nginx/html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
        include        fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

dokuwikiのインストール

cd /home/podman/dokuwiki-pod/public/
wget https://download.dokuwiki.org/out/dokuwiki-a6b3119b5d16cfdee29a855275c5759f.tgz
tar xvfz dokuwiki-a6b3119b5d16cfdee29a855275c5759f.tgz 
rm -f dokuwiki-a6b3119b5d16cfdee29a855275c5759f.tgz 

cd dokuwiki/
chmod -R 777 data
chmod 777 lib/plugins/
chmod 777 lib/tpl/
chmod 777 conf
chmod 666 conf/*

リバースプロキシ用のフォルダ名に変更

cd /home/podman/dokuwiki-pod/public/
mv dokuwiki ydlprog

dokuwikiの起動

podman pod start dokuwiki-pod

自動起動設定

自動起動用にユニットファイル作成

# cd /usr/lib/systemd/system
# podman generate systemd --name dokuwiki-pod --files --restart-policy=always
/usr/lib/systemd/system/pod-dokuwiki-pod.service
/usr/lib/systemd/system/container-dokuwiki-phpfpm.service
/usr/lib/systemd/system/container-dokuwiki-nginx.service

自動起動

systemctl daemon-reload
systemctl enable pod-dokuwiki-pod.service
systemctl enable container-dokuwiki-phpfpm.service
systemctl enable container-dokuwiki-nginx.service

コンテナ作成用スクリプト

コメント

タイトルとURLをコピーしました