社内からインフラの基礎を知りたいということで、Linux雑談しつつGoogle CloudのCompute EngineにWordPressを構築する突発ハンズオン(ノー準備)を開催しました。そのときの作業メモです。
サーバ構築雑談編
以下の内容をザッとお話しました。
- OS
- Windows
- Linux
- Linuxディストリビューション
- Android
- Terminalアプリを入れたらLinuxのコマンドを使って内部が見られるお話
- Mac
- 使ったことなし
- TCPやUDPにおけるポート番号の一覧
- Web3層アーキテクチャ
- オンプレミスと仮想化、コンテナ、ハイパーバイザー
- クラウド
- Google Cloud
- 「無料枠の使用量上限」枠内であれば自由に利用可能
- Oracle Cloud
- Oracle Cloud Always Freeから2インスタンスが無料で使える
- Google Cloud
- WordPress … 世間一般ではよく使われているCMS(Contents Management System)
- Apache
- PHP
- MariaDB
Compute Engineハンズオン編
Apache2 : ブログシステム : WordPressを参考に、一人1インスタンスを立ててSSHでつなげてもらいました。
開催(講師)側準備
- Cloud IAMに参加者のメールアドレス(Googleアカウント)を追加する
- このときは雑に「編集者」で追加して終了後にIAMから削除
- 権限を絞るのであれば、正確には「Compute 管理者」で良いはず
- Compute Engine APIを有効にする
- GCEのインスタンスを作成する
- 「マシンタイプ」からe2-microを選択(費用を気にしないのであれば変更不要)
- 「ファイアウォール」から「HTTP トラフィックを許可する」にチェック
- 受講者にVMインスタンスページのURLを伝える
- ここから先は受講者側の協力が必要
- 「外部 IP」にHTTPでアクセスしてもらい、タイムアウトすることを確認する
- VMインスタンスページの「外部IP」をリンクをクリックするとHTTPSなので注意
- このハンズオンは「HTTPでつながれば終わり」のため
- 「SSH」の下三角ボタンから「ブラウザ ウィンドウで開く」を押してSSHで接続してもらう
- 「ブラウザでの SSH」ウィンドウでターミナルの画面が見られればOK
- 試しにwhoami や id とか打ってみる
WordPress構築ハンズオン編コマンド手順
ApacheとPHP、各種ライブラリのインストール
sudo apt-get -y install apache2 php php-cgi libapache2-mod-php php-common php-pear php-mbstring php-gd php-mysql php-enchant hunspell sudo systemctl restart apache2
MariaDBのインストール
sudo apt-get -y install mariadb-server
MariaDBの初期設定
sudo mysql_secure_installation Switch to unix_socket authentication [Y/n] n Change the root password? [Y/n] n Remove anonymous users? [Y/n] y Disallow root login remotely? [Y/n] y Remove test database and access to it? [Y/n] y Reload privilege tables now? [Y/n] y
データベースの作成やユーザー・パスワード、権限設定
sudo mysql create database wordpress; grant all privileges on wordpress.* to wordpress@'localhost' identified by 'password'; flush privileges; exit
WordPressのインストール
WordPressの最新版をダウンロードして/var/www/html/wordpressに展開し、/var/www/html/ディレクトリ以下の所有者をwww-dataに変更
wget https://ja.wordpress.org/latest-ja.tar.gz sudo tar zxvf latest-ja.tar.gz -C /var/www/html/ sudo chown -R www-data /var/www/html/
http:// 外部IP /wordpress にアクセスしてもらい、WordPressのセットアップ画面へ
- データベース名
- wordpress
- ユーザー名
- wordpress
- パスワード
- password
- ホスト名
- localhost
- デーブル接頭辞
- wp_
その他
- インストール直後、hello worldの記事が404 File Not Foundになってページが表示されない
- おそらく.htaccessが無効なため
- WordPressの管理画面から設定>パーマリンクに行き、パーマリンク構造を基本(https:// 外部IP /?p=123)へ変更するとリンク切れは直る