PHP

CentOS7 × Nginx でLaravelを動かす! – ①CentOSとNginxの設定

みなさん、こんにちは。どんぶラッコです。

今回は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 に変更

ABOUT ME
どんぶラッコ
ECコンサルタント、システムエンジニア経験を経て、ProgLearnのシステム開発を担当。

\面白いと思ったら/

記事のシェア & Twitter のフォロー をお願いします!

@proglearn

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です