Closed7

はじめての Windows + Laravel 環境構築

PHP の知識も Laravel の知識もゼロの状態から、環境構築、プロジェクトを作成してサーバーを起動するところまでやってみる。

前提条件

  • Windows 10 Pro 20H2
  • Scoop 導入済み
  • コマンドは、すべて PowerShell Core 7 で実行。(コマンドプロンプトでも問題ないはず。)

公式ドキュメント を参考に、composer を利用したインストールをする。
composer は、依存関係の管理をしてくれるツールのようで、Java の Gradle、Node の npm といったツールだと思っている。

まず、Scoop を使い php, composer をインストールする。

> scoop install php composer

とくに問題なくインストールできた。

次に、composer を使い Laravel プロジェクトを作成する。

> composer create-project laravel/laravel sample-app

真っ赤なエラー画面が表示される。

[Composer\Exception\NoSslException]
The openssl extension is required for SSL/TLS protection but is not available.
If you can not enable the openssl extension, you can disable this error, at your own risk,
by setting the 'disable-tls' option to true.

調べてみると、php.ini ファイルを作成し、OpenSSL の拡張を有効化しなければいけないらしい。

次の手順で、php.ini ファイルの作成と、OpenSSL 拡張を有効化する。

  1. PHP インストールフォルダー (%USERPROFILE%\scoop\apps\php\current\) にある php.ini-development ファイルをコピーし、php.ini ファイルを作成する。
  2. php.ini ファイルをエディターで開き、次の 2 つの文字列を検索し、コメントアウトを外す。
    • extension_dir = "ext"
    • extension=openssl

上記対応後、再度 composer コマンドによるプロジェクト作成を実行。

> composer create-project laravel/laravel sample-app

進んだように見えたがエラー。

(一部抜粋)
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].

どうやら mbstring という拡張も必要なようだ。

再度 php.ini ファイルをエディターで開き、拡張の箇所 extension=mbstring のコメントアウトを外す。

再挑戦したが、同じように拡張が不足しているエラーが発生。
一回で全部出してくれ・・・。

最終的に、次の拡張に対してコメントアウトを外した。(これまでに作業したものも含んでいる。)

  • extension=fileinfo
  • extension=mbstring
  • extension=openssl

最後に Application key set successfully. と表示され、エラーが発生しなかったので大丈夫そう。

プロジェクトディレクトリーに移動後、次のコマンドを実行し、開発用サーバーを起動する。

> php artisan serve
Starting Laravel development server: http://127.0.0.1:8000
[Sun Jun 13 11:13:37 2021] PHP 8.0.7 Development Server (http://127.0.0.1:8000) started

ブラウザーを起動し、上記サーバーにアクセスすると、Laravel の文字が表示されたので、大丈夫そう。

このスクラップは4ヶ月前にクローズされました
ログインするとコメントできます