投稿日:2024年6月29日

申し込みフォームやちょっとしたシステムはPHPWordPressを使っています。
スキルアップ、新しいことへのチャレンジ、仕事の都合上Laravelの必要を感じ、およそ半年前から勉強を続けてきました。

今回はLaravelをローカル環境(任意のディレクトリ、MAMP環境)と、さくらサーバーに設置し表示させるところまでお伝えしたいと思います。

Laravelとは、アプリ開発やシステム開発に特化したPHPフレームワークです。
Model(モデル)、View(ビュー)、Controller(コントローラー)。
MVCと呼ばれる設計モデルに、プログラムの役割を分担させる特徴があります。
さらに、webを見ている人からのリクエスト、サーバーからのレスポンスといった、データ転送時の経路を管理するルーティングと呼ばれる設計も含んでいます。

この辺については別の機会に詳しく紹介したいと思います。
ローカル環境の任意のディレクトリにインストールしてみましょう。
LaravelのインストールにはCOMPOSER というものが必要になります。

 COMPOSERのインストール(Mac)

COMPOSER のトップページからDownloadボタンをクリックします。

▲ちなみにページにアクセス、リロードするたびにアイコンの色が変わります。

▲ダウンロードの画面。中央のコマンドが必要になります。
今回はデスクトップにインストールする想定で進めます。
前提として、PHPはすでにインストールしてあることとします。

Macの場合ターミナルを起動。cd desktopと入力しディレクトリをデスクトップに移動します。

▲Macのターミナル

先ほどのCOMPOSERのコマンドをターミナルに入力(コピペ)します。
一度に4行コピペしてかまいません。

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

▲コマンド実行後、デスクトップにcomposer.pharというファイルが作られます。
composerとはPHPのパッケージ管理システムになり、LaravelはこのCOMPOSERを使用してインストールを行います。

 Laravelのインストール(Mac)

Laravelをインストールします。
ターミナルで以下のコマンドを入力します。

composer create laravel/laravel アプリケーション名

▲「アプリケーション名」に作成したいアプリケーション名を入力します。
今回は「laravel-test」としておきます。

▲しばらくターミナルでのインストール作業が進み、完了すると上のようなフォルダが出来上がります。これがLaravelの実態になります。

続けてターミナルに戻り以下のように入力します。

cd laravel-test で作成したLaravelアプリに移動し、php artisan serve で起動します。
artisan は職人という意味で、artisan コマンドを使って Laravel を操作してゆきます。

▲サーバーが起動するので表示されているhttp://127.0.0.1:8000にアクセスします。

Laravelの画面が表示されました。これで完了です。

 COMPOSERのインストール(Windows)

▲WindowsでCOMPOSER にアクセスするとexeファイルをダウンロードするテキストが表示されます。
ダウンロードします。

 注意点

最新のPHP8.3.1で、COMPOSERをインストールすると下図のようなエラーが表示されます。

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

  Problem 1
    - laravel/framework[v11.9.0, ..., v11.13.0] require league/flysystem ^3.8.0 -> satisfiable by league/flysystem[3.8.0, ..., 3.28.0].
    - league/flysystem[3.3.0, ..., 3.14.0] require league/mime-type-detection ^1.0.0 -> satisfiable by league/mime-type-detection[1.0.0, ..., 1.15.0].
    - league/flysystem[3.15.0, ..., 3.28.0] require league/flysystem-local ^3.0.0 -> satisfiable by league/flysystem-local[3.15.0, ..., 3.28.0].
    - league/mime-type-detection[1.0.0, ..., 1.3.0] require php ^7.2 -> your php version (8.3.1) does not satisfy that requirement.
    - league/mime-type-detection[1.4.0, ..., 1.15.0] require ext-fileinfo * -> it is missing from your system. Install or enable PHP's fileinfo extension.
    - league/flysystem-local[3.15.0, ..., 3.28.0] require ext-fileinfo * -> it is missing from your system. Install or enable PHP's fileinfo extension.
    - Root composer.json requires laravel/framework ^11.9 -> satisfiable by laravel/framework[v11.9.0, ..., v11.13.0].

To enable extensions, verify that they are enabled in your .ini files:
    - C:\MAMP\bin\php\php8.3.1\php.ini
You can also run `php --ini` in a terminal to see which files are used by PHP in CLI mode.
Alternatively, you can run Composer with `--ignore-platform-req=ext-fileinfo` to temporarily ignore these required extensions.

PHP8.3.1を選択しCOMPOSERをインストールした場合のエラー。

;extension=fileinfo
↓
extension=fileinfo

;extension=gd
↓
extension=gd

▲同梱されている(今回はMAMP内) php.ini の941、942行目のコメントアウトを解除する必要があります。

▲上記のコメントアウトを解除しLaravelをインストール。実行すると今度はsqliteに関するエラーが表示されます。

;extension=pdo_sqlite
↓
extension=pdo_sqlite

;extension=sqlite3
↓
extension=sqlite3

▲同様に php.ini の959、970行目のコメントアウトを解除します。

これらを鑑み、上記のコメントアウトの解除を行ってからCOMPOSERLaravelのインストールを行いましょう。

▲ダウンロードしたexeを実行します。

▲全てのユーザーか自分だけで使用するかの選択です。
全てのユーザー用にインストールすることが推奨されています。
Install for all usersをクリックします。

▲開発者モードのチェックは外しておきます。
チェックを入れるとアンインストーラーは含まれなくなります。

▲PHPを指定する画面です。
MAMPに含まれているPHPを指定します。
バージョンが低いとインストールできるLaravelのバージョンも制限されるのでLaravelのバージョンに合わせて選びましょう。

▲プロキシサーバーを使用するかの選択です。
今回はチェックを外します。

▲確認画面です。
大丈夫ならInstallをクリックし進みます。

▲初めてComposerを使用する場合の注意事項が表示されます。
内容は以下です。

Please read the following information before continuing.

important
You must open a new command window to use Composer for the first time, because your environment has changed and running programs may not be aware of this.

if this does not work, you will have to do one of the following

-Close all File Explorer windows, then open a new command window.
-OR Logoff and Login again, then open a new command window.

As a last resort, you may need to restart your composer.

和訳すると以下のようになります。

続行する前に、以下の情報をお読みください。

重要
Composerを初めて使用するときは、新しいコマンドウィンドウを開く必要があります。環境が変更され、実行中のプログラムがそれに気づかない可能性があるからです。

これがうまくいかない場合は、次のいずれかを行う必要があります。

-ファイルエクスプローラーのウィンドウをすべて閉じてから、新しいコマンドウィンドウを開く。
-または、一旦ログオフしてから再度ログインし、新しいコマンドウィンドウを開く。

最後の手段として、コンポーザーを再起動する必要があるかもしれません。

確認したらNextをクリックします。

▲インストール完了画面です。Finishをクリックします。

Laravelをインストールしましょう。

 Laravelのインストール(Windows)

▲コマンドプロンプトを開き cd desktop と入力しディレクトリを移動します。
移動後 composer create laravel/laravel laravel-test を入力し実行します。
この辺はMacと同じです。

▲インストール後、表示される http://127.0.0.1:8000 にアクセスするとLaravelの画面が表示されます。
これで完了です。

 MAMP環境にインストール

ローカルサーバー構築にはXAMPPMAMPといったツールを使います。
今回はMAMPを使用します。
これらのツールは過去に紹介してます ので、宜しかったらご一読ください。

htdocsへのLaravelのインストール方法は、上記したローカルへのインストール方法と同じなので省略します。

▲MAMPを起動し、ルートに設定したディレクトリにアクセスします。

▲localhostのディレクトリです。publicが公開フォルダになっています。

▲localhost/laravel/public/ にアクセルすればLaravelが表示されます。
少々冗長ですね。
URLの指定をlocalhostと入力するだけでアクセスできる方法があります。
httpd.confの最下部へ下記を追記します。

Alias / "/Applications/MAMP/htdocs/laravel-test/public/" 
<Directory "/Applications/MAMP/htdocs/laravel-test/public/">
   Options Indexes FollowSymLinks MultiViews
   AllowOverride all
      Order allow,deny
   Allow from all
</Directory>

▲1、2行目のディレクトリはLaravelをインストールしたディレクトリを指定してください。
httpd.confの場所はMacの場合、
アプリケーション/MAMP/conf/apache/httpd.conf
になります。

▲localhostの入力で表示できるようになりました。

 さくらサーバーにインストール

さくらサーバーにインストールしてみます。
まずはディレクトリを指定してインストールする方法です。

 COMPOSERのインストール(さくらサーバー)

SSHコマンドを使ってサーバーにログインします。
ターミナルを起動し、ssh ユーザー名@初期ドメイン名 を入力します。

▲SSHコマンドでサーバーにログインします。

▲パスワードの入力を求められるので入力します。
セキュリティのため入力、コピペしても表示はされません。そのままenterを押します。
ログインに成功すればWelcom to FreeBSD!と表示されます。

COMPOSERをインストールします。
インストールしたいディレクトリに移動します。

▲cdで移動しても何も表示されないのでlsと入力してディレクトリを確認します。
ディレクトリ内のファイル類が一覧表示されます。

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

▲続けてローカルで使用したコマンドを入力します。
これも4行まとめてのコピペで大丈夫です。
しばらくインストール作業が続きます。

lsコマンドで確認してみます。COMPOSERがインストールされました。

Laravelをインストールします。
上のコマンドを入力します。laravel-testという名前でインストールします。

lsで確認してみます。インストールされました。

▲URL、~/laravel-test/public/にアクセスし上図が表示されれば成功です。

しかし、localhostと同様、公開フォルダが ~/laravel-test/public/ のように public が付いていては少々違和感を覚えます。
Laravelを調節します。

▲publicフォルダのindex.phpを1つ上のディレクトリに移動します。

▲index.phpを開き、上記のディレクトリを記述している箇所を右にように書き換えます。
これでルートを公開ディレクトリにすることができます。

▲publicフォルダではないディレクトリから公開できました。

なお、さくらサーバー ではドメインを作成して公開ディレクトリに設定する方法を紹介しています。

▲さくらサーバーでは2つの無料ドメインを取得することができます。
もちろんドメインを購入して、それに紐づけても方法は同じです。
ディレクトリの指定はpublicまで含める必要があります。

▲オリジナルドメインで接続できました。

まとめ

PHPのバージョンによってインストールできるLaravelのバージョンも変わってきます。
書籍を参考に勉強してます。
Laravelのバージョンが新しく、記事が古かった場合、プログラムが動かなかったりします。
作業内容に相応しいバージョンをインストールするのがベターかと思います。

引き続き習得したいと思います。

最後までお読みいただき、ありがとうございます。

参考にしたメディア
Pocket