NGINX 管理画面側の準備

環境

OS : Debian系Linux(Ubuntu等)

※ファイアウォール、時刻や言語設定等は当記事では触れませんので、適宜操作をお願いします。

※SOY CMSのMySQL版を利用する場合は事前にMySQLのインストールをお願いします。

※Ubuntu 22.04での操作になりますが、御利用中のバージョンに応じて適宜変更をお願いします。


PHPのインストール

今回はPHP8.2系で進めます。

他のバージョンを利用したい場合は、php8.2の数字を別のバージョンに変更すれば良いです。


最初に最新版のNGINXを取得する。

下記ページを参考にしています。

Ubuntu 22.04LTS へ公式リポジトリから apt で Nginx をインストールする | らくがきちょう v3

$ sudo mkdir -p /usr/local/share/keyrings/
$ curl -LO https://nginx.org/keys/nginx_signing.key
$ sudo gpg --no-default-keyring --keyring /tmp/temp-keyring.gpg --import nginx_signing.key
$ sudo gpg --no-default-keyring --keyring /tmp/temp-keyring.gpg --export --output /usr/local/share/keyrings/nginx.gpg
$ rm -f nginx_signing.key /tmp/temp-keyring.gpg

$ sudo nano /etc/apt/sources.list.d/nginx.list


下記の内容を追記する。

nginx.list

deb [arch=amd64 signed-by=/usr/local/share/keyrings/nginx.gpg] https://nginx.org/packages/mainline/ubuntu/ jammy nginx
deb-src [arch=amd64 signed-by=/usr/local/share/keyrings/nginx.gpg] https://nginx.org/packages/mainline/ubuntu/ jammy nginx

※jammyの箇所は使用中のubuntuのバージョンに合わせて変更してください

※Ubuntu23.04であればlunar

※amd64の箇所は使用しているCPUに合わせて適宜修正してください。


$ sudo apt update
$ sudo apt install nginx

# 最新のPHPを取得する
$ sudo apt install apt-file
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt install php8.2

# 各々のインストールが成功したか?出力結果は省略します
$ nginx -v
$ php -v

$ sudo apt install php8.2-curl php8.2-mysql php8.2-sqlite3 php8.2-mbstring php8.2-gd php8.2-xml php8.2-zip php8.2-apcu php8.2-fpm php8.2-cgi

NGINXとPHP-FPMを繋げる為に必要な値を探す。

$ sudo nano /etc/php/8.2/fpm/pool.d/www.conf
listen = /run/php/php8.2-fpm.sock

のような記述を探し、記録しておく。

他に

listen.owner = www-data
listen.group = www-data

を探し、

listen.owner = nginx
listen.group = nginx

に変更しておく。




$ sudo nano /etc/nginx/conf.d/default.conf

default.conf

server {
	listen       80;
	server_name  localhost;

	root /var/www/html;
	index  index.php index.html index.htm;

	charset utf-8;

	location ~ \.php {
		fastcgi_pass	unix:/run/php/php8.2-fpm.sock;	
		fastcgi_index	index.php;
		include	fastcgi_params;
		fastcgi_split_path_info	^(.+\.php)(/.+)$;
		fastcgi_param	PATH_INFO	$fastcgi_path_info;
		fastcgi_param	SCRIPT_FILENAME	$document_root$fastcgi_script_name;
	}

	location ~ /\.ht {
		deny  all;
	}
}

server_nameの値のlocalhostは自身のサーバに合わせて適宜修正します。

fastcgi_passの値はphp-fpmの方で記録しておいた値を指定します。


$ sudo /etc/init.d/nginx restart

/var/www/html/

がドキュメントルートになりますので、

/var/www/html/index.php

を作成して、


index.php

<?php
phpinfo();

にして、ブラウザを開き、http://localhost/にアクセスして、phpinfoの内容を確認した後、SOY CMSの設置を行ってください。

SOY CMSのインストール




常時SSL化(HTTPS化)でLet's Encryptを使用する場合、Certbotのページ(英語)に記載されている内容に沿って操作を行ってください。

Certbot


$ sudo apt install python3-certbot-nginx
$ sudo snap install --classic certbot
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
$ sudo certbot --nginx -d {ドメイン}

※{ドメイン}にはご利用中のドメイン(example.com等)を入れます。


Let's Encryptの設定後に自動更新の設定をしておきます。

$ sudo crontab -e
0 4 * * * certbot renew >> /var/log/le-renew.log

※0 4 * * * の箇所はcrontabの仕様に従って任意の時間を指定します。




ログの過剰蓄積問題を回避しておきます。

$ sudo nano /etc/systemd/journald.conf

下記の箇所を変更します。

#SystemMaxFileSize=

SystemMaxFileSize=300M

設定ファイル変更後に

$ sudo systemctl restart systemd-journald

を実行します。




上記で対応した内容だけでは、SOY CMSの管理画面側のみとなります。

作成したサイト毎にNGINXの設定ファイルを変更する必要がありますが、変更内容は次の記事に記載します。


関連記事

PHPで形態素解析エンジンのMaCabを使用する為の手順のメモ - saitodev.co

同じカテゴリーの記事