RitoLabo

Laravel 7 インストール(CentOS8/PHP7.4)

  • 公開:
  • カテゴリ: PHP Laravel
  • タグ: PHP,Laravel

先日 Laravel 7 がリリースされました。 今回は CentOS 8 と PHP 7.4 の環境で Laravel 7 のインストールを行ってみたいと思います。

アジェンダ
  1. Laravel 7 の動作要件
  2. PHP 7.4 のインストール
    1. EPELリポジトリの追加
    2. Remiリポジトリの追加
    3. PHP 7.4 インストール
    4. PHP extensions のインストール
  3. Composer のインストール
  4. Laravel 7 インストール
    1. Laravelインストーラからインストール
    2. Composer コマンドからインストール
  5. その他の作業

Laravel 7 の動作要件

Laravel 7 をインストールし動作させる為には、以下の要件を満たしている必要があります。

  • PHP バージョン
    7.2.5 以上
  • PHP extensions
    • BCMath
    • Ctype
    • Fileinfo
    • JSON
    • Mbstring
    • OpenSSL
    • PDO
    • Tokenizer
    • XML

この辺を揃えた上で Laravel 7 をインストールしていきます。

PHP 7.4 のインストール

CentOS 8 には基本的なもの(httpd openssl unzip wget とかあたり)以外は入っていない状態からスタートしているので、まずは PHP 7.4 をインストールします。

Remi リポジトリからインストールしていきます。

EPELリポジトリの追加

Remi で PHP 7.4 をインストールするために EPEL(Extra Packages for Enterprise Linux)リポジトリが必要なのでまずはこれを導入します。

以下のコマンドを叩いてEPELリポジトリを追加します。

# EPELリポジトリを追加
dnf -y install epel-release

Remiリポジトリの追加

以下のコマンドを叩いて Remiリポジトリを追加します。

# Remiリポジトリを追加
dnf -y install http://rpms.famillecollet.com/enterprise/remi-release-8.rpm

dnf info で PHP 7.4 のパッケージ情報が表示される事を確認します。

# PHP 7.4 のパッケージ情報を確認
dnf info php74

# 実行結果
[root@localhost /]# dnf info php74
Remi's Modular repository for Enterprise Linux 8 - x86_64
Safe Remi's RPM repository for Enterprise Linux 8 - x86_64
Available Packages
Name : php74
Version : 1.0
Release : 1.el8.remi
Architecture : x86_64
Size : 6.6 k
Source : php74-1.0-1.el8.remi.src.rpm
Repository : remi-safe
Summary : Package that installs PHP 7.4
License : GPLv2+
Description : This is the main package for php74 Software Collection,
: that install PHP 7.4 language.

これで PHP 7.4 がインストール ready になりました。

PHP 7.4 インストール

PHP 7.4 をインストールします。 以下の dnf コマンドを叩きます。

# PHP 7.4 インストール
dnf -y module install php:remi-7.4

php コマンドでインストールを確認します。

# PHP インストール確認
[root@localhost /]# php -v
PHP
7.4.4 (cli)
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

これで PHP 7.4 がインストールできました。

PHP extensions のインストール

PHP 7.4 のインストール時では、必要最低限の拡張機能しかインストールされていないので、Laravel 7 を動作させるために必要な拡張機能をインストールします。

以下のコマンドを叩いて、Laravel 7 の動作に必要な拡張機能があるかを確認します。

# Laravel 7 の動作に必要な拡張機能がインストールされているか確認
php -m | grep -e bcmath -e ctype -e fileinfo -e json -e mbstring -e openssl -e PDO -e tokenizer -e ^xml$

# 実行結果
[root@localhost /]# php -m | grep -e bcmath -e ctype -e fileinfo -e json -e mbstring -e openssl -e PDO -e tokenizer -e ^xml$
ctype
fileinfo
json
mbstring
openssl
tokenizer
xml

サーバ要件と見比べてみると、今回の環境の場合はあと BCMath が必要なようです。

インストール済みのものはスキップされるので、今回は Laravel 7 に必要な拡張を全て指定し、さらにその他入れておきたいものをいくつか指定したものでコマンドを作成したのでこれを叩きます。 不要なものは適宜外してもらい、他に必要なものは追加してください。

# PHP拡張インストール
dnf install -y php-bcmath php-mcrypt php-pdo php-xml php-tokenizer php-mysqlnd php-pecl-xdebug php-gd php-intl php-zip php-opcache

インストールが終わったら再度確認し、BCMath が表示されれば必要な拡張機能のインストールは完了です。

[root@localhost /]# php -m | grep -e bcmath -e ctype -e fileinfo -e json -e mbstring -e openssl -e PDO -e tokenizer -e ^xml$
bcmath
ctype
fileinfo
json
mbstring
openssl
PDO
tokenizer
xml

Composer のインストール

次に、Laravel をインストールするために Composer をインストールします。 以下のコマンドを順次叩いて、Composer をインストールしていきます。

# インストーラーのダウンロード
wget https://getcomposer.org/installer -O composer-installer.php

# インストール
php composer-installer.php --filename=composer --install-dir=/usr/local/bin

# 一応、アップデート
composer self-update

一通り終わったら composer コマンドを叩いて、お決まりのやつを出してみます。

# composer バージョン確認
[root@localhost /]# composer -v
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 1.10.1 2020-03-21 14:10:27

これで Composer のインストールも完了です。

Laravel 7 インストール

Laravel インストールの準備が整ったので、ここから Laravel 7 をインストールしていきます。

公式マニュアルにもある通り、Laravel のインストールには2通りの方法があります。それぞれで行っていきます。

Laravelインストーラからインストール

Laravelインストーラ を使う場合は、はじめに composer でインストーラを導入しておきます。

# Laravel インストーラのダウンロード
composer global require laravel/installer

ダウンロードが完了したら、laravel new コマンドをどこからでも叩けるようにパスを通します。

なお、パスは環境によって変わります。(以下、公式ドキュメント と readouble.com より引用)

  • macOS: $HOME/.composer/vendor/bin
  • Windows: %USERPROFILE%\AppData\Roaming\Composer\vendor\bin
  • GNU/Linuxディストリビューション: $HOME/.config/composer/vendor/binもしくは、$HOME/.composer/vendor/bin

今回は CentOS(Linux)なので以下の手順でパスを通します。それぞれの環境によってここは置き換えてください。

.bash_profile をエディタで開いてパスを追加

# エディタで開く
vi ~/.bash_profile

# 黄色部分を追加
PATH=$PATH:$HOME/bin:$HOME/.composer/vendor/bin

source コマンドで .bash_profile を読み込む

# .bash_profile を読み込む
source ~/.bash_profile

パスを通したら、Laravel をインストールしたいディレクトリなどに移動して、laravel コマンドを叩きます。

# 書式
laravel new [project_name]

[project_name] の部分には、任意の名前をつけてください。laravelのルートディレクトリ名になります。

# laravel プロジェクト作成
laravel new my_laravel

上記のような感じで laravel コマンドを叩くと、最新版の Laravel がインストールされます。

[me@localhost my_laravel]# php artisan --version
Laravel Framework
7.2.2

これで Laravel 7 のインストールが完了しました。

Composer コマンドからインストール

パスを通すのが面倒だったり、最新版ではないものをインストールしたい場合は、composer コマンドからもインストールできます。

# 書式
composer create-project laravel/laravel --prefer-dist [project_name] [version]

最新版をインストールする場合は、バージョンの指定は不要です。今回は以下を叩いてインストールします。

# composerコマンドからlaravelプロジェクトを作成する
composer create-project laravel/laravel --prefer-dist my_lara

こちらでも、最新版がインストールされます。

[me@localhost my_lara]# php artisan --version
Laravel Framework
7.2.2

これで Laravel 7 のインストールは完了です。

その他の作業

Laravel をインストールしたら、以下ディレクトリのパーミッションをwebサーバから書き込み可能にする必要があります。

  • storage
  • bootstrap/cache

つまり今回みたいな Linux 環境であれば、apache や nginx ユーザに設定したりします。

chown -R apache:apache /path/to/laravel/storage
chown -R apache:apache /path/to/laravel/bootstrap/cache

そして、ここまでの作業とは別に、DBを用意してそれらの情報を .env へ書き込みます。

そして、web サーバ(apache とか nginx)の設定(ドキュメントルートとかその辺を適当に)を行ったら、ブラウザから Laravel の動作が確認できるようになります。

Laravel 初期画面

まとめ

以上で作業は完了です。

Laravel は 6 からセマンティックバージョニングに準拠したので、5.x とかと比べるとバージョンの上がり方が早くなりました。

これからもどんどん進化を遂げていくと思うので、できるだけ新しいバージョンに対応させて、安全で便利な FW の恩恵を受けていきたいですね。