忍者ブログ

カウンター

プロモーション

カレンダー

09 2019/10 11
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

AntinomyMy の実験室

   私のWEBアプリ実験室です!

ブログ内検索

楽天でお買い物

twitter

最新トラックバック

最新コメント

忍者アナライズ

ウェザーニュース

バーコード

本を買う

アクセス解析

Google+

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


  • 2019/10/15 22:35

PHP のextension_dir の相対パス (relative path)はApache のbin からのパス!!!

PHP の調べ物

Apache Module で呼び出すPHP のextension_dir の相対パス(relative path)
についてのメモ

※Windows もLinux も一緒であるか分からないです※
Windows でApache とPHP の入っているディレクトリごと
好きな場所に移動して、バッチファイルから実行したいので
迷った時のメモです。


PHP の
extension_dir のパス
Windows なら
C:\xxxx\xxxx

とか絶対パスで書く方法しかこれまで使ったことがなかったので
相対パスだとどうなるか、あれこれやっても動かないので困っていました。

もしかして・・・と思い、
Apache のbin から見た相対的なアドレスを書いてみました。

xxx\Apache\bin\
(httpd.exe のあるフォルダ)

xxx\php\ext\
(拡張のフォルダ)
があったとします。

そうすると、php.ini では、
extension_dir
は、php のext のフォルダを
..\..\php\ext
と書きます。

つまり
extension_dir = "..\..\php\ext"

と書く事になります。

一応、後から書いたメモなので、どうだったか定かですが、
Apche はModule版のPHP を使っています。

httpd.conf には、上記のパスの作りであると
PHPINIDir "..\..\php"
としています。

また、
Module 版だとApache のconfig (httpd.conf)で
php_admin_value が使えるので
php_admin_value extension_dir = "..\..\php\ext"
としてもいいですが、
実行時の設定でデフォルトの方の設定には反映されないです。

なんとも言い難いのでやっぱりPHPのphp.ini に書くべきだと思います。


そして気持ちの悪い作りの問題ですが、
これをすると、きっと間違いなく、

プロシージャエントリポイントxxx_xxx_xxxが
ダイナミックリンクライブラリxxx.dllから見つかりませんでした

と出てくると思います、これが出たらパスが通った証拠なのですが、
Apache から見て、PHP のモジュールが見えないと、
Apache のモジュール版のPHP は動いていることにならないみたいなのです。

ここで気持ちが悪いのですが、
Apache のbin つまり、apache.exe のあるフォルダに
PHP のphp.exe のあるフォルダにある、xxx.dllをコピーして入れます。

当方の場合、何度か聞かれましたが、
extension の読み込む量やら状況に応じて、
その聞かれる数は違うと思います。

聞かれる度にxxx.dllをコピーしたらエラーを聞かれず、
指定したextension を全て
phpinfo() から確認することが出来ました。



何とも厄介ですが、extension_dir の相対パス での指定は成功!した訳です。



うーん、微妙だけど、現在のApache とPHP ではこの設定しかないみたいです。
ちなみに、php のバージョンは7.2 で確認をしました(Windows 版です)。


お粗末なメモでした<_ _>

拍手[1回]

PR


  • 2018/03/06 19:20

コメント一覧

  • お名前
  • Email

  • コメント

  • Vodafone絵文字 i-mode絵文字 Ezweb絵文字
  • パスワード
[PR]