0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS】Amazon Linux 2023 で mod_php を使ってPHPを実行する

Last updated at Posted at 2025-02-16

📖 概要

Amazon Linux 2023 のコンテナイメージに PHP 8.3 と Apache2 をインストールし、
php-fpm を使わずに、モジュール版(mod_php)で動作させる 方法を検証しました。


🛠️ やったこと

  • php-fpm の自動起動を無効化
  • mod_php(Apache のモジュール)で PHP を動作させるように設定
  • Dockerfile を作成し、コンテナで環境を構築

📃 Dockerfile

FROM amazonlinux:2023.6.20250107.0

# 必要なパッケージをインストール
RUN dnf install -y php httpd mod_php && \
    dnf clean all

# FastCGI 設定を削除
RUN test -f /usr/lib/systemd/system/httpd.service.d/php-fpm.conf && rm /usr/lib/systemd/system/httpd.service.d/php-fpm.conf || true

# Prefork MPM を有効化し、他のMPMを無効化
RUN sed -i 's/^LoadModule mpm_event_module/#LoadModule mpm_event_module/' /etc/httpd/conf.modules.d/00-mpm.conf && \
    sed -i 's/^LoadModule mpm_worker_module/#LoadModule mpm_worker_module/' /etc/httpd/conf.modules.d/00-mpm.conf && \
    sed -i 's/^#LoadModule mpm_prefork_module/LoadModule mpm_prefork_module/' /etc/httpd/conf.modules.d/00-mpm.conf

# ServerNameの警告を抑制
RUN echo "ServerName localhost" >> /etc/httpd/conf/httpd.conf

# PHPモジュールをロード
RUN echo "LoadModule php_module modules/libphp.so" >> /etc/httpd/conf/httpd.conf && \
    echo "<FilesMatch \.php$>" >> /etc/httpd/conf/httpd.conf && \
    echo "SetHandler application/x-httpd-php" >> /etc/httpd/conf/httpd.conf && \
    echo "</FilesMatch>" >> /etc/httpd/conf/httpd.conf

# 作業ディレクトリを設定
WORKDIR /tmp

# 必要なファイルをコンテナにコピー
COPY . /tmp

# phpファイルを配置
COPY info.php /var/www/html/info.php

# ポート 80 を開放
EXPOSE 80

# Apache を起動
ENTRYPOINT ["/usr/sbin/httpd", "-D", "FOREGROUND"]

🌐 ブラウザで表示確認

コンテナ起動後にhttp://localhost/info.php を開くと、表示することができました。
スクリーンショット.png

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?