WordPressでHPをやりたいがお金はない

今更ながらWordPressを使ってみたいと思い立ったが、自サーバを立てるお金も、レンタルサーバを借りるお金もない。
そこでGCPの無料枠を使ってできるという噂を聞いたのでやってみることに。

※GCPにはWordPress用のランチャがあるので、純粋にWordPressを立てるだけならそっちの方が良いのでしょう。

GCEでサーバを用意する

以下を参照しながら無料インスタンス作成。

LAMPサーバとして設定を行う

作成したGCEにssh接続して、LAMPサーバとして使えるように設定していく。
※操作が必要なところについては、echoで説明しています。

apacheのインストール

apache.sh
#Apacheをインストールします
sudo yum -y install httpd

#apacheを起動し、ついでに起動を自動化します
sudo systemctl start httpd.service
sudo systemctl enable httpd.service

mariaDBのインストール

mariaDB.sh
#MariaDBをインストールします
sudo yum -y install mariadb-server mariadb

#MariaDBにcharacterの設定を行います
sudo echo character-set-server=utf8 >> /etc/my.cnf

#Mariadbを起動し、ついでに起動を自動化します
sudo systemctl start mariadb
sudo systemctl enable mariadb

#MariaDBの初期設定を行います
echo "input:enter,y,password,y,y,y,y"
sudo mysql_secure_installation

PHPのインストール

php.sh
#PHPおよび関連ソフトをインストールします
sudo yum -y install php php-mbstring php-gd php-mysql

#Apacheを再起動します
sudo systemctl restart httpd.service

DBの準備

DBsetup.sh
#データベースを準備します
echo "Input like this..."
echo "Caution: You needs change *___*"
echo "1:Create database *db_name*;"
echo "2:grant all privileges on wpdb.* to \"*user_name*\"@\"localhost\" identified by \"*password*\";"
echo "3:flush privileges;"
echo "4:exit"

mysql -u root -p

これで最低限LAMPサーバとしての準備ができた。
この上にWordPressを構築していく。

Wordpressのインストールを行う

ダウンロードからインストールまで

wordpress.sh
#wordpress最新日本語版をダウンロード
curl -LO http://ja.wordpress.org/latest-ja.tar.gz

#ファイルを展開
tar zxf latest-ja.tar.gz

#htmlフォルダに移して、apacheで使用可能にする
sudo mv wordpress /var/www/html/wp
sudo chown -R apache:apache /var/www/html/wp

#展開元のファイルは消去
sudo rm latest-ja.tar.gz 

#config.phpをサンプルから本番に変更
sudo mv /var/www/html/wp/wp-config-sample.php /var/www/html/wp/wp-config.php

設定を行う

settingWP.sh
echo "Change like this ..."
echo "database_name_here -> wpdb"
echo "username_here -> *username*"
echo "password_here -> *password*"
sudo vi wp-config.php

#設定終了したら、編集不可に設定
sudo chmod 400 wp-config.php

SELinuxの設定

そのままだとSELinuxに引っかかってうまく動かないので設定を変更する。

settingSELinux
#SELinuxの設定をします
sudo setsebool -P httpd_can_network_connect_db 1
sudo setsebool -P httpd_tty_comm 1
sudo setsebool -P httpd_unified 1
sudo setsebool -P httpd_dbus_avahi 1
sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/html/wp"
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/wp/wp-content(./*)?"
sudo restorecon -R -v /var/www/html/wp

ドメインを取得

当然ここも無料で行きたいので、
- 無料のドメインを取得する
を参考にドメイン取得。

Aレコードに www:(GCPの外部アドレス) で登録すれば使えるようになる。

完成

とりあえずこれでWordPressが使えるようになりました。
データベース接続エラーがたまに出て、そのときには手動で再起動が必要のようですが、とりあえずは問題なく動く感じ。
あまりアクセスが多くなるとGCPの無料枠で収まらなそうだけど、とりあえずはなんとかなるはず。