前提
- TeraTerm 5 系が使用できること (ssh 接続できればなんでも大丈夫です)
記事目次
-
nginx + php-fpm インストールと設定 <- 今回の記事
-
MySQL の設定とWordpress インストールなど
nginx をインストールしてみよう
デフォルトでインストールできるのが nginx 1.22 みたいなので、それをインストールしていくことにします。
dnf module list nginx
Last metadata expiration check: 0:03:22 ago on Tue 05 Mar 2024 02:28:47 PM UTC.
AlmaLinux 9 - AppStream
Name Stream Profiles Summary
nginx 1.22 common [d] nginx webserver
dnf install nginx
complete となっていればオッケーです。
参考記事:
php をインストールしてみよう
今回は、php 7.4 系をインストールしたいので、デフォルトバージョンを確認したところ、php 8.1 しかデフォルトでインストールできないみたいです。
dnf module list php
Last metadata expiration check: 0:08:23 ago on Tue 05 Mar 2024 02:28:47 PM UTC.
AlmaLinux 9 - AppStream
Name Stream Profiles Summary
php 8.1 common [d], devel, minimal PHP scripting language
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
PHP 7.4 をインストールするためにrepo とremi をインストールしていきます。サードパーティーのレポをいれて、インストールできる幅を増やそうという魂胆です。
# EPEL repo
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
# Remi repo
dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
インストールしたところで、PHP のインストールできるバージョンをきいてみます。PHP 7.4 をインストールできるようになっていますね。
dnf module list php
Remi's Modular repository for Enterprise Linux 9 - x86_64 154 kB/s | 655 kB 00:04
Safe Remi's RPM repository for Enterprise Linux 9 - x86_64 211 kB/s | 989 kB 00:04
AlmaLinux 9 - AppStream
Name Stream Profiles Summary
php 8.1 common [d], devel, minimal PHP scripting language
Remi's Modular repository for Enterprise Linux 9 - x86_64
Name Stream Profiles Summary
php remi-7.4 common [d], devel, minimal PHP scripting language
php remi-8.0 common [d], devel, minimal PHP scripting language
php remi-8.1 common [d], devel, minimal PHP scripting language
php remi-8.2 common [d], devel, minimal PHP scripting language
php remi-8.3 common [d], devel, minimal PHP scripting language
普通にインストールすると、PHP 8 系がインストールされるので、それを避けるために、remi のPHP を指定してあげましょう。
# 普通にphp install する場合
dnf install php
# module を指定した場合
dnf module install php:remi-7.4
# package 一覧
Installing group/module packages:
php-cli x86_64 7.4.33-10.el9.remi remi-modular 4.5 M
php-common x86_64 7.4.33-10.el9.remi remi-modular 784 k
php-fpm x86_64 7.4.33-10.el9.remi remi-modular 1.6 M
php-mbstring x86_64 7.4.33-10.el9.remi remi-modular 519 k
php-xml x86_64 7.4.33-10.el9.remi remi-modular 171 k
Installing dependencies:
httpd-filesystem noarch 2.4.57-5.el9 appstream 12 k
libxslt x86_64 1.1.34-9.el9 appstream 240 k
oniguruma5php x86_64 6.9.9-1.el9.remi remi-safe 219 k
php-json x86_64 7.4.33-10.el9.remi remi-modular 35 k
Installing module profiles:
php/common
Enabling module streams:
php remi-7.4
nginx とPHP を繋げてみよう
# conf file 作成
touch /etc/nginx/conf.d/example.com.conf
# /var/www/html のドキュメントルートにファイル配置
touch /var/www/html/index.php
nginxのconf ファイルの中身
server {
listen 80;
server_name example.com;
keepalive_timeout 5;
access_log /var/log/nginx/example-com-access.log;
error_log /var/log/nginx/example-com-error.log;
location / {
root /var/www/html;
index index.php index.html;
try_files $uri $uri/ /index.php?$args;
include /etc/nginx/mime.types;
}
location ~ \.php$ {
root /var/www/html;
fastcgi_pass unix:/var/run/php-fpm/www.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
php-fpm で修正したのは、user とgroup をnginx ユーザに修正したのみです。それをやらないとどうも無理みたいでした。。
備忘録
以下のエラーがでてかなり困りました。
原因は、php-fpm のディレクティブに root を記述してあげることでした。
私の場合、phpファイルにアクセスした時に、file not found 表示が出るみたいでした。
Primary script unknown" while reading response header from upstream,,,,
# 修正前
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/www.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
# 修正後
location ~ \.php$ {
root /var/www/html;
fastcgi_pass unix:/var/run/php-fpm/www.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
参考サイト