- [Laravel-adminを導入しよう!その1] ConoHa VPSにCentOS Stream8をインストールしVSCodeでSSH接続できるようにする - Qiita
- [Laravel-adminを導入しよう!その2] CentOS Stream8にNginx、PHPをインストールする - Qiita ←本記事
- [Laravel-adminを導入しよう!その3] CentOS Stream8にLaravel9(PHP8、Nginx、MariaDB)をインストールする - Qiita
- [Laravel-adminを導入しよう!その4] [CentOS Stream8 & Nginx] 無料のSSL証明書「Let's Encrypt」でSSL化する - Qiita
- [Laravel-adminを導入しよう!その5] Laravel-adminをインストールしSSL化する - Qiita
概要
本シリーズは、VPS上に構築したCentOSに、IT資産管理ツールを構築することを最終目的としています。
IT資産管理ツールのUIは、Laravelの管理画面ライブラリである「Laravel-admin」を使用する予定です。
前回の記事では、VPS上のCentOSにSSH接続できるようにするところまでを説明しました。
今回は、NginxとPHPをインストールしてWebサーバーを構築します。
サーバー構成
OS: CentOS Stream8
Nginx: 1.20.2
PHP: 8.1.5
事前設定
# タイムゾーンをAsia/Tokyoに変更
sudo timedatectl set-timezone Asia/Tokyo
# selinuxをオフ
sudo grubby --update-kernel ALL --args selinux=0
# 設定を反映させるため再起動
sudo reboot
Nginxをインストール
Nginxをインストールしていきます。
nginx.repo
に以下を記載します。
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
インストールして、ファイアウォールの許可設定を追加します。
sudo dnf -y install nginx
sudo systemctl enable nginx
sudo systemctl start nginx
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload
Nginxの設定を書き換え
nginx.conf
を下記の通りに書き換えます。
user nginx;
worker_processes auto;
worker_rlimit_nofile 100000;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 2048;
multi_accept on;
use epoll;
}
http {
server_tokens off;
include /etc/nginx/mime.types;
default_type text/html;
charset UTF-8;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile off;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 10;
client_header_timeout 10;
client_body_timeout 10;
reset_timedout_connection on;
send_timeout 10;
limit_conn_zone $binary_remote_addr zone=addr:5m;
limit_conn addr 100;
gzip on;
gzip_http_version 1.0;
gzip_disable "msie6";
gzip_proxied any;
gzip_min_length 1024;
gzip_comp_level 6;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript application/json;
open_file_cache off;
client_max_body_size 20m;
server_names_hash_bucket_size 64;
include /etc/nginx/conf.d/*.conf;
}
PHPをインストール
# 有効バージョンをリセット
sudo dnf module reset php
# 8.1を有効にする
sudo dnf module enable php:remi-8.1
# PHPと関連ファイルをインストール
sudo dnf install php php-cli php-fpm php-curl php-mysqlnd php-gd php-opcache php-zip php-intl php-common php-bcmath php-imap php-imagick php-xmlrpc php-json php-readline php-memcached php-redis php-mbstring php-apcu php-xml
# バージョン確認
php -v
php-fpm、Nginxの設定を書き換え
www.conf
を下記の通り書き換える。
user = nginx
group = nginx
# php-fpmを再起動
sudo systemctl restart php-fpm
index.php
を下記の通り書き換える。
<?php phpinfo(); ?>
default.conf
を下記の通り書き換える。
server {
listen 80;
server_name example.jp;
root /var/www/html/example.jp/public;
index index.php index.html index.htm;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html/example.jp/public$fastcgi_script_name;
include fastcgi_params;
}
}
再起動しサービスに登録しておきます。
sudo systemctl restart nginx
sudo systemctl enable nginx
sudo systemctl enable php-fpm
ブラウザで動作確認
ブラウザでドメインにアクセスしてphpinfoが表示されたらOKです。
参考サイト
CentOS+NginxでLaravelを動かすまで(サーバー構築) | Reuhul tech memo
centos stream 9 に nginx と php8.1 をインストール - Qiita
CentOS Stream 8 の PHP 7.2 を 7.4 に変更する – ラボラジアン