Symfony2のapp/check.phpの環境チェックでエラーや警告が出たときの対処法ついてまとめた。
環境
開発環境のバージョンは次の通り
- Windows 10
- PHP 5.6.17
PHPは、「C:\php」にインストールした。
php.iniは「php.ini-development」をコピーした。
date.timezone setting must be set
* date.timezone setting must be set
> Set the "date.timezone" setting in php.ini* (like Europe/Paris).
このエラーが出たときは、「php.ini」の次の行を修正する。
文頭の「;」を削除し、文末に「”Asia/Tokyo”」を追加する。
;date.timezone =
date.timezone = "Asia/Tokyo"
mb_strlen() should be available
* mb_strlen() should be available
> Install and enable the mbstring extension.
このエラーが出たときは、「php.ini」の次の行を修正する。
文頭の「;」を削除する。
;extension_dir = "ext"
extension_dir = "ext"
;extension=php_mbstring.dll
extension=php_mbstring.dll
次の行を修正する。
文頭の「;」を削除する。
;mbstring.language = Japanese
mbstring.language = Japanese
次の行を修正する。
文頭の「;」を削除し、文末に「UTF-8」を追加する。
;mbstring.internal_encoding =
mbstring.internal_encoding = UTF-8
mbstringの他の設定は省略。
intl extension should be available
* intl extension should be available
> Install and enable the intl extension (used for validators).
次の行を修正する。
文頭の「;」を削除する。
;extension=php_intl.dll
extension=php_intl.dll
a PHP accelerator should be installed
* a PHP accelerator should be installed
> Install and/or enable a PHP accelerator (highly recommended).
次の行を追加する。
パスはPHPのインストール場所に合わせて書き換える。
zend_extension="C:\php\ext\php_opcache.dll"
次の行を修正する。
文頭の「;」を削除し、値を「0」から「1」に書き換える。
;opcache.enable=0
opcache.enable=1
;opcache.enable_cli=0
opcache.enable_cli=1
PDO should have some drivers installed (currently available: none)
* PDO should have some drivers installed (currently available: none)
> Install PDO drivers (mandatory for Doctrine).
次の行を修正する。
文頭の「;」を削除する。
;extension=php_pdo_mysql.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_sqlite.dll
extension=php_pdo_sqlite.dll
使用するデータベースを有効にする。
ここでは、MySQLとSQLiteを有効にしている。
実行結果
$ php app\check.php
Symfony2 Requirements Checker
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> PHP is using the following php.ini file:
C:\php\php.ini
> Checking Symfony requirements:
........................................
[OK]
Your system is ready to run Symfony2 projects
Note The command console could use a different php.ini file
~~~~ than the one used with your web server. To be on the
safe side, please check the requirements from your web
server using the web/config.php script.