只今、サイトリニューアル中です。過去記事はこちらから確認できます
PR

Windows11 ApacheとPHPを連携する

Webサーバー

このページでは「Apache」と「Nginx」を同じPCに導入した場合のパスを指定しています
パスに関しては一例です。各自の環境に合わせて適宜変更してください

ApacheNginx
サーバーc:/srv/Apache24c:/srv/nginx
Webファイルc:/srv/html
PHPc:/srv/Apache24/php8.4(8.3)c:/srv/nginx/php8.4(8.3)
MariaDBc:/srv/MariaDB
SSLc:/srv/SSL

Windows用PHPをダウンロード

https://windows.php.net/download にてZipファイルをダウンロード

今回はApacheのモジュール版としてPHPを使うので下の「VS17 x64 Thread Safe」をダウンロードします

上の「Non Thread Safe」は個別にPHPを起動したい時に使います。Nginxサーバーなど(後日紹介予定)

PHPをインストール

インストールするフォルダを作成する

PHPをインストールしたいフォルダを作成します

c:/srv/Apache24/php8.4

など。上記の「php8.4」は空のフォルダになります(8.4はPHPのバージョン)
 ※今回Apache24の中に入れた理由は今後、「Nginx」も紹介するので敢えて分けてインストールする為

以下は別の例

c:/php
c:/php8.4
c:/srv/php8.4

上記の様に任意の場所にPHP用の空フォルダを作成してください

ダウンロードしたZipファイルを展開

ダウンロードしたZipファイルを右クリックし、「すべて展開」をクリック
「参照」をクリックし上記作成したフォルダを選択 「c:/srv/Apache24/php8.4」
右下の「展開」をクリック

展開したフォルダを確認 「c:/srv/Apache24/php8.4」

上記のファイルがインストールされていれば成功です(一部ファイルのみ表示)

以下このフォルダを「PHPフォルダ」とします

PHPの設定

Apacheと連携する為にPHPの設定をします

設定ファイルのリネーム

PHPフォルダにある「php.ini.development」というファイルを一旦別のフォルダにコピーし、「php.ini」にリネーム
リネームした「php.ini」をPHPフォルダに移動

設定ファイルを編集

「php.ini」をテキストエディタで開く(行番号が表示されるエディタが好ましい)
764行目付近にある「;extension_dir = “ext”」 コメントアウトを削除
「php8.4/ext」までの絶対パスに変更

;extension_dir = "exe"
↓
extension_dir = "c:/srv/Apache24/php8.4/ext"

他の例として

extension_dir = "c:/php/ext"
extension_dir = "c:/php8.4/ext"
extension_dir = "c:/srv/php8.4/ext"

変更したら保存します

Apacheと連携する

Apacheの「httpd.conf」を開きます

「c:/srv/Apache24/conf/httpd.conf」を開く

285行目付近

DirectoryIndex index.html
↓
DirectoryIndex index.php index.html

「index.php」を前に追加することで「index.php」ファイルが優先されます

httpd.confの末尾に以下を追加

PHPIniDir c:/srv/Apache24/php8.4
LoadModule php_module c:/srv/Apache24/php8.4/php8apache2_4.dll
AddType application/x-httpd-php .php

PHPIniDir : PHPフォルダまでのフルパス
LoadModule php_module : PHPフォルダにある「php8apache2_4.dll」までのフルパス
 ※PHPのバージョンによってdllファイルの名前が変わることもあります

動作確認

Apacheを起動(既に起動している場合は再起動)

新規エディタ(テキスト)を開き以下を記入

<?php
  phpinfo();
?>

「info.php」など分かりやすい名前で「Webフォルダ」に保存
 ※Webファイルまでのパスを変更する で指定したフォルダ

c:/srv/html

など。

ブラウザで「http://localhost/info.php」 にアクセス

上のように表示されれば成功です(画像は一部表示)

PHPフォルダの名前(バージョン)について

今回の記事では、最新版である「php8.4」を使いましたが、「php8.3」「php8.5」など別のバージョンを使い分けることもできます
 ※php8.5は現時点ではリリースされていませんが、今後リリースされる予定です

レンタルサーバーでは「php8.3」が主流なようです

以下では、「php8.3」を上書きせず使う方法を紹介します

PHP8.3を使う

https://windows.php.net/download にて、真ん中あたりにある「php8.3」をダウンロード

php8.3をインストール

インストール方法は基本的に同じですが、今回は既に「php8.4」がインストール済みであること前提に進めます

1つのApacheで「php8.4」と「php8.3」を切り替えながら使う方法です

インストールフォルダを作成

今回は同じApache内に「php8.4」と同じ階層に「php8.3」の空フォルダを作成します

c:/srv/Apache24/php8.3

設定の変更

上記の方で紹介した方法とほぼ同じです

「php8.3」フォルダ内にある「php.ini.development」を別フォルダにコピーし「php.ini」にリネーム
リネームした「php.ini」を「php8.3」フォルダ内に移動

778行目付近にある「extension_dir = “ext”」のパスを変更

;extension_dir = "ext"
↓
extension_dir = "c:/srv/Apache24/php8.3/ext"

Apacheと連携する

「httpd.conf」の末尾に「php8.3」用のコードを追加します

PHPIniDir c:/srv/Apache24/php8.3
LoadModule php_module c:/srv/Apache24/php8.3/php8apache2_4.dll

「php8.3」と「php8.4」を切り替えながら使いたい場合は追加したほうが楽

PHPIniDir c:/srv/Apache24/php8.4
LoadModule php_module c:/srv/Apache24/php8.4/php8apache2_4.dll
AddType application/x-httpd-php .php
↓
PHPIniDir c:/srv/Apache24/php8.3
LoadModule php_module c:/srv/Apache24/php8.3/php8apache2_4.dll

#PHPIniDir c:/srv/Apache24/php8.4
#LoadModule php_module c:/srv/Apache24/php8.4/php8apache2_4.dll

AddType application/x-httpd-php .php

但し、同時に使えないのでどちらかのバージョンをコメントアウト「#」が必須

php8.4とphp8.3を切り替える

httpd.confの末尾を確認

#PHPIniDir c:/server/Apache24/php8.3
#LoadModule php_module c:/server/Apache24/php8.3/php8apache2_4.dll

PHPIniDir c:/server/Apache24/php8.4
LoadModule php_module c:/server/Apache24/php8.4/php8apache2_4.dll

AddType application/x-httpd-php .php

今回は書き換えるよりコメントアウトを操作するだけで切り替えができるようにしてみました

上記の場合だと「php8.4」が有効になっています
「php8.3」を有効にしたいならコメントアウト「#」を削除し、下の「php8.4」の先頭にコメントアウト「#」を追加するだけ

PHPIniDir c:/server/Apache24/php8.3
LoadModule php_module c:/server/Apache24/php8.3/php8apache2_4.dll

#PHPIniDir c:/server/Apache24/php8.4
#LoadModule php_module c:/server/Apache24/php8.4/php8apache2_4.dll

AddType application/x-httpd-php .php

設定を変更したら必ずApacheを再起動してください

コメント

タイトルとURLをコピーしました