今回は、当サイトを公開するまでの流れを備忘録的に書いていきます。
まず、このサイトはLaravelで開発しています。(現状のような静的コンテンツのみのサイトであればWordPressなどのCMSを使った方が楽だと思いますが)
実は最初は勉強用程度にAWS EC2の無料枠で開発するつもりだったのですが、せっかくならちゃんと公開しようと思い、さくらレンタルサーバーにプロジェクトを移しました。
なぜEC2をやめてさくらに移したのか、またその手順など以下に完結に記載していきます。
1. AWS EC2無料枠で構築
まずAWSの1年間無料枠を使って何か作ろうと考えた末、自己紹介程度にブログでも作ろうと思い開発し始めました。 手順は以下のような感じ。
① EC2インスタンスを作成
- 無料枠のAmazon Linux AMI, t2.microを選択
- Elastic IPを割り当てる
- セキュリティグループを設定し、SSH、HTTP接続を有効にする
② LAMP環境の構築
- SSHでログイン接続する
ssh ec2-user@「インスタンスのIP」 -i 「秘密鍵のパス」
-
こちらのチュートリアルに従い構築を行う
③ Laravelプロジェクトの作成
-
Composerとライブラリのインストール
ここで注意しないといけないのは、インストールするパッケージのバージョンです。(すごくハマった。。) このサイト(Laravel5.8)の場合、すべてphp72でインストールするとうまくいきました。
$ curl -sS https://getcomposer.org/installer | sudo php $ sudo cp composer.phar /usr/local/bin/composer $ sudo ln -s /usr/local/bin/composer /usr/bin/composer $ sudo yum install -y php72-mbstring php72-pdo php72-mysqlnd
-
Laravelプロジェクトの作成
プロジェクトを作成するディレクトリに移動して作成
$ cd /var/www $ ~/composer.phar create-project --prefer-dist laravel/laravel 「プロジェクト名」
- Apatchのドキュメントルート変更と.htaccessを有効化
$ sudo vim /etc/httpd/conf.d/custom.conf
# ↓custom.confの中身 DocumentRoot "/var/www/「プロジェクト名」/public" Alias /adminDataBase "/var/www/html/phpMyAdmin" # .htaccess 有効化 <Directory /var/www/「プロジェクト名」/public> AllowOverride All </Directory>
-
権限の変更
作成したプロジェクト内に移動して以下を実行
$ cd /var/www/「プロジェクト名」 $ sudo chmod -R 777 storage $ sudo chmod -R 775 bootstrap/cache
-
Apatchの再起動
$ sudo service httpd restart
- .env.exampleをコピーして.envを作成する
ここまででElastic IPをブラウザで確認するとLaravelのページが表示されると思います。
またプロジェクトの作成や「composer install」をしたりするとメモリが足りなくてエラーになったりするので
php.iniファイルでメモリの制限値を上げます。
memory_limit = 512M私の場合それでもだめだったのでMySQLを一旦停止してから実行するといけました。
こうして開発して記事を書き始めたのですが、どうせならSSL対応してちゃんと公開しようと思い調べたところ、
ELB(ロードバランサー)を使用しなければならず、どうやら毎月数千円かかるようでした。
それにインスタンスも無料期間が終わるとこれもまた数千円かかりそう、、、
ということでAWSは個人サイトには向かない(高すぎる)なと判断し、別のレンタルサーバーを検討しました。
2. さくらレンタルサーバー
AWSの代替で何を使うか、GCP、herokuやその他レンタルサーバーなど調べてみて、 さくらレンタルサーバーのスタンダードプランなら容量100GB、MySQLも最大20個使用できて月額数百円で使用できます。 安い。。しかもSSL対応も無料で完結します。ということで迷わず移行しました。
あとはサーバーにsshログインしてGit pullしてくるだけです。(ファイルマネージャーを使って簡単にアップロードすることもできます)
まとめ
今回、一からウェブサイトの公開をしてみて初めての事もあり勉強になったなと思います。
仕事では開発がメインなので、サーバーの選定やドメインの取得など、普段の業務ではあまり触れないところも経験できました。
わりと大変だったのがデザインでした。。画像を作ったりいい感じにstyleあてたり、、、(仕事ではデザイナーさんがいるので自分でそこまでしない)
あとは記事がある程度増えたら新しいページや機能を付け加えていこうと思います。