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

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

2021-01-175 min read

目次

  1. 概要
  2. 環境
  3. php74-のインストール
  4. apacheのインストール
  5. php-fpmの設定を変更する
  6. php-fpm-の起動
  7. apacheの起動
  8. 確認
  9. おまけ-エラーと解決方法
  10. 参考にしたサイト

概要

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をインストールして使えるようにする手順

Recommends
PHP-FPM(php7.4) Apache2.4 でWebサーバ構築 on CentOS...
2021-01-17
php
apache
centos
CentOS8 に PHP7.4 インストール
2021-01-17
php
apache
centos
php-fpmのステータスページを表示 Apache & htaccess
2021-03-24
php
php%20fpm
apache
AutotoolsでconfigureやMakefileの作成
2022-01-10
centos
linux
red%20hat
RPMパッケージ作成 Dockerを利用して
2022-01-10
centos
linux
red%20hat
CentOS8/RHEL8でのRPM管理における検討事項
2021-12-01
centos
linux
red%20hat
RPMのspecファイルで利用するマクロ・変数
2022-01-09
centos
linux
red%20hat
PostfixでメールリレーしてMailHogで受信する開発用Dockerコンテナの構築
2021-05-19
docker
postfix
centos
CentOS8 に Oracle12.2 clientをインストールする
2021-03-07
oracle
centos
red%20hat
CentOS で スマートにプロキシを設定する
2021-01-29
curl
centos
linux
CentOS に MySQL8.0をインストールする
2021-01-26
mysql
mariadb
centos
PHP-FPM(php7.4) Apache2.4 on Ubutnu20.04 Webサ...
2021-01-19
php
apache
ubuntu
UNIXドメインソケット通信 vs INETドメインソケット通信 php-fpmで動作させ...
2021-01-10
php
apache
nginx
CentOS8にDNFでPerl5.30のインストール
2020-12-22
centos
red%20hat
perl
centos-streamのDockerコンテナイメージを作成した
2020-12-13
centos
red%20hat
centos%20stream
New Posts
[CDK]SNS+SQS+DynamoDBでBounceとComplaint情報を収集する...
2022-04-11
amazon%20aws
node.js
typescript
[AmazonSES] node.js と ejs を利用してEメールを送信する
2022-04-09
javascript
node.js
amazon%20aws
GatsbyからNext.jsへのサイト移行
2022-04-04
next.js
gatsby
amazon%20aws
[AWS CDK] Lambda で S3 オブジェクトを読み書きするStackの構築
2022-03-18
aws%20cdk
amazon%20aws
typescript
[AWS CDK] S3 + CloudFrontの構築とOriginAccessIden...
2022-03-09
amazon%20aws
aws%20cdk
typescript
[AWS CDK] Bastion(踏み台)構築。SSMとEC2InstanceConne...
2022-03-06
amazon%20aws
aws%20cdk
node.js
[AWS CDK] Cognito を構築
2022-03-04
amazon%20aws
aws%20cdk
node.js
AWS CDK v2 でVPC上にAPI Gateway + Lambda + RDS +...
2022-02-28
amazon%20aws
aws%20cdk
node.js
javascriptで累積和を解く
2022-02-27
%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0
%E7%AB%B6%E6%8A%80%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%83%9F%E3%83%B3%E3%82%B0
atcoder
AWS Amplify で monorepo を導入し 単一リポジトリで複数プロジェクトを...
2022-02-25
git
github
amazon%20aws
AWS CDK v2 で Lambda関数のデプロイ
2022-02-23
typescript
amazon%20aws
aws%20cdk
NextJSでDevToysのようなものを作成した
2022-02-22
javascript
typescript
vercel
JSで動的計画法を利用して部分和問題を解く
2022-02-20
javascript
typescript
%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0
NestJSアプリケーションをwebpackでBundle
2022-02-20
javascript
typescript
nestjs
[Next.js] Warning: Assign arrow function to a...
2022-02-13
javascript
typescript
next.js
Hot posts!
Proxy環境下でcurlを実行する
2019-12-07
linux
curl
OpenCVのMatのタイプ一覧表
2018-11-25
%E7%94%BB%E5%83%8F%E5%87%A6%E7%90%86
opencv
Macでも利用できるDBクライアント MySQL PostgreSQL Oracle など
2019-12-21
linux
%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9
mysql
TablePlusを使ってみる。シンプルでモダンなSQLクライアントツール
2018-09-30
%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9
DBクライアントツールはDBeaverをおすすめしたい
2021-03-08
oracle
mysql
sqlite
AWS S3のアクセスキーIDとシークレットアクセスキーの取得 作業用ユーザを作成
2019-06-12
amazon%20aws
linux
amazon%20s3
AtCoderで初めて色がつくまでの話(茶色) レートが中々上がらなかった原因
2018-11-25
%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0
%E7%AB%B6%E6%8A%80%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0
%E9%9B%91%E8%AB%87
CentOS8でEPELとPowerToolsリポジトリの有効化
2020-11-30
centos
red%20hat
EPEL
Macでターミナルからポートスキャンを行う方法。
2018-12-09
linux
mac
apple
Python + OpenCVのfillConvexPolyで複雑なポリゴンを描画する
2018-11-27
python
%E7%94%BB%E5%83%8F%E5%87%A6%E7%90%86
opencv
Date
▶︎
2022 年 (21)
▶︎
2021 年 (40)
▶︎
2020 年 (30)
▶︎
2019 年 (90)
▶︎
2018 年 (89)
▶︎
2017 年 (1)
Tags
javascript(92)
linux(47)
amazon%20aws(39)
%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0(36)
%E7%94%BB%E5%83%8F%E5%87%A6%E7%90%86(30)
node.js(30)
html5(29)
centos(24)
php(23)
python(22)
%E7%AB%B6%E6%8A%80%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0(20)
typescript(20)
canvas(18)
mac(18)
opencv(17)
mysql(17)
%E9%9B%91%E8%AB%87(15)
wordpress(15)
docker(14)
atcoder(13)
apache(12)
%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92(12)
%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9(12)
red%20hat(12)
ubuntu(11)
amazon%20s3(11)
github(10)
git(10)
vue.js(10)
%E7%94%BB%E5%83%8F%E5%87%A6%E7%90%86100%E6%9C%AC%E3%83%8E%E3%83%83%E3%82%AF(10)
css3(8)
%E5%8F%AF%E8%A6%96%E5%8C%96(8)
%E5%B0%8F%E3%83%8D%E3%82%BF(8)
mariadb(8)
amazon%20lightsail(7)
react(7)
%E3%83%96%E3%83%AD%E3%82%B0(6)
cms(6)
oracle(6)
perl(6)
gitlab(6)
next.js(6)
aws%20cdk(6)
iam(5)
amazon%20ec2(5)
aws%20amplify(5)
curl(4)
webassembly(4)
ssh(4)
homebrew(4)
Author
s-yoshiki
s-yoshiki
githubzenntwitterqiita
ただの備忘録です。
JavaScript/TypeScript/node.js/React/AWS/OpenCV
※このブログの内容は個人の見解であり、所属する組織等の見解ではありません。