2018年4月24日火曜日

LXDでGrav CMSをインストールしたコンテナを構築する

GravはPHP製のCMSです。

〇Gravの画面


〇コンテナの構築
LXDで以下のコマンドを実行して、Grav CMSがインストールされたコンテナを構築します。
lxc init ubuntu:16.04 grav
lxc config set grav user.user-data - < config.yml
lxc start grav

config.yml
#cloud-config

package_upgrade: true

hostname: grav
manage_etc_hosts: true

write_files:
  - path: /tmp/apache2.conf
    content: |
      <Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
      </Directory>

runcmd:
  - "apt-get update"
  - "apt-get -y install unzip"
  - "apt-get -y install apache2 libapache2-mod-php7.0"
  - "apt-get -y install php7.0-gd php7.0-json php7.0-mbstring php7.0-xml php7.0-zip php7.0-curl"
  - "a2enmod rewrite"
  - "wget -O grav.zip https://getgrav.org/download/core/grav/1.4.2"
  - "unzip grav.zip"
  - "mv grav /opt"
  - "ln -s  /opt/grav /var/www/html"
  - "wget -O grav-skeleton-soraarticle-blog-v1.1.2.zip https://getgrav.org/download/skeletons/soraarticle-blog/1.1.2"
  - "unzip grav-skeleton-soraarticle-blog-v1.1.2.zip"
  - "cd grav-skeleton-soraarticle-blog"
  - "cp -R * /opt/grav"
  - "cd /opt/grav/"
  - "./bin/gpm install admin -y"
  - "./bin/plugin login newuser --user=admin --password=Admin123 --email=admin@localhost.localdomain --permissions=b --fullname=administrator --title=admin"
  - "chown -R www-data:www-data /opt/grav"
  - "cat /tmp/apache2.conf >> /etc/apache2/apache2.conf"
  - "service apache2 restart"

final_message: "completed."

〇ホストマシンの外部からコンテナにアクセスしたい場合
以下のコマンドを実行します。
PORT=80 PUBLIC_IP=<ホストのIP> CONTAINER_IP=<コンテナのIP> sudo -E bash -c 'iptables -t nat -I PREROUTING -i eth0 -p TCP -d $PUBLIC_IP --dport $PORT -j DNAT --to-destination $CONTAINER_IP:$PORT -m comment --comment "container"'

管理者画面にアクセスするには、ブラウザからhttp://<ホストのIP>/grav/admin/にアクセスします。デフォルトユーザ/パスワードはadmin/Admin123です。
・管理者画面


〇コンテナに入る
lxc exec grav /bin/bash

〇コンテナのIPを調べる
コンテナのIPは以下のコマンドで調べることができます。
lxc list

〇コンテナの停止
lxc stop grav

〇コンテナの削除
lxc delete grav


○関連情報
・Gravに関する他の記事はこちらを参照してください。

0 件のコメント:

コメントを投稿