При использовании PHP CLI – APC вылетает apache – apc_fcntl_lock не удалось выполнить errno: 6

Я уже решил проблему, но я отправлю ее здесь для справки в будущем и, возможно, это поможет кому-то 🙂

Проблема:

После запуска PHP из командной строки с пользовательским php.ini Apache сбой и эта ошибка error apc_fcntl_lock failed errno:6 .

Моя конфигурация:

У меня есть easyPHP с PHP 5.3.8 и APC.

APC отлично работает для моих приложений, выполняемых easyPHP (сервером Apache).

Я использую платформу Symfony2, и она выводится с помощью генераторов кода, запускаемых из командной строки, например: php app/console doctrine:database:create которая подключается к MySQL и создает для меня базу данных.

Для запуска этих команд мне нужно расширение pdo_mysql. Поскольку PHP CLI по умолчанию не поддерживает pdo_mysql, я скопировал свой php.ini в C:\Windows\php.ini (здесь PHP CLI ищет php.ini).

Но у меня было много других расширений (например php_intl или php_curl, php_gd2, …) и php_apc среди них.

Решение:

Мое приложение symfony2 запускается easyPHP, который загружает C:\easyPHP\conf_files\php.ini (это мой php.ini для apache-сервера easyPHP), и там я оставил php_apc включен .

Для меня решение было отключить php_apc в C:\Windows\php.ini (это мой php.ini для PHP CLI [интерфейс командной строки]).

Таким образом – symfony2 может использовать APC для ускорения работы, и я могу использовать командную строку для генерации кода без необходимости перезапуска Apache каждый раз.