php.ini не читается при установке Windows 7 - PullRequest
6 голосов
/ 24 апреля 2010

Я успешно установил php на компьютер с Windows 7, но не могу заставить себя прочитать файл php.ini.

Я раскомментировал строку для php, чтобы использовать mysql, и когда я запускаю phpinfo (), он никогда не появляется.

Я проверил, чтобы на моем диске c: \ был только один файл php.ini, и он находится в моей папке c: \ windows.

кто-нибудь еще сталкивался с этим и знал о решении заставить php читать .ini, чтобы я мог включить некоторые расширения (mysql и т. Д.)?

Ответы [ 2 ]

5 голосов
/ 25 апреля 2010

Проверьте следующее:

  1. Убедитесь, что у вас есть только один php.ini файл. Он должен находиться в той же папке, что и php.exe, php-cgi.exe и php-win.exe. Стоит проверить ваши папки c:\windows и c:\windows\system32. Если вы найдете php.ini там или где-то еще в PATH, отличном от папки установки PHP, удалите их.

    Удобный способ проверить это - запустить where php.ini из командной строки.

  2. Добавьте ваши папки установки и расширения PHP в систему PATH: Например - c:\php и c:\php\ext

  3. Отредактируйте файл php.ini и убедитесь, что директива extension_dir указывает на папку расширений: extension_dir=c:\php\ext

Это должно помочь вам. Если вы по-прежнему обнаруживаете, что расширения не загружаются, добавьте расширение ext/. Например:

extension=ext/php_mysql.dll

Вы не указываете, используете ли вы FastCGI для запуска PHP.

Если вы просто отображаете расширение .php непосредственно на php-cgi.exe или используете FastCGI, но не указали атрибут monitorChangesTo, то вам нужно убить все процессы php-cgi.exe, чтобы вызвать прочитайте php.ini после любых изменений (или выполните IISRESET).

Если вы используете FastCGI в Windows 7 (или IIS 7.5 в целом), вы можете запускать повторное использование FastCGI при каждом изменении файла php.ini, указав путь к файлу php.ini в атрибуте monitorChangesTo. Это также можно настроить с помощью диспетчера IIS в апплете «Настройки FastCGI».

0 голосов
/ 22 июня 2013

У меня была точно такая же ошибка. Когда я попытался запустить php -m из командной строки, он вытягивал соответствующие модули, поэтому я знал, что загружается правильный php.ini.

Однако на веб-сервере он продолжал извлекать мою корневую папку php как extension_dir независимо от того, что я изменил.

Я сделал пару вещей, и это, казалось, разрешило это.

Во-первых, я убедился, что путь, по которому мои расширения имеют права на чтение IIS_USer. Я не знаю, было ли это как-то связано с работой или нет, так как это само по себе ничего не сделало.

2-й, я вернулся в IIS Manager, загрузил сопоставления обработчиков, которые я использовал для первоначальной настройки обработчика php для использования FastCGI. Мне не нужно было ничего менять, но, подняв диалоговое окно и сохранив его, он запросил подтверждение. После этого я вернулся на свою страницу phpinfo (), и она нашла нужную информацию о extensions_dir.

Надеюсь, это поможет кому-то в будущем.

...