みなさん、こんにちは。どんぶラッコです。
今回はCentOSをミニマムインストールした状態でNginxを導入し、Laravelを動かせるようにするまでの手順をご紹介します!
Laradockなど便利なDockerイメージの登場で1からセットアップする機会も少なくなってきたかもしれませんが、一度チャレンジしてみてはいかがでしょうか?
今回は既にCentOS7を利用できる環境があるという前提で解説します!
目次
yum
コマンドのアップデート
yum
が最新状態かを確認する
yum check-update
sudo yum update
nginxインストール
https://www.nginx.com/resources/wiki/start/topics/tutorials/install/
yum
の参照先を作成
yum
の参照先を作成してからインストールする必要がある。viで nginx.repo
を作成
sudo vi /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=https://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
その後、yum
経由で nginx
をインストール
sudo yum install nginx
nginx -v
# 自動起動設定 & 起動
sudo systemctl enable nginx
sudo systemctl start nginx
phpのセットアップ
参考: CentOS7にPHP7.3をインストールする – suzu6
phpバージョン確認。初期状態なら入っていない。
php -v
-bash: php: コマンドが見つかりません
EPELリポジトリを追加
EPELとは… https://qiita.com/charon/items/f5732694515d174851b3
Extra Packages for Enterprise Linux の略。エンタープライズ用の高機能なパッケージが提供されているとざっくり理解しておけばOKです
sudo yum install epel-release
sudo yum update
Remiリポジトリを追加
公式のウィザードを使うと適切なインストール方法を提示してくれる。
https://rpms.remirepo.net/wizard/
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum update
sudo yum repolist
を入力して、こんな表示が出ればOKです
[centos@ip-***]$ sudo yum repolist
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: d36uatko69830t.cloudfront.net
* epel: nrt.edge.kernel.org
* extras: d36uatko69830t.cloudfront.net
* remi-safe: ftp.riken.jp
* updates: d36uatko69830t.cloudfront.net
リポジトリー ID リポジトリー名 状態
base/7/x86_64 CentOS-7 - Base 10,070
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,266
extras/7/x86_64 CentOS-7 - Extras 392
nginx/7/x86_64 nginx repo 186
remi-safe Safe Remi's RPM repository for Enterprise Linux 7 - x86_64 3,801
updates/7/x86_64 CentOS-7 - Updates 245
repolist: 27,960
ここまで設定をしたら、PHPのパッケージをインストールします。今回はPHP7.3系をインストールします。
sudo yum -y install --enablerepo=epel,remi,remi-php73 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt php-fpm php-mysql php-mysqlnd
改めてPHPのバージョンを確認し、PHPの情報が出てきたら成功です。
[centos@ip-*** ~]$ php -v
PHP 7.3.18 (cli) (built: May 12 2020 08:04:33) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.18, Copyright (c) 1998-2018 Zend Technologies
php-fpmの設定
nginx用に www.conf
内設定を変更します。
sudo vi /etc/php-fpm.d/www.conf
;listen = 127.0.0.1:9000 を書き換える
listen = /var/run/php-fpm/php-fpm.sock
[中略]
; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server.
; Default Values: user and group are set as the running user
; mode is set to 0660
; オーナー・グループを nginxに変更
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
もし既に /var/run/php-fpm/php-fpm.sock
が作られている場合は削除するか、オーナーと権限を nginx
に書き換えてあげます。
sudo chown nginx /var/run/php-fpm/php-fpm.sock
sudo chgrp nginx /var/run/php-fpm/php-fpm.sock
git
をインストール
yumでインストールするとversion 1系がインストールされてしまうので、version2系をインストールするための方法が方々で紹介されています。
https://www.digitalocean.com/community/tutorials/how-to-install-git-on-centos-7
ここでは簡単に yum
を使って入手してしまいましょう。
sudo yum install git
zip
, unzip
をインストール
Laravelなどでcomposer
を使う場合、 zipの解凍ができないと怒られるので両パッケージ をインストールします。
sudo yum install zip unzip
SELinux をオフにする
Laravelを使っているとSELinuxが原因で permission deniedが出てしまいます。Permissiveモードに変更しましょう。
getenforce
# enforcing と出たら起動してる
sudo setenforce 0
# permissive に変更