NOBODY:PLACE on AWS ドキュメント

2019年7月9日 (火) 18:03時点におけるIppei Suzuki (トーク | 投稿記録)による版

新サイトのドキュメントをここに記述する。GitHub Wiki上に作成していた ドキュメント(仮) の中から本番環境で採用された部分についてもこちらに移行させる予定。


構成図

   /var/
    └ www/
       └ nobodyplace/
           ├ src/
           └ sites/
               ├ wordpress/        [WordPress]
               │  ├ nplll.com
               │  ├ 1ni.co
               │  ├ suidou.d-archives.info
               │  ├ cooking.is1977.com
               │  └ monologue.is1977.com
               ├ nplll.com/
               │  └ laravel/       [Laravel]
               ├ 1ni.co/
               │  └ laravel/       [Laravel]
               ├ is1977.com/
               │  ├ laravel/       [Laravel]
               │  └ docs/
               │     ├ adminer/    [Adminer]
               │     ├ default/
               │     ├ lab/
               │     ├ rss/        [Tiny Tiny RSS]
               │     └ wiki/       [MediaWiki]
               ├ umbls.com/
               │  └ laravel/       [Laravel]
               ├ d-archives.info/
               ├ 69tracks.com/
               │  └ docs/
               │     ├ css/
               │     ├ image/
               │     ├ js/
               │     └ index.html
               ├ wellersclub.com/
               │  └ docs/
               │     ├ css/
               │     ├ image/
               │     ├ js/
               │     ├ index.html
               │     ├ schedule.html
               │     ├ information.html
               │     ├ access.html
               │     └ index.html
               └ switchover.info/
                  └ docs/
                     ├ css/
                     ├ image/
                     ├ js/
                     └ index.html

ソフトウェア構成

Amazon Linux

AmazonがAWS用にカスタマイズしたOS。ベースはCentOS6なので、systemd などは使えない。

AWS CLIがあらかじめ入っているほか、yum update でメジャーアップデートが行われるなどいくつか違いがある。でも便利だし今のところ運用上特に問題はない。OS自体がフルマネージドといっても差し支えないんじゃなかろうか。

Apache 2.4

PHP 7.2

Laravel 5.8

概要

当初は1つのLaravelプロジェクトで複数のドメイン、サービスを捌こうと思っていて実際出来そうではあるのだけど、実際の運用を考えたらサービスごとにプロジェクトを作った方がわかりやすくなるし、スケールアウトしやすいのでそうしようと思う。問題点は、環境構築においてプロジェクトごとに差が出る可能性があること。そうならないように導入マニュアルを整備して同じ環境を作れるようにする。

とはいえ既に最初のプロジェクトのインストール過程が怪しいけれど……package.json によれば以下が入っているらしい。

  • bootstrap-vue
  • chart.js
  • chartjs-plugin-colorschemes
  • vue-chartjs
  • vue-cli
  • vue-router

全部必要かはわからないけれど、環境は一緒の方がいいし、入れておこう。 実際の導入手順については、あとでまとめる。

導入手順

  1. echo 'export PATH="$PATH:$HOME/.config/composer/vendor/bin"' >> ~/.bashrc
  2. ログインし直す
  3. laravel new laravel
  4. composer update
  5. npm install
  6. cp .env.example .env
  7. php artisan key:generate
  8. chmod 777 storage
  9. chmod 777 resources

git

Wordpress 5.2

Tiny Tiny RSS

MediaWiki

MySQL対応でPukiWikiに比べてデータ移行がしやすく、Wikipediaに似ていてとっつきやすいというのが選択理由。

当初はこのwikiだけの予定だったが、アポロプラスの非公式マニュアルとしても採用した。

導入手順

導入はGitで行う。以下、簡単な手順。

$ git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git wiki
$ cd wiki
$ git clone https://gerrit.wikimedia.org/r/p/mediawiki/vendor.git
$ cd skins
$ git clone "https://gerrit.wikimedia.org/r/mediawiki/skins/Vector"
$ git clone "https://gerrit.wikimedia.org/r/mediawiki/skins/MinervaNeue"

「MinervaNeue」はMobileFrontendのために必要

$ cd ../extensions
$ git clone "https://gerrit.wikimedia.org/r/mediawiki/extensions/MobileFrontend"
$ git clone "https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiEditor"

開発環境

Vagrant + VirtualBox