IT

PHP8+Apacheの環境構築でハマった話

はらじょ

アプリ開発をしようと思い、自前のwindows PCにPHPの環境構築を行いました。
参考にしたサイトはこちら。1つ1つの手順が丁寧にまとめてあり、わかりやすいです。

いくつかエラーでハマってしまった箇所があるので備忘録&同じように困る人がいないように共有します。

 

①【コマンドプロンプトでphp -vしてもコマンドがないと言われる】

エラー内容

コマンドプロンプトで php -v すると、
「’php’ は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
と怒られる。

 

原因と解決策

原因は私の些細なパスの記載ミスでした。

設定>システム>詳細情報といき、システムの詳細設定を開きます。

環境変数>システム環境設定>Pathを選択して編集ボタンを押下

原因は下図のC:\php-7.3.0が誤ってC:php-7.3.0になっており、正しくパスを通していなかったことでした!(phpファイルはCドライブ直下にphp-7.3.0という名前で置いています。パスは適宜皆さんのPHPフォルダの場所や名前に応じて変更してください。)

  • 正:C:\php-7.3.0
  • 誤:C:php-7.3.0

 

無事にphpコマンドが使用できるようになりました!

 

②Apacheの起動

Apacheをインストールし、設定まで済ませて起動させようとすると、またもやエラーが..

エラー内容

Apacheを起動するために、コマンドプロンプトを起動し、「(Apacheをインストールしたディレクトリ)\Apache24\bin\」ディレクトリまで移動してから「httpd」を実行。

「httpd: Syntax error on line 186 of C:/Apache24/conf/httpd.conf: Can’t locate API module structure `php8_module’ in file C:/php-7.3.0/php8apache2_4.dll: No error」と怒られる..

 

原因と解決策

「Apache24\conf\」ディレクトリに入っている「http.conf」ファイルの記載ミスでした。
前提:PHPはC:/php-7.3.0に配置。

http.confという自分の環境に合わせて設定するファイルでLoadModuleするところ。(#186行目付近)

どうやら、php7.4まではphp7_moduleだったのに、それ以降はphp_moduleと記載しなければ動かないようです。私のphpは8なのでノリでphp8_moduleと書いてしまいましたが、それが落とし穴でした。

  • 正:LoadModule php_module “C:/php-7.3.0/php8apache2_4.dll” (””の中は自分の場所に適宜書き換えてください)
  • 誤:LoadModule php_module “C:/php-7.3.0/php8apache2_4.dll”

ファイルを保存し、コマンドプロンプトを立ち上げなおす。

(Apacheをインストールしたディレクトリ)\Apache24\bin\」ディレクトリまで移動してから「httpd」を実行すると、うまくいきました!

ABOUT ME
はらじょ
はらじょ
ITエンジニア
記事URLをコピーしました