Laravel 8をPHP 8の環境にComposerでインストールする

Laravel 8をPHP 8の環境にComposerでインストールする サーバー

PHP 8の環境でLaravel 8をインストールする方法を解説しています。
OSは、Ubuntu 20.04 LTSとなります。

本記事の内容

  • Laravel 8のシステム要件
  • Laravel 8をComposerでインストール
  • Laravel 8の動作確認

それでは、上記に沿って解説していきます。

Laravel 8のシステム要件

現時点(2021年6月)でのLaravelの最新バージョンは、8.5.19となります。
Laravelは随時更新されています。

Laravelのシステム要件は、以下です。

  • PHP 7.3以降 or PHP 8.0以降
  • Composer

それぞれを下記で説明します。

PHP 7.3以降 or PHP 8.0以降

今回は、PHP 8.0の環境を用意します。
PHP 8.0をインストールする方法は、次の記事で説明しています。

インストール済みPHPのバージョンは、以下。

$ php -v
PHP 8.0.7 (cli) (built: Jun  4 2021 21:26:10) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.7, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.7, Copyright (c), by Zend Technologies

Composer

Laravelには、以下の各OS毎にインストール方法が用意されています。

  • Windows
  • macOS
  • Linux

さらには、スクリプト、Sailを使ったインストール方法も存在しています。
なんかゴチャゴチャし過ぎで、覚えるのが面倒です。

そこで、Composerのインストールをおススメします。
同じコマンドで、どのOSでも同じように実行できます。
つまり、Composerを使う方法なら、1回覚えれば終わりです。

そのため、Composerは用意しましょう。
そもそも、PHPを利用する上では必須とも言えるモノです。

Composerのインストールに関しては、次の記事でまとめています。

まとめ

Laravelのインストールだけなら、Webサーバーは不要です。
PHP(コマンドライン版)とComposerだけで、インストールができます。

以上、Laravel 8のシステム要件について説明しました。
次は、Laravel 8をインストールしていきます。

Laravel 8をComposerでインストール

まずは、プロジェクトの設置場所を決めましょう。
別に、公開用ルートディレクトリに作成する必要はありません
初期設定を変更していないなら、「/var/www/html」がルートディレクトリになります。

では、いざLaravelのインストールです。
次の形式のコマンドを実行します。

composer create-project laravel/laravel [アプリ名(ディレクトリ名)]

実際には、次のコマンドを実行しています。

$ composer create-project laravel/laravel my_laravel

上記を実行すると、しばらく待たされます。
処理が上手く行くと、次のように表示されます。

Package manifest generated successfully.
74 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> @php artisan key:generate --ansi
Application key set successfully.

これでインストールは、完了です。

エラーが出る場合

インストールの最中に、次のようなエラーが出ることがあります。
このような場合は、エラーメッセージを確認しましょう。

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - laravel/framework[v8.40.0, ..., 8.x-dev] require ext-mbstring * -> it is missing from your system. Install or enable PHP's mbstring extension.
    - Root composer.json requires laravel/framework ^8.40 -> satisfiable by laravel/framework[v8.40.0, ..., 8.x-dev].

Laravel 8.5.19は、laravel/framework 8.40以降に依存しています。
このことは、「composer.json」を確認すればわかります。

    "require": {
        "php": "^7.3|^8.0",
        "fideloper/proxy": "^4.4",
        "fruitcake/laravel-cors": "^2.0",
        "guzzlehttp/guzzle": "^7.0.1",
        "laravel/framework": "^8.40",
        "laravel/tinker": "^2.5"
    },

composer.jsonには、必要な前提条件が記載されています。
そして、laravel/frameworkでは「ext-mbstring」に依存しています。

しかし、そのext-mbstring(PHP’s mbstring extension)が見つからないというエラーです。
じゃあ、そいつをインストールします。

$ sudo apt install php-mbstring

該当するエラーは、「php-mbstring」のインストールで解決しました。
このようにして、エラーを解消していけばよいでしょう。

まとめ

Laravelのインストールは、アプリケーション(ディレクトリ)を作成することです。
そのため、アプリケーションの数だけインストールすることになります。

したがって、現時点ではディレクトリ単位でアプリケーションを作成しただけなのです。
インストールという言葉に惑わされないようにしましょう。

肝心のインストールに関しては、簡単であり難しいかもしれません。
依存関係さえ整っていれば、何でもない作業です。

しかし、そうじゃないと原因追及などで時間がかかる可能性があります。

以上、Laravel 8をComposerでインストールする方法を説明しました。
最後は、Laravel 8の動作確認を行います。

Laravel 8の動作確認

動作確認は、次の処理に分けて説明します。

  • Laravelアプリケーションの起動
  • ファイアフォールの開放
  • ブラウザによる動作確認

それぞれを下記で説明します。

Laravelアプリケーションの起動

動作確認するためには、Laravelのアプリケーションを起動する必要があります。
起動するためのコマンドは、以下。
(※my_laravelに移動しておくこと)

php artisan serve

実行すると、以下のアドレスとポートでLaravelのアプリケーションが起動します。

$ php artisan serve
Starting Laravel development server: http://127.0.0.1:8000

ローカルマシン上で確認できるなら、上記で問題ありません。
IPとポートを指定する場合は、以下のように入力します。

$ php artisan serve --host 192.168.33.60 --port 8000
Starting Laravel development server: http://192.168.33.60:8000

「192.168.33.60」は、現在処理しているサーバーのIPアドレスです。
「8000」は、他と被らなければ何でもOK。

ただ、このままだと確認できません。
ポートを開放する必要があります。

ファイアフォールの開放

指定したポートを開放します。
今回は、8000ポートを開放していきます。

$ sudo ufw status | grep '8000'

何も表示されないなら、「8000」は未開放という状況になります。

なお、「ufw」コマンドが動かない場合は、次の記事をご覧ください
「ファイアウォールの設定」の箇所に、「ufw」のインストールについて説明があります。

「ufw」コマンドが動くなら、次のコマンドを実行します。

$ sudo ufw allow 8000
ルールを追加しました
ルールを追加しました (v6)

では、再度ポートの状況確認です。

$ sudo ufw status | grep '8000'
8000                       ALLOW       Anywhere
8000 (v6)                  ALLOW       Anywhere (v6)

ポートが、開放されています。
これで、外部から接続が可能となります。

ブラウザによる動作確認

Starting Laravel development server: http://192.168.33.60:8000

デプロイした際のURLにアクセスします。

上記の画面が見れれば、動作の確認ができました。

ここで不思議に思いませんか?
Apacheとか関係なく(8000ポート)、Webページが見れていることに。

これには、PHPのビルトインウェブサーバーが関係しています。
PHPには、簡易的なWebサーバー機能があるのです。

ただし、これは本格的には利用できません。
そのため、LaravelアプリケーションをApacheやNginxで動かすことになります。

その連携のためには、別途連携用の設定が必要となります。
設定と言っても、公開用ルートディレクトリ以下にディレクトリを置くだけですけどね。

その置き方には、いろいろな方法があります。
Nginxでバーチャルホストを設定する場合は、次の記事が参考になるでしょう。

以上、Laravel 8の動作確認に関して説明しました。

タイトルとURLをコピーしました