Help us understand the problem. What is going on with this article?

Amazon Lightsail(LAMP)でLaravelを動かす

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がルートになるので、それを指定します。

bitnami.conf
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

スクリーンショット 2019-08-01 11.38.09.png

動かないとき

パーミッション、ファイル所有者に権限がなくてエラーになる場合があります。
所有者を、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を編集

.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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした