WindowsでPHPインストール - Apacheと連携
●PHPが動作するようにする
(1) Windows用のPHPをダウンロードします。
2023-03-25時点の最新版は、PHP 8.2.4なので、ここのWindows downloadsをクリックします。
64bitのスレッドセーフ版のzipをダウンロードします。
理由はOSが64bitでApacheで使うためスレッドセーフとなります。
php-8.2.4-Win32-vs16-x64.zip
展開して、ユーザのディレクトリに移動し、PHP824とフォルダ名を変えます。
C:\Users\ユーザ\PHP824
●php.ini
あとは環境変数PATHにC:\Users\ユーザ\PHP824を追加すれば終わりですが、
php 拡張モジュールなど使うと思いますので、php.iniの作成と修正を行います。
php.exeのある場所にphp.iniを置くのですが、デフォルトでは、以下の2つがあります。
php.ini-development (開発用 ) デバッグ時
php.ini-production (本番用) リリース時
最初はデバックするので、開発用のphp.ini-developmentをコピーし、php.iniに変更します。
①768行目あたり、コメントを外して、phpのextのディレクトリを指定。
;extension_dir = "ext"
↓
extension_dir = "C:/Users/ユーザ/PHP824/ext"
②949行目あたり、コメントを外して、PostgreSQLを使えるようにする。
PostgreSQLのインストール設定は、後のブログでお知らせいたします。
;extension=pgsql
↓
extension=pgsql
●ApacheとPHPの連携
もし、ApacheからPHPを使う場合は、php.iniだけ変えてもPHPの動作が変わりませんので、Apacheを再起動してください。
info.phpのファイル
phpinfo();
?>
拡張子がphpの場合はApacheでPHPを動作させるには、Apacheのhttpd.confに以下のコードを追加します。
①195行目あたり、 LoadModule指定子がある最後の位置付近に追加
# PHPとの連携
LoadModule php_module "C:/Users/HP-EliteBook/PHP824/php8apache2_4.dll"
Loadfile "C:/Users/HP-EliteBook/PHP824/php8ts.dll"
Loadfile "C:/Users/HP-EliteBook/PHP824/libpq.dll"
PHPIniDir "C:/Users/HP-EliteBook/PHP824"
AddHandler php-script .php
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
httpd.exeを実行して、以下のエラーが出ると、スペルミスの可能性があります。
httpd: Syntax error on line 196 of C:/Users/ユーザ/Apache24/conf/httpd.conf: Can't locate API module structure `php-module' in file C:/Users/ユーザ/PHP824/php8apache2_4.dll: No error
× LoadModule php-module "C:/Users/ユーザ/PHP824/php8apache2_4.dll"
〇 LoadModule php_module "C:/Users/ユーザ/PHP824/php8apache2_4.dll"
ハイフンとアンダーバーの記述ミスに気を付けてください。
このばあーはアンダーバーが正しいです。
ブラウザで localhost/info.phpで以下の画面になれば、ApacheでPHPのスクリプトが動作していることになります。
ブラウザで localhost/index.phpとしなくても、 localhostでindex.phpをデフォルトで読み込むように設定するには httpd.confの317行目あたりの、index.htmlの前に index.phpを追加します。半角空白で区切します。複数ある場合は、先頭程優先されます。
DirectoryIndex index.html
↓
DirectoryIndex index.php index.html
このブログへのコメントは muragonにログインするか、
SNSアカウントを使用してください。