EasyPhp環境でpdo_mysqlを有効にする必要があるので、php.iniファイルに移動して次の行のコメントを外します。
extension=php_pdo_mysql.dll
残念ながら、私はまだ同じ問題を抱えています。私はCLIを使用しているので、CLIで使用されるphp.iniファイルを見つける必要があると思います。どうやって見つけることができますか?
php --ini
を実行して、CLIで使用されているLoaded Configuration File
の場所の出力で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"
php --ini
usesパスと可能なiniファイルの詳細をすべて表示します。
そのために get_cfg_var( 'cfg_file_path') を使用できます。
システムが構成ファイルを使用しているかどうかを確認するには、cfg_file_path構成設定の値を取得してみてください。これが利用可能な場合は、設定ファイルが使用されています。
var_dump( get_cfg_var('cfg_file_path') );
そして、あなたは単に set php.iniの場所 とすることができます。あなたはコマンドラインバージョンを使用しているので、-c
パラメータを使用してあなたは場所を指定することができます。
php -c /home/me/php.ini -f /home/me/test.php
あなたの端末でphp --ini
を実行すると、iniファイルに関するすべての詳細が得られます。
[root@tamilan src]# php --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
を使用してください。すべての可能なオプションが表示されます。
すべての設定ファイルをロードしたいのであれば、これがわかります。
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
OSX 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]
の真下)に追加すると、問題は解決しました。
(少なくともエラーメッセージは消えました。)
時々のことは、それらが一般的に設定ファイルに来るときに見られるように常にではありません。だからここで私はプロセスによって開かれているファイルを調べるために私の通常の方法を適用しています。
私は、 strace という非常に強力で便利なコマンドラインプログラムを使用して、実際に何が起きているのかを示しています。
$ strace -o strace.log php --version
$ grep php.ini strace.log
Straceは、プログラムが作成したカーネル(システム)呼び出しを調べ、その出力を-oで指定されたファイルにダンプします。
このログでphp.iniの出現箇所を検索するには grep を使用するのが簡単です。何が起こっているのかを見るために、次の典型的な応答を見るのは明らかです。
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 --ini | grep Loaded | cut -d" " -f12
パスのみを返します。 php -c $(php --ini | grep Loaded | cut -d" " -f12)
は設定ファイルを渡します(fpm
に役立ちます)
EasyPHPを使用していたときに覚えていたことから、php.iniファイルはC:\Windows\
またはC:\Windows\System32
にあります。
Php.iniファイルに拡張ディレクトリを設定します。
extension_dir = "C:/php/ext/"
PHPフォルダの中に、すべてのdllと拡張子を含むextフォルダがあるのがわかります。
行う
find / -type f -name "php.ini"
これはphp.ini
という名前のすべてのファイルを出力します。
どちらを使っているか調べてください。通常はApache2/php.ini
です。