FreeBSD 12.3 RELEASE - apache24 - Laravel - インストール

クラウディア 
1. 概要
2. composer インストール
3. モジュールインストール
4. ディレクトリ作成
5. 所有権の設定

1. 概要

 「Laravel」のモジュールインストールに関して述べます。  「Laravel」は、「PHP」のフレームワークですので、この時点で「PHP」のインストールと基本的な設定は、終わっているものとします。  終わっていない場合は、前の方の節をご参照ください。

2. composer インストール

 「laravel」のモジュールは、「PHP」の「composer」を通して、インストールします。  なので、まずは、「composer」のインストールから・・・。  ただし、「composer」の「ports」は存在しておるのですが、「composer2」を使わないと怒られちゃいますので、「composer2」をインストールします。  「root」ユーザ権限で。

cd /usr/ports/devel/php-composer2
make config
「FreeBSD 12.3 RELEASE」-「/usr/ports/devel/php-composer2」「make config」

 オプションはデフォルトのままで、一気にインストールします。


cd /usr/ports/devel/php-composer2
make
make install clean
 この時点の「composer」のバージョンは、下記のとおりです。

$ composer --version
Composer version 2.2.4 2022-01-08 12:30:42

3. モジュールインストール

 「Laravel」のモジュールをインストールします。  これは、「root」ユーザ権限でやると怒られますので、ログインユーザ権限で実行します。

composer global require laravel/installer
 下記のようなログが出力され、すんなり、インストールできました。

Changed current directory to /home/hogehoge/.composer
Using version ^4.2 for laravel/installer
./composer.json has been updated
Running composer update laravel/installer
Loading composer repositories with package information
Updating dependencies
Lock file operations: 10 installs, 0 updates, 0 removals
  - Locking laravel/installer (v4.2.10)

・・・	略	・・・

  - Locking symfony/string (v6.0.2)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 10 installs, 0 updates, 0 removals
  - Downloading symfony/process (v6.0.2)
  - Downloading symfony/polyfill-mbstring (v1.24.0)

・・・	略	・・・

  - Installing laravel/installer (v4.2.10): Extracting archive
4 package suggestions were added by new dependencies, use 'composer suggest' to see details.
Generating autoload files
8 packages you are using are looking for funding.
Use the 'composer fund' command to find out more!
 「Laravel」のモジュールのパスを通しておきます。  わたしは、「tcsh」を使用していますので、「tcsh」を例にとりますが・・・。

vi ~/.cshrc
 下記の1行を適切な位置に挿入します。

set path = ($path ~/.composer/vendor/bin )
 編集したら、即時反映。

source ~/.cshrc
 この時点の「Laravel」のバージョンは、下記のとおりです。

$ composer --version
Composer version 2.2.4 2022-01-08 12:30:42

4. ディレクトリ作成

 「Laravel」を展開するディレクトリを作成します。

/usr/local/www/mine
 の下に「Laravel」ディレクトリを作成するものとして。  「root」ユーザ権限で。

mkdir -pv /usr/local/www/mine
chown -R グループID:ユーザID /usr/local/www/mine
 次に、ログインユーザで。

cd /usr/local/www/mine
composer create-project laravel/laravel laravel --prefer-dist

Creating a "laravel/laravel" project at "./laravel"
Installing laravel/laravel (v8.6.10)
  - Downloading laravel/laravel (v8.6.10)
  - Installing laravel/laravel (v8.6.10): Extracting archive
Created project in /usr/local/www/mine/laravel
> @php -r "file_exists('.env') || copy('.env.example', '.env');"
Loading composer repositories with package information
Updating dependencies
Lock file operations: 110 installs, 0 updates, 0 removals
  - Locking asm89/stack-cors (v2.1.1)

・・・	略	・・・

  - Locking webmozart/assert (1.10.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 110 installs, 0 updates, 0 removals
  - Downloading doctrine/inflector (2.0.4)

・・・	略	・・・

  - Downloading phpunit/phpunit (9.5.13)
  - Installing doctrine/inflector (2.0.4): Extracting archive

・・・	略	・・・

  - Installing phpunit/phpunit (9.5.13): Extracting archive
74 package suggestions were added by new dependencies, use 'composer suggest' to see details.
Package swiftmailer/swiftmailer is abandoned, you should avoid using it. Use symfony/mailer instead.
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: facade/ignition
Discovered Package: fruitcake/laravel-cors
Discovered Package: laravel/sail
Discovered Package: laravel/sanctum
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.
77 packages you are using are looking for funding.
Use the 'composer fund' command to find out more!
> @php artisan vendor:publish --tag=laravel-assets --ansi --force
No publishable resources for tag [laravel-assets].
Publishing complete.
> @php artisan key:generate --ansi
Application key set successfully.
 これで、元となるものは展開できました。

5. 所有権の設定

 「Laravel」を動作させる上で、ログやキャッシュのフォルダは、「www」の所有権にしておかないと権限エラーになるものがあります。  「root」ユーザ権限で、下記の設定を行います。

chown -R www:www /usr/local/www/mine/laravel/bootstrap/cache
chown -R www:www /usr/local/www/mine/laravel/storage/framework
chown -R www:www /usr/local/www/mine/laravel/storage/logs
ハイスピードプランPoint anytime