PHP-FPM(php7.4) Apache2.4 でWebサーバ構築 on CentOS8

2021-01-17
phpapachecentosred%20hat
    

目次

概要

CentOS8 に PHP7.4 + Apache2.4 をインストールしてWebサーバを構築した際のメモです。 ここで紹介するのはデフォルトと殆ど変わらないオプションでApache + php-fpmを構築する手順です。

環境

  • CentOS8.3 (docker)
cat /etc/redhat-release 
CentOS Linux release 8.3.2011

docker は次のオプションで起動する。

$ docker run --detach --name test -p 8080:80 --privileged  -it centos:8 /sbin/init

※ ここで紹介している操作は全てrootユーザで実施しています。

php7.4 のインストール

php7.4のインストールは次のページを参考にしました。

CentOS8 に PHP7.4 インストール

$ dnf module list php # php7.4があることを確認
$ dnf module install php:7.4
$ dnf install php

apacheのインストール

以下のコマンドを実施します。

$ dnf install httpd

php-fpmの設定を変更する

php-fpmの設定を変更します。 設定ファイルは、 /etc/php-fpm.d/www.conf にあります。

+listen.owner = apache
+listen.group = apache

-listen.acl_users = apache,nginx
+;listen.acl_users = apache,nginx

php-fpm の起動

$ systemctl restart php-fpm

でphp-fpmを起動します。以下のコマンドのように statusを確認して active になっていればOKです。

$ systemctl status php-fpm
● php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
   Active: active (running) since Sun 2021-01-17 07:28:31 UTC; 3min 45s ago
 Main PID: 620 (php-fpm)
   Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 6 (limit: 11868)
   Memory: 10.1M
   CGroup: /docker/9cd225d5a0b658092395ffc308219bf22534a1950f2d1cc35b9edd3a5b0837b9/system.slice/php-fpm.service
           ├─620 php-fpm: master process (/etc/php-fpm.conf)
           ├─621 php-fpm: pool www
           ├─622 php-fpm: pool www
           ├─623 php-fpm: pool www
           ├─624 php-fpm: pool www
           └─625 php-fpm: pool www

Jan 17 07:28:31 9cd225d5a0b6 systemd[1]: Starting The PHP FastCGI Process Manager...
Jan 17 07:28:31 9cd225d5a0b6 systemd[1]: Started The PHP FastCGI Process Manager.

apacheの起動

以下のコマンドで apache を起動します。

$ systemctl enable httpd
$ systemctl start httpd

status を確認し activeになっていることを確認します。

systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           └─php-fpm.conf
   Active: active (running) since Sun 2021-01-17 07:09:55 UTC; 1min 2s ago
     Docs: man:httpd.service(8)
 Main PID: 278 (httpd)
   Status: "Total requests: 6; Idle/Busy workers 100/0;Requests/sec: 0.102; Bytes served/sec: 5.4KB/sec"
    Tasks: 213 (limit: 11868)
   Memory: 16.9M
   CGroup: /docker/9cd225d5a0b658092395ffc308219bf22534a1950f2d1cc35b9edd3a5b0837b9/system.slice/httpd.service
           ├─278 /usr/sbin/httpd -DFOREGROUND
           ├─282 /usr/sbin/httpd -DFOREGROUND
           ├─283 /usr/sbin/httpd -DFOREGROUND
lines 1-14...skipping...
● httpd.service - The Apache 

確認

/var/www/html に index.php を作成します。

index.php

<?php
phpinfo();

http://localhost:8080/ にアクセスして画面が表示されていればApacheの設定は完了です。

おまけ: エラーと解決方法

上記の作業を実施する時にハマったエラーについて記載します。

"System has not been booted with systemd as init system (PID 1). Can't operate ..."が発生する時

systemd 起動時に次のようなメッセージが出ることがあります。

System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down

これは docker 起動時に --privileged/sbin/init を指定していないため発生すると思われます。

failed to read the acl of the socket '/run/php-fpm/www.sock'

failed to read the acl of the socket '/run/php-fpm/www.sock'

というエラーが出ている場合や systemctl status php-fpm の結果がfailed の場合は php-fpm の設定に不備があります。

+listen.owner = apache
+listen.group = apache

-listen.acl_users = apache,nginx
+;listen.acl_users = apache,nginx

の設定を追加したら、/run/php-fpm/www.sockが作成され、php-fpmのstatusもactiveになりました。

参考にしたサイト

failed to read the acl of the socket '/run/php-fpm/www.sock'

CentOS 8 標準の Apache と PHP の関係について

CentOS 8のApache環境にPHP 7.2をインストールして使えるようにする手順

    
s-yoshiki
s-yoshiki
githubtwitterqiita
Web作ってますが、インタラクティブなプログラミングも好きです。
JavaScript / Vue / node.js / PHP / AWS / OpenCV

関連記事

Homebrew で php7.4 + Xdebug をインストール
php7.4のインストール Xdebugのインストール php.ini に追記 参考にさせていただいたサイト phpunitのカバレッジを算出を行うためにMacにHomebrewでphp7.4をインストールしようとした際の記録です。 php7.…

CentOS で スマートにプロキシを設定する
コマンドライン上で通す よりスマートに設定する 設定ファイルに記述 CentOSでプロキシを通す設定のメモです。 プロキシ環境で yum/dnf でリポジトリを更新する場合や、curl/wget…

MySQL8.0 で利用できるパラメータを表示する方法
オプションの表示 mysql8.0でmy.cnfなどで利用できるパラメータ一覧を出す方法。 オプションの表示 オプションの表示は次のコマンドで実施できます mysqld — The MySQL Server 【MySQLパラメーター比較資料】MySQL 5.…

CentOS に MySQL8.0をインストールする
はじめに 環境 起動 MySQLインストール my.cnf の設定 プロセス立ち上げ エラー The designated data directory /var/lib/mysql/ is unusable. You can remove all files…

PHP-FPM(php7.4) Apache2.4 on Ubutnu20.04 Webサーバ構築
環境 パッケージの更新 Apache と PHP のインストール Apache のサービスを開始する PHPファイルを作成 参考にしたサイト Ubuntu20.04 に PHP7.4 + Apache2.4 をインストールしてWeb…

CentOS8 に PHP7.4 インストール
環境 普通にインストールしようとするとphp7.2がインストールされる modularityについて php7.4 インストール CentOS8 に modularity を利用して PHP7.4をインストールした際のメモです。 環境 CentOS8.…

UNIXドメインソケット通信 vs INETドメインソケット通信 php-fpmで動作させる場合の違いについて
結論 ソケット通信について ソケットについて ソケット通信の種類 UNIXドメインソケット通信を行う場合のメリット 参考にしたサイト php-fpm の設定方法で調べた際にIPとポートで設定するパターンとUNIX…

PHP-Parser で PHP5からPHP7で動くコードに自動修正するツールを作る夢をみた
ツールが備える機能条件 PHP-Parser について PHP-Parser の簡単なサンプル ASTオブジェクトの置換・変更 PHP5からPHP7への変更内容を実装する ex1 includeパスを変更する ex2 例外クラスを Exception…

PHP5からPHP7への移行ツールを作るための解析・自動修正ツールを調べる
PHP5からPHP7への下位互換のない機能 使えそうなツールの洗い出し PHPStan phan php7cc php7mar php-to-7-aid Rector php-ast PHP-Parser まとめ 追記 (2021/01/0…

CentOS8にDNFでPerl5.30のインストール
Modularityについて Perl5.30インストール dnf module でハマったところ その他 Perl5.26の場合 Perl5.24の場合 CentOS8 or CentOS Streamに Perl5.30をDNF…

最新の投稿

フェールセーフやフェールソフト・フールプルーフ 障害対策用語のまとめ

JSで32ビット符号付き整数に対してのビット演算でハマった
具体例 参考にしたサイト JSでサブネットマスクの計算を行おうとしたとき、ビット演算でハマりました。その時のメモです。 JSでサブネットマスクの計算 JSでビット演算子を利用する場合 3…

Gitにプロキシを設定する
プロキシを設定する 確認 Gitでプロキシを通しておくメモです。 プロキシを設定する 以下のコマンドでproxyを通します。 ※ がプロキシのURL…

JSでIPアドレスがサブネットマスクで指定した範囲内にあるか判定する
IPアドレスが指定した範囲内にあるかどうか判定 参考にしたサイト JSでIPアドレス(IPv4)が指定したサブネットの範囲に含まれるか判定するロジックを作った時の記録です。 IPアドレスが指定した範囲内にあるかどうか判定 処理としては、IP…

プログラムの数値計算で発生する誤差の種類 丸め誤差・打ち切り誤差・桁落ち
はじめに 誤差の種類 丸め誤差 打ち切り誤差 桁落ち 情報落ち 桁溢れ誤差 参考にしたサイト コンピュータで出てくる誤差はいくつかありますが、 それらをコードに落として整理しました。 はじめに 例えば の計算の答えは 0.6666666666…

JSでサブネットマスクの計算
JSによるサブネットマスク関連の計算 IPv4アドレス文字列をNumber型に変換する CIDR と サブネットの相互変換 ネットワークアドレス と ブロードキャストアドレス クラス 改めて計算方法を整理する 参考にさせていただいたサイト JSでIPv…

Homebrew で php7.4 + Xdebug をインストール
php7.4のインストール Xdebugのインストール php.ini に追記 参考にさせていただいたサイト phpunitのカバレッジを算出を行うためにMacにHomebrewでphp7.4をインストールしようとした際の記録です。 php7.…

CentOS で スマートにプロキシを設定する
コマンドライン上で通す よりスマートに設定する 設定ファイルに記述 CentOSでプロキシを通す設定のメモです。 プロキシ環境で yum/dnf でリポジトリを更新する場合や、curl/wget…

MySQL8.0 で利用できるパラメータを表示する方法
オプションの表示 mysql8.0でmy.cnfなどで利用できるパラメータ一覧を出す方法。 オプションの表示 オプションの表示は次のコマンドで実施できます mysqld — The MySQL Server 【MySQLパラメーター比較資料】MySQL 5.…

CentOS に MySQL8.0をインストールする
はじめに 環境 起動 MySQLインストール my.cnf の設定 プロセス立ち上げ エラー The designated data directory /var/lib/mysql/ is unusable. You can remove all files…

Tags

Dates

© 2021   404 motivation not found