Laravel インストール&起動

2019/04/29

Linux PHPパッケージの用意

通常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

composer の用意

PHP7.3 で環境を作成するため、ソースでインストールした。 (Debian9系パッケージの composer だとエラーになる) PHP7.3 で compser install できない


composer -V
Composer version 1.8.5

Laravel インストール & プロジェクト作成

composer で Laravel をインストールし、~/.config/composer/vendor/ にコマンドパスを通す


$ composer global require "laravel/installer"
$ export PATH="~/.config/composer/vendor/bin:$PATH"

プロジェクト作成(laravelコマンド)

この時点でエラーになる場合は、ライブラリが不足している可能性がある ライブラリが膨大なため、まぁまぁ時間がかかる


$ 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

ここら辺はコマンド自動化した方が良いかと

プロジェクト作成(Composerコマンド)

こちらの方が一般的か? laravel のパスが利用できない場合は、以下のコマンドで作成


$ composer create-project laravel/laravel --prefer-dist project_name 5.8

Laravelサーバ起動

個人環境では、Mac上にVirtualBox(Debian)サーバを別IPでルーティングしているため、IPの指定(--host)が必要


$ php artisan serve --host=192.168.11.56

Laravel

リダイレクト設定

artisan serve でなく Apache で動作させる場合、public のリダイレクト設定が必要 VirtualHost で設定する方法もあるが、「.htaccess」で public をルートとみなすようにする

PHP7.x & Laravel5.x


    
        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