CLIでPHPエクステンションをロードするがCGI / FastCGIモードではロードしない


2

アップデート2(問題解決):

問題はコンパイル中に不正なパラメータでした。詳細は私の答えを見てください。

更新:

次のコマンドの結果は、この問題に多少の影響を与えるでしょう。

# php-cgi -m
[PHP Modules]
...
PDO
pdo_sqlite
...

ここにpdo_mysql拡張子はありません...なぜですか? php.iniは、(extension_dirを介して)pdo_mysql拡張をロードするCLIでPHPに使用されるものと同じです。

元の質問:

Ubuntu 12.04でPHP 5.5.1をコンパイルした

# php -v
PHP 5.5.1 (cli) (built: Aug 22 2013 02:57:03)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies

PDO MySQLエクステンションがCLIにロードされます。

# php --ri pdo_mysql

pdo_mysql

PDO Driver for MySQL => enabled
Client API version => mysqlnd 5.0.11-dev - 20120503 - $Id: 40933630edef551dfaca71298a83fad8d03d62d4 $

Directive => Local Value => Master Value
pdo_mysql.default_socket => /tmp/mysql.sock => /tmp/mysql.sock

CGI / FastCGIを使用してページにアクセスすると、PDO MySQL拡張機能がロードされません

<?php phpinfo(); ?>
PDO
PDO support     enabled
PDO drivers     sqlite

どちらの場合も、同じextension_dirファイルとphp.iniファイルが使用されています。

php.ini path: /usr/local/lib/php.ini
extension_dir: /usr/local/lib/php/extensions/no-debug-non-zts-20121212

extension_dirの内容

#ls /usr/local/lib/php/extensions/no-debug-non-zts-20121212
mcrypt.so  opcache.a  opcache.so  pdo.so  pdo_mysql.so

FastCGIでPHPを実行してPDO MySQL拡張機能を認識してロードする方法を教えてください。


私は自分の答えを投稿しました、いくつかの待機期間が終了したらそれを「受け入れる」
tanerkuc

回答:


0

イライラする経験だった男...

私がフォローしていた一連の指示は、古いPHPバージョンでCGIを有効にするためにconfigureパラメータを使っていました(このパラメータは、PHPの寿命の間に3つのバリエーションの間で変わりました)。 http://php.net/manual/en/configure.about.php

私は再コンパイルしなければなりませんでした --enable-cgi オプションではなく --with-fastcgi (&lt; 4.3)、または --enable-fastcgi (&lt; 5.3)、または --disable-cgi (&gt; 5.3とドキュメントはこれがfastcgiを有効にすると述べていますが、私の場合とは違うもののようです)

プラス面では、私は5.5.2にアップグレードする言い訳がありました:)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.