てがろぐをローカル開発環境で動かす
Kijisaba.icon正直なんとなくである。なんかmanpいれるのが悔しかった 構成、コードの内容をそのまま使わせてもらった
Ubuntu 24.04 + Apacheになっている
ディレクトリ構成
code:txt
/
├ server/
│ ├ Dockerfile
│ └ localhost.conf
└ compose.yaml
compose.yaml
code:yaml
services:
web:
container_name: dev-tegalog-skin-example
tty: true
init: true
build: ./server
volumes:
- ./server/app:/var/www/html
- ./server/log:/var/log/apache2
- ./server/my-skin:/var/www/html/my-skin
ports:
- "127.0.0.1:8080:80"
Dockerfile
code:Dockerfile
FROM ubuntu:24.04
ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_PID_FILE /var/run/apache2.pid
ENV APACHE_RUN_DIR /var/run/apache2
ENV APACHE_LOG_DIR /var/log/apache2
ENV APACHE_LOCK_DIR /var/lock/apache2
ENV TZ=Asia/Tokyo
ENV DEBIAN_FRONTEND=noninteractive
# タイムゾーン設定
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 必要なパッケージのインストール
RUN apt-get update && \
apt-get install -y \
apache2 \
libapache2-mod-perl2 \
libcgi-pm-perl && \
a2enmod cgid && \
a2enmod rewrite && \
a2dissite 000-default && \
apt-get update -y && \
apt-get upgrade -y && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# Apache設定
COPY localhost.conf /etc/apache2/sites-available/localhost.conf
RUN a2ensite localhost.conf
# ポートとエントリーポイント
EXPOSE 80
localhost.conf
code:localhost.conf
ServerName localhost
AddHandler cgi-script .cgi .pl
<Directory /var/www/html>
Options All
AllowOverride All
</Directory>
<VirtualHost *:80>
DocumentRoot /var/www/html
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<IfModule cgid_module>
#
# ScriptSock: On threaded servers, designate the path to the UNIX
# socket used to communicate with the CGI daemon of mod_cgid.
#
Scriptsock cgisock
</IfModule>
インストールしたままだとパーミッションの関係でてがろぐが500エラーで表示されないので、コンテナ内に入って権限を付与する必要がある code:bash
chmod 755 /var/www/html/tegalog.cgi
Kijisaba.iconコンテナ落とすときに設定消えてそうだな…
2回目移行のコンテナ起動時は以下のコマンドで起動する
code:bash
docker compose up -d
起動したらdockerのContainerからローカル環境に飛べるようになる
https://gyazo.com/c055b25bbcfa035df636be30ae6a6bd7
ファイル一覧が表示されるのでtegalog.cgiをクリックすればてがろぐが表示される
この構成だとPHP入ってないので、てがろぐ自体の更新は手動になる。
あくまでスキンのレビューする用の環境だから問題ないかな?
public.icon