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/)
