📚
Laravel+Livewireで遊ぶ為の環境作り on CentOS8
Laravel+Livewireで遊ぶ為の環境づくり on CentOS8[1]
前提
-
クラウド
VPS
仮想環境
LinuxPC
どれでも良いのでLinux環境を用意出来る事 - OS付属のパケットフィルタ(ファイヤーウォール)[2]を設定出来る事
- WEBサーバーはapache2.x、phpはmod_phpで動作
- https非対応
- この記事で使う環境はdockerのcentOS8のイメージ ※真似すると躓くので注意
パッケージインストール
インストール
OSアップデート
command
#OSアップデート
[root@0117bc9732cb /]# dnf -y update
command
epelリポジトリ追加
[root@0117bc9732cb /]# dnf -y install epel-release && dnf -y update
command
#php、apache、sqlite、redisのインストール
[root@0117bc9732cb /]# dnf install -y php httpd libsqlite3x-devel redis
#phpのインストール
[root@0117bc9732cb /]# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
[root@0117bc9732cb /]# dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
[root@0117bc9732cb /]# dnf module reset php
[root@0117bc9732cb /]# dnf module install php:remi-7.4
[root@0117bc9732cb /]# dnf update
#細々したものインストール
[root@0117bc9732cb /]# dnf install -y libzip-devel libxml2-devel
#細々したものインストール2
[root@0117bc9732cb /]# dnf install php-json php-xml php-pecl-zip unzip mod_php php-pecl-redis5
各パッケージの動作確認
apache
command
[root@0117bc9732cb /]# systemctl start httpd
http://IPアドレスにアクセス
php
command
[root@0117bc9732cb /]# php -v
PHP 7.4.15 (cli) (built: Feb 2 2021 14:19:57) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
SQLite
command
[root@0117bc9732cb /]# sqlite3 dbfile
SQLite version 3.26.0 2018-12-01 12:34:55
Enter ".help" for usage hints.
sqlite>
Laravelインストール
composerのインストール
composerの公式ページを参考に
command
[root@0117bc9732cb /]# php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
[root@0117bc9732cb /]# php -r "if (hash_file('sha384', 'composer-setup.php') === '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f76181c7d3') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
[root@0117bc9732cb /]# php composer-setup.php
[root@0117bc9732cb /]# php -r "unlink('composer-setup.php');"
[root@0117bc9732cb /]# mv composer.phar /usr/bin/composer
Laravelインストーラーのインストール
laravel公式ページを参考に
command
[root@0117bc9732cb /]# composer global require laravel/installer
[root@0117bc9732cb /]# export PATH=$HOME/.config/composer/vendor/bin:$PATH
Laravelのインストール
command
[root@0117bc9732cb /]# mkdir /var/www
[root@0117bc9732cb www]# laravel new lfz-app
message _ _
| | | |
| | __ _ _ __ __ ___ _____| |
| | / _` | '__/ _` \ \ / / _ \ |
| |___| (_| | | | (_| |\ V / __/ |
|______\__,_|_| \__,_| \_/ \___|_|
~ごちゃごちゃごちゃ~
Apacheの設定
[3]
apacheの動作モード変更vim /etc/httpd/conf.modules.d/00-mpm.conf
#LoadModule mpm_event_module modules/mod_mpm_event.so#コメントアウト
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
バーチャルホストの設定
vim /etc/httpd/conf.d/laravel.conf
<VirtualHost *:8880>
DocumentRoot /var/www/lfz-app/public
ServerName localhost
RewriteEngine on
DirectoryIndex index.html index.php
<Directory "/var/www/lfz-app">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
-
<VirtualHost *:8880>
の8880
は使うポートを指定 -
ServerName localhost
のlocalhost
は使うドメインを指定
Laravel動作確認
Apache再起動
command
[root@0117bc9732cb www]# systemctl restart httpd
サイト表示
http://localhost:8880
エラーが表示される事の確認
The stream or file "/var/www/lfz-app/storage/logs/laravel.log" could not be opened in append mode: failed to open stream: Permission denied
ディレクトリ権限の変更
command
[root@0117bc9732cb www]# chmod -R 777 /var/www/lfz-app/storage
サイト表示 part2
http://localhost:8880
正常に表示出来る事の確認
SQLite用に.envの修正
vim /var/www/lfz-app/.env
DB_CONNECTION=sqlite
DB_DATABASE=/var/www/lfz-app/lfz_app.sqlite
DB_FOREIGN_KEYS=true
command
[root@0117bc9732cb www]# cd /var/www/lfz-app
[root@0117bc9732cb lfz-app]# touch /var/www/lfz-app/lfz_app.sqlite
[root@0117bc9732cb lfz-app]# php artisan config:cache
参考
https://laravel.com/docs/8.x/database#sqlite-configuration
マイグレーション
command
[root@0117bc9732cb lfz-app]# php artisan migrate
Redisの導入
Redisサーバー起動
command
[root@0117bc9732cb lfz-app]# systemctl start redis
Redis接続確認
command
[root@0117bc9732cb lfz-app]# redis-cli
127.0.0.1:6379> exit
tinkerでRedisが使える事を確認
[root@0117bc9732cb lfz-app]# php artisan tinker
Psy Shell v0.10.6 (PHP 7.4.15 — cli) by Justin Hileman
>>> use Redis;
>>> $redis = new Redis();
=> Redis {#3344
isConnected: false,
}
>>> $redis->connect('127.0.0.1', '6379');
=> true
>>> $redis->set('LfzKey', 'livewire de A So Bu');
=> true
>>> $redis->get('LfzKey');
=> "livewire de A So Bu"
参考
nodejsの追加
command
[root@0117bc9732cb lfz-app]# curl -sL https://rpm.nodesource.com/setup_15.x | bash -
[root@0117bc9732cb lfz-app]# dnf update
[root@0117bc9732cb lfz-app]# dnf -y install nodejs
[root@0117bc9732cb lfz-app]# npm update
注意事項まとめ
-
Laravel+Livewireで遊ぶではdockerコンテナを複数使って構築しており、webサーバーもnginxを使っています ↩︎
-
RH系ならfirewalld(iptables)、debian系ならufw
よく分からない人はVPSならパケットフィルタリングサービス付きのVPSでフィルタリング設定してOSのフィルタはノーガードに設定しましょう
ローカル環境ならノーガードでOKです ↩︎ -
mod_phpを使う為に必要です
これをしない場合はphp-fpm
の設定が必要です ↩︎
Discussion