PHP フレームワーク「Laravel 9」インストール

PHP フレームワーク Laravel 9 をインストール。PHP の MVC フレームワーク Laravel でシステム開発する

PHP開発環境がない場合は「 AlmaLinux8.6, PHP8.1, MySQL8, Apache 」で LAMP 環境を構築後に実施。



練習1 : composer インストール

   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 2.2.1 2021-12-22 22:21:31

インストール手順(https://getcomposer.org/download/)参照


▼ composer インストーラーファイルをダウンロード

# php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"


▼ 正しいインストーラーファイルか確認。「Installer verified」と表示されればOK。正しくない場合はファイル削除

# php -r "if (hash_file('sha384', 'composer-setup.php') === file_get_contents('https://composer.github.io/installer.sig')) { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Installer verified


▼ composer インストール

# php composer-setup.php


▼ ファイル削除

# php -r "unlink('composer-setup.php');"


▼ composer を実行パスディレクトリに移動

# mv composer.phar /usr/local/bin/composer


▼ composer バージョン確認

# composer -V
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Continue as root/super user [yes]? yes
Composer version 2.3.5 2022-04-13 16:43:00


練習2 : Laravel 9 プロジェクト Document Root 設定

▼ openssl 秘密鍵作成

# openssl genrsa -out laravel.sunabird.local.key 2048


▼ openssl CSR 作成(緑文字は入力項目)

# openssl req -new -key laravel.sunabird.local.key -out laravel.sunabird.local.csr
You are about to be asked to enter information that will be incorporated
....
-----
Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:Kanagawa
Locality Name (eg, city) [Default City]:Yokohama
Organization Name (eg, company) [Default Company Ltd]:sunabird
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:laravel.sunabird.local
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:


▼ openssl 自己署名サーバー証明書作成

# openssl x509 -req -in laravel.sunabird.local.csr -signkey laravel.sunabird.local.key -sha256 -days 3650 -out laravel.sunabird.local.crt


▼ 鍵と証明書を移動

# mv laravel.sunabird.local.key /etc/pki/tls/private/
# mv laravel.sunabird.local.crt /etc/pki/tls/certs/


▼ laravel 用のディレクトリ作成

# mkdir /var/www/laravel.sunabird.local


▼ VirtualHost 設定(https に自動リダイレクト)

# vi /etc/httpd/conf.d/laravel.sunabird.local.conf

全て記載

<VirtualHost *:80>
  ServerName laravel.sunabird.local

  RewriteEngine on
  RewriteCond %{HTTP_HOST} ^laravel\.sunabird\.local
  RewriteRule ^/(.*)$ https://laravel.sunabird.local/$1 [R=301,L]
</VirtualHost>

<VirtualHost *:443>
  DocumentRoot /var/www/laravel.sunabird.local/public/
  ServerName laravel.sunabird.local:443

  ErrorLog "/var/log/httpd/laravel.sunabird.local.error.log"
  TransferLog "/var/log/httpd/laravel.sunabird.local.access.log"

  SSLEngine on
  SSLProtocol TLSv1.2 +TLSv1.3
  SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA
  SSLCertificateKeyFile /etc/pki/tls/private/laravel.sunabird.local.key
  SSLCertificateFile /etc/pki/tls/certs/laravel.sunabird.local.crt

  <Directory "/var/www/laravel.sunabird.local/public/">
    AllowOverride All
  </Directory>
</VirtualHost>

  • Laravel プロジェクトの Document Root はプロジェクトディレクトリ内の public ディレクトリを指定する

練習3 : Laravel 9 インストール

▼ Larabel プロジェクト(laravel.sunabird.local)生成

# composer create-project laravel/laravel=9.* /var/www/laravel.sunabird.local
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Continue as root/super user [yes]? yes
Creating a "laravel/laravel" project at "/var/www/laravel.sunabird.local"
...
...
Application key set successfully.

  • Laravel 8 をインストールする場合はコマンドのバージョン指定を変える
    composer create-project laravel/laravel=9.* ... → composer create-project laravel/laravel=8.* ...

▼ Larabel プロジェクトバージョン確認

# cd /var/www/laravel.sunabird.local
# php artisan -V
Laravel Framework 9.13.0

  • artisan コマンドは Laravel プロジェクトディレクトリで実行

MySQL に Laravel 用データベースを作成

▼ MySQL にログイン

# mysql -u root -p


▼ Laravel 用データベース laravel_sample を作成

mysql> CREATE DATABASE laravel_sample DEFAULT CHARACTER SET utf8mb4;
Query OK, 1 row affected (0.02 sec)
mysql> exit;
Bye


Laravel 初期設定

▼ config ファイルの編集

config/app.php (ファイル編集)

...
'timezone' => 'Asia/Tokyo',
...
'locale' => 'ja',
...


▼ 環境設定ファイル(.env)の編集

.env (ファイル編集)

...
APP_DEBUG=true
APP_URL=https://laravel.sunabird.local
...
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_sample
DB_USERNAME=root
DB_PASSWORD=(MySQL rootパスワード)
...
MAIL_MAILER=sendmail
MAIL_HOST=localhost
MAIL_PORT=1025
...

  • .env 設定が反映されない(bootstrap/cache/config.php が存在する)場合、設定キャッシュをクリア

# php artisan config:cache
Configuration cache cleared!
Configuration cached successfully!


▼ storage ディレクトリに編集権限を付与

# chmod -R 777 storage/


▼ 初期 DB テーブルを作成する

# php artisan migrate

  • artisan コマンドは Laravel プロジェクトディレクトリで実行

▼ Laravel の日本語化対応

# php -r "copy('https://readouble.com/laravel/8.x/ja/install-ja-lang-files.php', 'install-ja-lang.php');"
# php -f install-ja-lang.php
# php -r "unlink('install-ja-lang.php');"

  • php コマンドは Laravel プロジェクトディレクトリで実行

▼ Apache 再起動

# systemctl restart httpd


▼ Windows の hosts ファイル(C:\Windows\System32\drivers\etc\hosts)の編集

追加

192.168.56.107 laravel.sunabird.local


▼ ブラウザからアクセス(https://laravel.sunabird.local/)


ポイント

  • Laravel プロジェクトの Document Root はプロジェクトディレクトリ内の public ディレクトリを VirtualHost で指定
  • artisan コマンドは Laravel プロジェクトディレクトリで実行