環境
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の設置を行ってください。
常時SSL化(HTTPS化)でLet's Encryptを使用する場合、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の設定ファイルを変更する必要がありますが、変更内容は次の記事に記載します。
関連記事
