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

    

関連記事

CentOS8 に Python + OpenCV をインストール
インストール テスト CentOS8 で標準で提供されているパッケージで Python + OpenCV 環境を構築する方法です。 検証した環境は CentOS8.3 (Docker) です。 インストール まず opencv…

[Perl] CentOS8 に plenv をインストール
インストール Step1 事前準備 Step2 PATHを通す (README通りにインストール) Step2 PATHを通す ($HOME以外にplenvをインストール) Step3 Perlインストール Step4 cpanmインストール CentOS…

CentOS6(Docker)でyum update できなくなった
エラー内容 対応 CentOS6.10 で yum update しようとしたところエラーが出てアップデートできなかったので対応した時の記録 エラー内容 以下のようなエラーが出ました。 対応 を以下のように変更したところ解決しました。

PostfixでメールリレーしてMailHogで受信する開発用Dockerコンテナの構築
環境 Dockerイメージ作成 コンテナの起動 telnetで送信テスト phpで送信テスト Postfixのリレーを介して送信されたメールをMailHog(開発用SMTPサーバ)でキャッチするDocker開発環境を構築した際のメモです。 環境 Docker…

php-fpmのステータスページを表示 Apache & htaccess
試した環境 php-fpm の pm.status_path について php-fpmのconfの設定 .htaccess の設定 アクセスしてみる 参考にしたサイト Apache環境で php-fpm のステータスページを htaccess…

CentOS8 に Oracle12.2 clientをインストールする
実施した環境 セットアップ clientツールの 準備 インストール 環境変数にパスを通す 実行 libnsl.so.1: cannot open shared object file と表示される場合 CentOS8 に Oracle12.2 client…

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…

最新の投稿

Node.js で作成した REST API を Docker化
Node.jsでREST APIを作成 コンテナ化 コンテナ化定義 コンテナ化作業 参考 Node.js で作成した REST API を Docker化した際のメモです。 Node.jsでREST APIを作成 まずはNode.js…

JavaScriptで優先度付きキューを実装する
優先度付きキューについて ソース 参考 JavaScriptで優先度付きキュー (プライオリティキュー) を実装する 優先度付きキューについて 具体的には次のような機能があります。 キューに対して要素を優先度付きで追加 (push…

AWS Amplify で コンテナベースのデプロイを行い REST API を構築
検証した環境 やってみる 初期準備 パイプラインを確認 終了処理 参考 AWS Amplify で コンテナベースのデプロイを行い REST API を構築した際のメモです。 検証した環境 amplify 5.1.…

Pythonでソケット通信を実装しメッセージの送受信を行う
ソース server.py client.py 動かしてみる 参考 Pythonでソケット通信を実現する方法です。 ソース server.py サーバ側のソースです。 client.py…

next_permutationをJSで実装する
ソース 使い方 参考 C++で提供されている順列を生成する next_permutation のJS実装です。 ソース 順列が存在する場合はtrueを返し、そうでなければfalse…

応用情報技術者試験の合格体験記
受験時のステータス 受験結果 対策 スケジュール 午前問題 午後問題 参考書等 令和…

[JS]ラジアンから度数に度数からラジアンに変換する
コード 度数からラジアンへ ラジアンから度数へ サンプル ラジアンから度数に度数からラジアンに変換する際のスニペット。 コード 度数からラジアンへ ラジアンから度数へ サンプル

CentOS8 に Python + OpenCV をインストール
インストール テスト CentOS8 で標準で提供されているパッケージで Python + OpenCV 環境を構築する方法です。 検証した環境は CentOS8.3 (Docker) です。 インストール まず opencv…

[Perl] CentOS8 に plenv をインストール
インストール Step1 事前準備 Step2 PATHを通す (README通りにインストール) Step2 PATHを通す ($HOME以外にplenvをインストール) Step3 Perlインストール Step4 cpanmインストール CentOS…

JS/TSのclassでclass名を取得する
コード JS/TSのconstructorを利用して自分自身のクラス名を取得する際のメモ。 コード このコードの結果は次のようになります。

Tags

Dates

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