通常PHP環境(PDO, JSON, LAMP & LAPP...)で最低限入れておけば動作しそうだが、laravel プロジェクト作成のバージョンによって異なる Installation(5.8)
# aptitude install php-zip php7.3-pdo php7.3-pgsql php7.3-mysql php7.3-mbstring php7.3-ssh2 php7.3-gd php7.3-curl php7.3-tokenizer php7.3-bcmath php7.3-ctype
PHP7.3 で環境を作成するため、ソースでインストールした。 (Debian9系パッケージの composer だとエラーになる) PHP7.3 で compser install できない
composer -V
Composer version 1.8.5
composer で Laravel をインストールし、~/.config/composer/vendor/ にコマンドパスを通す
$ composer global require "laravel/installer"
$ export PATH="~/.config/composer/vendor/bin:$PATH"
この時点でエラーになる場合は、ライブラリが不足している可能性がある ライブラリが膨大なため、まぁまぁ時間がかかる
$ laravel new project_name
...
- Installing symfony/translation (v4.2.7): Downloading (100%)
- Installing nesbot/carbon (2.17.1): Downloading (100%)
- Installing monolog/monolog (1.24.0): Downloading (100%)
- Installing league/flysystem (1.0.51): Downloading (100%)
- Installing laravel/framework (v5.8.14): Downloading (100%)
...
Package manifest generated successfully.
Application ready! Build something amazing.
storage, bootstrap/cache のパーミッションを変更しないと起動できない
$ chmod -R 777 storage
$ chmod -R 777 bootstrap/cache
ここら辺はコマンド自動化した方が良いかと
こちらの方が一般的か? laravel のパスが利用できない場合は、以下のコマンドで作成
$ composer create-project laravel/laravel --prefer-dist project_name 5.8
個人環境では、Mac上にVirtualBox(Debian)サーバを別IPでルーティングしているため、IPの指定(--host)が必要
$ php artisan serve --host=192.168.11.56
artisan serve でなく Apache で動作させる場合、public のリダイレクト設定が必要 VirtualHost で設定する方法もあるが、「.htaccess」で public をルートとみなすようにする
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ ^$1 [N]
RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
RewriteRule ^(.*)$ public/$1
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ server.php