Ghost+Docker+Apache2(サブディレクトリ)で設定してみました
Ghostを試してみました。理由は「おしゃれなサイトが作れそう」だったから。
ヘッドレスCMSとか、Node.jsで書かれているとか、記事を書くことに特化した、とかの特徴があるみたいです。
環境変数を適宜変更してください。
以上になります
ヘッドレスCMSとか、Node.jsで書かれているとか、記事を書くことに特化した、とかの特徴があるみたいです。
前提と想定
以下のようなアドレスでWebサイトにアクセスするつもりです。https://example.com/blog
目標
- Ghostをサーバ側で作成する( Dockerコンテナ )
- サブディレクトリ形式のURLでアクセス出来るようにする。
環境
- Ubuntu20.04
- Webサーバ: Apache2
参考
今回の設定をするにあたって、以下が非常に参考になりました。ありがとうございます。1. Ghostのコンテナ作成
2つのファイル、.envとdocker-compose.ymlを作り、記述します。環境変数を適宜変更してください。
.env
GLOURL=example.com
SUBDIR=blog
PORT=8080
DB_USER=XXXX
DB_PASSWD=XXXX
DATABASE=xxxx
MYSQL_PORT=3006
docker-compose.yml
version: '3.8'
services:
ghost:
image: ghost:latest
container_name: ghost
restart: always
ports:
- ${PORT}:2368
depends_on:
- db
environment:
# see https://ghost.org/docs/config/#configuration-options
database__client: mysql
database__connection__host: db
database__connection__user: ${DB_USER}
database__connection__password: ${DB_PASSWD}
database__connection__database: ${DATABASE}
url: http://${URL}/${SUBDIR}/
volumes:
- ./content:/var/lib/ghost/content
db:
image: mysql:8.0
restart: always
ports:
- ${MYSQL_PORT}:3306
environment:
MYSQL_ROOT_PASSWORD: ${DB_PASSWD}
volumes:
- ./mysql:/var/lib/mysql
コンテナを作成して、起動します。
docker-compose up -d
2. Apache2の設定
サブディレクトリ形式のURLでアクセス出来るように設定していきます。cd /etc/apache2/sites-available
新しく設定ファイルを作成し(001-blog.conf)、以下を書き込んでhttps://ドメイン/blogでアクセスできるようにします。
sudo vim 001-blog.conf
<Location /blog>
ProxyPass http://localhost:8080/blog
ProxyPassReverse http://localhost:8080/blog
ProxyPassReverseCookieDomain localhost example.com
ProxyPassReverseCookiePath / /blog/
Header edit Location ^http:// https://
</Location>
設定ファイルを有効化のステージへシンボリックリンク
sudo a2ensite 001-blog.conf
因みに無効化です。
sudo a2dissite 001-ghost.conf
設定の確認
Apacheの設定に文法の間違いがないことを確認すします。sudo apachectl -t
Syntax OK # <- これを確認
Apacheの再起動と起動確認
sudo systemctl restart apache2目的のアドレスにアクセスすると、blogが表示できることを確認できました。
sudo systemctl status apache2
以上になります