EasyPhp環境でpdo_mysqlを有効にする必要があるため、php.iniファイルに移動して、次の行のコメントを外しました。
extension=php_pdo_mysql.dll
残念ながら、私はまだ同じ問題を抱えています。CLIを使用しているので、CLIで使用されるphp.iniファイルを見つける必要があると思います。どうすれば見つけられますか?
EasyPhp環境でpdo_mysqlを有効にする必要があるため、php.iniファイルに移動して、次の行のコメントを外しました。
extension=php_pdo_mysql.dll
残念ながら、私はまだ同じ問題を抱えています。CLIを使用しているので、CLIで使用されるphp.iniファイルを見つける必要があると思います。どうすれば見つけられますか?
回答:
実行して、CLI で使用されている場所の出力をphp --ini
探します。Loaded Configuration File
php.ini
sudo find / -iname php.ini
、それは創設/etc/php/7.0/apache2/php.ini
それはによって発見されなかったことを私のマシンの右側のphp.ini設定ファイルの適切な場所php --ini
かphp -i | grep php.ini
(両方見つかりました/etc/php/7.0/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"
Configuration File
phpinfo()の行は、phpがiniファイルを探した最後の場所を示しています。これは、そのようなファイルを見つけた場所か、Windowsで%SYSTEMROOT%となる最後のオプションのいずれかです。
php -i | find "Configuration file"
Windowsで動作するはずです。確かにgrepほど強力でfind
はありませんが、基本的な文字列検索を実行します。もちろん、php -iがその出力をstderrにダンプする場合は、おそらくSOLです。
find
デフォルトでは大文字と小文字が区別されるため、完全にするか(php -i | find "Configuration File"
)、大文字と小文字を区別しないようにする必要があります(php -i | find /i "Configuration file"
- /i
フラグに注意してください)。
php --ini
代替として追加することを検討してください。PHP 5.2.3以降で利用可能:)
そのために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ファイルに関するすべての詳細が表示されます
[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
詳細については、helpingコマンドを使用してくださいphp --help
。可能なオプションがすべて表示されます。
時々、一般的な設定ファイルに関しては、常にそうであるとは限りません。ここでは、通常の方法を適用して、プロセスによって開かれているファイルを調査します。
私は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 -i
私は間違った結果を出しましたが、これは完全に大丈夫です。ありがとうございました!
すべての構成ファイルをロードする場合は、次のようになります。
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]
)。問題は解決しました。
(少なくともエラーメッセージは表示されません。)
別のアプリに渡す必要がある場合は、次のようなことができます。
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
行う
find / -type f -name "php.ini"
これにより、という名前のすべてのファイルが出力されphp.ini
ます。
通常はどちらを使用しているかを調べます apache2/php.ini
php.iniファイルで、拡張ディレクトリを設定します。例:
extension_dir = "C:/php/ext/"
PHPフォルダーに、すべてのDLLと拡張機能を含むextフォルダーがあることがわかります。
コマンドラインで使用されるphp.iniはありません。ファイルをからコピーして、phpディレクトリのファイルを編集する...EasyPHP-<<version>>\apache\php.ini
必要...EasyPHP-<<version>>\php\php.ini
があります
参照: