CenoS8.2、PHP7.4のLAMP環境でLaravelを動かしたいと思ったけどおもいのほか時間がかかったのでメモ。
apache2.4、mysqlは8.0です。
【更新履歴】
2020/09/28 Laravelの名称間違いとか、簡易サーバーの名前の間違いを修正
参考

環境
Microsoft Windows [Version 10.0.18363.1082]
Vagrant 2.2.9
やったこと
CentOS8.2
CentOS8.2のVagrantfileを作成
vagrant init bento/centos-8.2
Vagrantfile下記のコメント「#」を外して適当なipにする(あとでLaravelで作ったページのアクセスに使う)
# config.vm.network "private_network", ip: "192.168.33.10"
仮想マシンを起動してログインしてrootになる
vagrant up vagrant ssh su
パッケージの更新
# dnf update
LAMPのインストール
remiリポジトリを追加するとdnfから必要なパッケージをインストールできるようになる
# dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
必要なパッケージを実際にインストール
# dnf install httpd mod_ssl mysql mysql-server php74-php-cli php74-php-fpm php74-php-mysqlnd php74-php-opcache php74-php-mbstring postfix php74-php-pecl-zip php74-php-xml
サーバー、DB、phpの起動
# systemctl start httpd # systemctl start mysqld # systemctl start php74-php-fpm
ステータス確認
Active: active (running) になっていれば動いている、カラフルになってた
# systemctl status httpd # systemctl status mysqld # systemctl status php74-php-fpm
自動起動を設定
自動起動を設定すると再起動しても自動的にサーバーが動くようになるので設定する。
(systemctl httpd startとかうってサーバーを起動しなくてよくなる)
# systemctl enable httpd Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service. # systemctl enable mysqld Created symlink /etc/systemd/system/multi-user.target.wants/mysqld.service → /usr/lib/systemd/system/mysqld.service. # systemctl enable php74-php-fpm Created symlink /etc/systemd/system/multi-user.target.wants/php74-php-fpm.service → /usr/lib/systemd/system/php74-php-fpm.service.
ちなみに、php74-php-fpmを起動しないでphpファイルにアクセスすると503エラーが出てhttpdのエラーログに下記のメッセージが残る。
[Thu Jul 16 04:56:03.270322 2020] [proxy:error] [pid 4517:tid 139640367433472] (2)No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /var/opt/remi/php74/run/php-fpm/www.sock (*) failed [Thu Jul 16 04:56:03.270367 2020] [proxy_fcgi:error] [pid 4517:tid 139640367433472] [client 192.168.33.1:61477] AH01079: failed to make connection to backend: httpd-UDS
バージョン確認
インストールが終わったのでバージョン表示してコマンドが動作するか確認する
# cat /etc/redhat-release CentOS Linux release 8.2.2004 (Core) # httpd -v Server version: Apache/2.4.37 (centos) Server built: Jun 8 2020 20:14:33 # php74 -v PHP 7.4.8 (cli) (built: Jul 9 2020 08:57:23) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies # mysql --version mysql Ver 8.0.17 for Linux on x86_64 (Source distribution)
phpでコマンド実行できるようにする
このままだと毎回phpコマンドを打つ際、php74に読み替えないといけなくなるので、phpでコマンド実行できるようにする
php74のコマンドがある位置をwhichで探す
# which php74 /usr/bin/php74
/usr/bin/フォルダにphpのシンボリックリンク作成すると、このコマンド名で実行できるようになるので、シンボリックリンクを作成する
# ln -s /usr/bin/php74 /usr/bin/php
phpでコマンド実行できるかバージョン情報を見ることで確認する
# php -v PHP 7.4.10 (cli) (built: Sep 1 2020 13:58:08) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.10, Copyright (c), by Zend Technologies
composerのインストールをする
インストール方法は個人サイトに書かないで公式サイトに公式を見てねみたいなことが書いてあるので、公式サイトを見たほうがいいと思う
# php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" # php -r "if (hash_file('sha384', 'composer-setup.php') === 'e5325b19b381bfd88ce90a5ddb7823406b2a38cff6bb704b0acc289a09c8128d4a8ce2bbafcd1fcbdc38666422fe2806') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" # php composer-setup.php # php -r "unlink('composer-setup.php');"
上記の方法までは公式記載のインストール方法。
この方法だと実行するたびに毎回ローカルにある「composer.phar」のファイルパスを指定してコマンド実行することになる。
なのでcomposerコマンドがどこでも使えるように実行ファイルを/usr/local/binに移動する。
# mv ./composer.phar /usr/local/bin/composer
バージョン確認してコマンドが使えることを確認
# composer -v ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 1.10.13 2020-09-09 11:46:34
usr/bin usr/local/bin の違いはここが詳しい

Laravelのイントール
Laravelをインストールするディレクトリを作って移動
# mkdir /var/www/laravel # cd /var/www/laravel
composer経由でlalavelをインストールしてmy_pageというプロジェクトを作成することにする。
# composer create-project laravel/laravel --prefer-dist my_page
ディレクトリを移動して(/var/www/laravel/my_page)プロジェクト内でcomposerを使ったインストール
# cd my_page # pwd /var/www/laravel/my_page # composer install
簡易サーバーの起動をする。
# php -S 0.0.0.0:8080 -t public
仮想マシンのipアドレスが「192.168.33.10」の場合、ipアドレスにポート指定した下記のurlでアクセスできるようになる。
http://192.168.33.10:8080
おわり。