EasyPHP環境でpdo_mysqlを有効にする必要があるため、php.iniファイルに移動し、次の行のコメントを解除しました。
extension=php_pdo_mysql.dll
残念ながら、私はまだ同じ問題を抱えています。私はCLIを使用しているので、CLIで使用されているphp.iniファイルを見つける必要があると思います。どうすれば見つけることができますか?
実行して、出力でロードされた構成ファイルphp --ini
を探して、CLI で使用される場所を探します。php.ini
あなたは完全にphpinfo()
使用することができます:
php -i
そして、そこには、php.ini
使用されているファイルがあります。
$ php -i | grep 'Configuration File'
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini
Windowsでは、find
代わりに次を使用します。
php -i | find/i"configuration file"
そのためにget_cfg_var('cfg_file_path')を使用できます。
システムが構成ファイルを使用しているかどうかを確認するには、cfg_file_path構成設定の値を取得してみてください。これが利用可能な場合は、構成ファイルが使用されています。phpinfo()とは異なり、php.iniがまったく見つからなかった/使用されなかったかどうかがわかります。
var_dump( get_cfg_var('cfg_file_path') );
また、php.iniの場所を設定するだけです。コマンドラインバージョンを使用しているため、-c
パラメーターを使用して、この特定の実行の場所を指定できます。
php -c /home/me/php.ini -f /home/me/test.php
ターミナルで実行php --ini
すると、ini ファイルに関するすべての詳細が表示されます。
Configuration File (php.ini) Path: /etc
Loaded Configuration File: /etc/php.ini
Scan for additional .ini files in: /etc/php.d
Additional .ini files parsed: /etc/php.d/apc.ini,
/etc/php.d/bcmath.ini,
/etc/php.d/curl.ini,
/etc/php.d/dba.ini,
/etc/php.d/dom.ini,
/etc/php.d/fileinfo.ini,
/etc/php.d/gd.ini,
/etc/php.d/imap.ini,
/etc/php.d/json.ini,
/etc/php.d/mbstring.ini,
/etc/php.d/memcache.ini,
/etc/php.d/mysql.ini,
/etc/php.d/mysqli.ini,
/etc/php.d/pdo.ini,
/etc/php.d/pdo_mysql.ini,
/etc/php.d/pdo_sqlite.ini,
/etc/php.d/phar.ini,
/etc/php.d/posix.ini,
/etc/php.d/sqlite3.ini,
/etc/php.d/ssh2.ini,
/etc/php.d/sysvmsg.ini,
/etc/php.d/sysvsem.ini,
/etc/php.d/sysvshm.ini,
/etc/php.d/wddx.ini,
/etc/php.d/xmlreader.ini,
/etc/php.d/xmlwriter.ini,
/etc/php.d/xsl.ini,
/etc/php.d/zip.ini
詳細については、help コマンドを使用してphp --help
ください。可能なすべてのオプションが表示されます。
一般的な構成ファイルに関しては、必ずしも見た目どおりとは限らない場合があります。そこで、ここでは、プロセスによって開かれるファイルを調べるために、通常の方法を適用しています。
私はstraceと呼ばれる非常に強力で便利なコマンドラインプログラムを使用して、背後で実際に何が起こっているのかを示しています。
$ strace -o strace.log php --version
$ grep php.ini strace.log
Straceは、プログラムが行うカーネル(システム)呼び出しを掘り起こし、出力を。で指定されたファイルにダンプします-o
。
grepを使用して、このログでphp.iniファイルの出現箇所を検索するのは簡単です。次の典型的な応答を見て、何が起こっているのかを確認するのは非常に明白です。
open("/usr/bin/php.ini", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/php.ini", O_RDONLY) = 3
lstat("/etc/php.ini", {st_mode=S_IFREG|0644, st_size=69105, ...}) = 0
すべての構成ファイルをロードする場合は、次のように表示されます。
php -i | grep "\.ini"
一部のシステムは、複数の ini ファイルからロードします。私のUbuntuシステムでは、次のようになります。
php -i | grep "\.ini"
Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini
Scan this dir for additional .ini files => /etc/php5/cli/conf.d
additional .ini files parsed => /etc/php5/cli/conf.d/apc.ini,
/etc/php5/cli/conf.d/curl.ini,
/etc/php5/cli/conf.d/gd.ini,
/etc/php5/cli/conf.d/mcrypt.ini,
/etc/php5/cli/conf.d/memcache.ini,
/etc/php5/cli/conf.d/mysql.ini,
/etc/php5/cli/conf.d/mysqli.ini,
/etc/php5/cli/conf.d/pdo.ini,
/etc/php5/cli/conf.d/pdo_mysql.ini
OS X v10.9 ( Mavericks) で、以下を実行:
$ php -i | grep 'Configuration File'
戻ってきた:
Configuration File (php.ini) Path => /etc
Loaded Configuration File: (none)
/etc/
ディレクトリには次のものがありました:
php.ini.default
(と同様php-fpm.conf.default
)
にコピーphp.ini.default
して、一番上( のすぐ下)php.ini
に追加することができ、問題は解決しました。date.timezone = "US/Central"
[php]
(少なくともエラーメッセージは消えました。)
別のアプリに渡す必要がある場合は、次のようにすることができます。
php --ini | grep Loaded | cut -d" " -f12
パスのみを返します。php -c $(php --ini | grep Loaded | cut -d" " -f12)
設定ファイルを渡します(に役立ちますfpm
)
それがあなたのすべてを助けることができるなら、これを試してください:
find / -type f -name "php.ini"
これにより、 という名前のすべてのファイルが出力されますphp.ini
。
通常、どちらを使用しているかを調べますapache2/php.ini
EasyPHPを使用していたときに覚えていることから、php.iniファイルは次のいずれかになりますC:\Windows\
。C:\Windows\System32
コマンドラインで使用されるphp.iniはありません。からファイルをコピーしてから、 phpディレクトリ内のファイル...EasyPHP-<<version>>\apache\php.ini
を...EasyPHP-<<version>>\php\php.ini
編集する必要があります。
参照: