laravel_Laravelのインストール

02Laravelのインストール

まずはLaravelをインストールしていきましょう。以下の手順に沿ってLaravelをインストールしてください。

PHPやSQLと同じDockerで環境を作成していきます。

新たに「Lesson13_Laravel」ディレクトリを作成して下さい。

以下のようにファイルを作成してください。

Lesson13_Laravel
  ├── docker-compose.yml
  └── Dockerfile

docker-compose.yml

services:
  web:
    build: .
    ports:
      - "80:80"
    volumes:
      # ホストのlaravel_appディレクトリとコンテナ内のLaravelプロジェクトを同期(開発時用)
      - ./laravel_app:/var/www/html/laravel_app
    depends_on:
      - db
  db:
    image: mysql:8.0
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: laravel
      MYSQL_USER: laraveluser
      MYSQL_PASSWORD: laravelpass
    ports:
      - "3306:3306"
    volumes:
      - dbdata:/var/lib/mysql
volumes:
  dbdata:

Dockerfile

# ベースイメージはPHP 8.1-apache版を使用
FROM php:8.1-apache
# 必要なパッケージのインストール
RUN apt-get update && apt-get install -y \
    git \
    unzip \
    curl \
    libcurl4-openssl-dev \
    libxml2-dev
# PHP拡張モジュールのインストール
RUN docker-php-ext-install curl xml
# Composerのインストール
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
# Laravelのインストーラをグローバルにインストール
RUN composer global require laravel/installer
# グローバルにインストールしたパッケージのbinディレクトリを絶対パスで設定
RUN composer global config bin-dir --absolute
# ComposerのbinディレクトリをPATHに追加(以降のRUN命令やコンテナ起動時に有効)
ENV PATH="${PATH}:/root/.config/composer/vendor/bin"
# Laravelプロジェクトのインストール(/var/www/html/laravel_app に作成)
RUN composer create-project --prefer-dist laravel/laravel:^10.0 /var/www/html/laravel_app
# DocumentRootを laravel_app/public に変更(Apache設定の上書き)
RUN rm /etc/apache2/sites-available/000-default.conf && \
    echo '<VirtualHost *:80>\n\
        ServerAdmin webmaster@localhost\n\
        DocumentRoot /var/www/html/laravel_app/public\n\
        <Directory /var/www/html/laravel_app/public>\n\
            AllowOverride All\n\
            Require all granted\n\
        </Directory>\n\
        ErrorLog ${APACHE_LOG_DIR}/error.log\n\
        CustomLog ${APACHE_LOG_DIR}/access.log combined\n\
    </VirtualHost>' > /etc/apache2/sites-available/000-default.conf
# Apache mod_rewrite 有効化
RUN a2enmod rewrite

上記2ファイルをコピペしてください。

以下のコマンドをターミナルで実行し、環境を作成しましょう。

docker-compose up --build

各種必要ファイルがインストールされます。

ビルドが完了したら以下のコマンドを実行してください。

docker exec -it lesson13_laravel-web-1  bash

下記のように表示されていればOKです。

root@3d7a8def9406:/var/www/html#

ここまででサーバー上にLaravelに必要なPHPやComposerがインストールされました。

試しにインストールされているか試してみましょう。

php -v
composer -v

それぞれ1行づつ実行するとそれぞれインストールされていることがわかります。

composerとは

composerとは、PHPのライブラリ管理システムです。PHPのライブラリをインストールしたり、バージョンをコントロールしたりするために利用します。

composerを利用すれば、あるライブラリをインストールするときに、そのライブラリに必要なライブラリ(依存ライブラリ)も自動的にインストールされるため、インストールしたいライブラリの依存ライブラリを手動で探して、インストールする必要がありません。

LaravelもPHPのライブラリの1つであるため、composerで扱います。Laravelにも多くの依存ライブラリがありますが、composerを使うと簡単にLaravelプロジェクトを作成できます。

今後も、PHPライブラリを使用するときは、composerを使用します。

次にLaravelをインストールしていきます。

下記コマンドを順番に入力してください。

composer global require "laravel/installer:^4.5"
composer global config bin-dir --absolute
echo 'export PATH="$PATH:$HOME/.config/composer/vendor/bin"' >> ~/.bashrc
source ~/.bashrc
composer create-project --prefer-dist laravel/laravel:^10.0 laravel_app
exit

インストールする内容に関して質問があるので、下記のように回答してください。

※矢印キーで移動、Enterで選択できます。

最後、「Application key set successfully」と表示された後、使用するデータベースを選択できます。ここでは「MySQL」を選択してください。

ファイルがダウンロードされていれば成功です。

ファイル構成の写真

続いて、いくつか設定を行っていきます。

では以下のコマンドを実行し、コンテナから脱出しましょう。

exit

では、「laravel_app」ディレクトリに移動し、以下のコマンドを実行しましょう。

php artisan key:generate

このコマンドを実行することで.envファイルの「APP_KEY」にランダムで生成されたキーが追加されています。

これでLaravelの画面が表示されるはずです。

以下のURLにアクセスしましょう。

http://localhost/

では引き続き細かな設定をしていきます。

まず、「すべてのプロキシ(Webブラウザの代わりにホームページにアクセスする機能)」を許可する設定にします。

/laravel_app/app/Http/Middleware/TrustProxies.phpを開き、protected $proxies; と書かれた1行があるので、この行を以下のように変更し、Ctrl+Sで上書き保存をしてください 。

protected $proxies = '*';

最後に、タイムゾーンの設定を行います。

config/app.phpを開き、timzoneという箇所を下記のように変更します。

'timezone' => 'UTC',
↓
'timezone' => 'Asia/Tokyo',

Git

バージョン管理も行います。laravel_appのディレクトリの中で下記コマンドを実行してください。

git init
git add .
git commit -m "init Laravel Project"

次はMySQLの設定を行っていきます!


投稿日

カテゴリー:

投稿者:

タグ:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です