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の動作確認に関して説明しました。