2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Almalinux 9 でwordpress 環境構築してみた① (nginx + php-fpm)

Posted at

前提

  • 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;
        }

参考サイト

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?