Amazon LightsailのLAMP(PHP7)イメージでLaravelを動かす方法。
このインスタンスは一通り必要なものがインストールされた状態で起動しますので、それらを利用してなるべくかんたんに動かす方法です。
インストール
SSHなどで接続して任意のディレクトリでインストールします。
(今回は、/opt/bitnami/apache2/htdocs/laravel/
にしました。)
composerを最新にする
$ sudo /opt/bitnami/php/bin/composer.phar self-update
インストール
インストールしたい場所に移動して、インストールコマンド。
$ cd /opt/bitnami/apache2/htdocs/
$ composer create-project --prefer-dist laravel/laravel laravel
最後のlaravel
は任意のインストールディレクトリ名です。変更するときはこんなです。
$ composer create-project --prefer-dist laravel/laravel [任意のディレクトリ名]
ドキュメントルートの変更
デフォルトでは、/opt/bitnami/apache2/htdocs
になっているのでLaravelインストールしたディレクトリに変更します。
設定ファイルは/opt/bitnami/apache2/conf/bitnami/bitnami.conf
にあります。
Laravelのデフォルトでは、インストールディレクトリ直下のpublic
がルートになるので、それを指定します。
〜
DocumentRoot "/opt/bitnami/apache2/htdocs/laravel/public"
<Directory "/opt/bitnami/apache2/htdocs/laravel/public">
〜
↑を修正してApach再起動
bitnamiで構築されているので、通常のUbuntuのhttpd再起動コマンドとちょっと違うので注意。
$ sudo /opt/bitnami/ctlscript.sh restart apache
あとは、IPアドレスなどでアクセスしてみて画面が開けばOK
動かないとき
パーミッション、ファイル所有者に権限がなくてエラーになる場合があります。
所有者を、PHP実行グループに入れてあげればよいので、Laravelインストールディレクトリに対して所有者グループを変更します。
インストールディレクトリ全体に対して所有者変更。
$ cd /opt/bitnami/apache2/htdocs
$ sudo chown -R bitnami:daemon laravel/*
MySQLの設定
LAMPスタックなので、MySQLもインストールされています。
パスワードの確認
インストール&設定済みのMySQLのrootパスワードが/home/bitnami/bitnami_credentials
に記述されています。
$ cat /home/bitnami/bitnami_credentials
Welcome to the Bitnami LAMP Stack
******************************************************************************
The default password is 'ここにDBパスワード'.
******************************************************************************
You can also use this password to access the databases and any other component the stack includes.
・・・
上記のところにパスワードが記述されているのでメモします。
データベース作成
MySQLでLaravelで使用するパスワードを作成します。
$ mysql -u root -p
Enter password: DBパスワードを入力
データベースを作成。今回はlaravel_db
という名前で作成しました。
mysql > create database laravel_db;
Laravelにデータベースの設定
Laravelインストールディレクトリの.env
を編集
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=laravel_db
DB_USERNAME=root
DB_PASSWORD=[DBパスワード]
- とりあえず動かすのが目的なのでrootを使います
- LightsailのMySQLはデフォルトの状態だとrootに
127.0.0.1
が許可されていないので、DB_HOSTもlocalhostに書き換えました。
(今回は動かすことが目的なので簡易的に)
あとは、DBへの接続を確認します。
Laravelのインストールディレクトリで
$ php artisan migrate
で成功すればOK
これでLaravel一通り使えます。
フロントエンド環境
Laravelなので、フロントエンド環境も構築したいですね。
ただ、LAMPスタックなので、フロントエンドの方はあまり充実していません。
Yarnが動作するところまでを紹介します。
node.jsを最新にする。
$ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
$ sudo apt install -y nodejs
最新版のリポジトリは、https://github.com/nodesource/distributions/blob/master/README.md#installation-instructionsで。
Yarnのインストール
$ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
$ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
$ sudo apt update
$ sudo apt install -y yarn
以上でYarnが動くので、Laravelインストールディレクトリで
$ yarn install
パッケージをインストール
$ yarn run dev
起動ができればOK
以上です。
これで一通りのLaravel環境できるんじゃないかと思います。
一度動いたら、スナップショットに保存してしまえば、あとはいくつでも使い回せて便利です。
感想
- 格安でLaravel実行環境が手に入ります。
- ある程度のものがインストール済みなので面倒が少ない
- それでいて、自由度も高いです。
- データベースなどは、お金に余裕があればLightsailデータベースなども使えるし、サーバ構成も柔軟に変更できます。
- スナップショットなどで複製やバックアップなども自由にできます。
- 最初だけ少し苦労しちゃえば、あとはダッシュボードからスナップショット複製するとかでよいので、こういうところが嬉しい。
- 他のAWSサービスとの連携もいろいろできそう。
- いろいろ嬉しくて楽しい。
データベースについて、今回はかんたんに動かすことを念頭においたのでroot@localhostユーザーを使いましたが、本番のときは別途ユーザーを作ってください。あとrootパスワードも変更したほうがいいかも。
また、ユーザを作るだけじゃなく、それを外部のDBクライアントなどから接続して操作するための方法はこちらで紹介しています。
https://qiita.com/shin1kt/items/326a6a795ed135f61471