Php windows нет php ini

I just started to learn PHP and in order to do that I installed wampserver on my windows 8.1. When I try to launch, it works properly but I have two problems:

1) I have an error in my localhost page:

*** ERROR *** The PHP configuration loaded file is: — should be: C:/wamp64/bin/apache/apache2.4.17/bin/php.ini or c:/wamp64/bin/php/php5.6.16/phpforapache.ini

I tried to find the php.ini file but it doesn’t exist. In my phpinfo() it is (none) in front of Loaded Configuration file.

2) The other problem is I can’t access phpmyadmin and I get this error :

«The mbstring extension is missing. Please check your PHP configuration.»

Since I’m really new in php, please keep the answers simple! :)

Thanks in advance.

PHPLover's user avatar

asked Feb 1, 2016 at 16:36

mahi_nick's user avatar

1

I just solve this problem.

  1. to be sure to start Wampserver «As an administrator,» :

    right-click the shortcuts, Properties, tab Shortcut:

    • Select «Run as administrator»
    • OK
    • Apply
  2. Leave Wampmanager and ursing win+x+a or others ways to open a cmd administrator command window.( attention:it should run the cmd as an administrator)

  3. In this window, access to your apache installed path
    for exemple, my path: D:\wamp64\bin\apache\apache2.4.17\bin

  4. then type

    D:\wamp64\bin\apache\apache2.4.17\bin> mklink php.ini d:\wamp\bin\php\php5.6.15\phpForApache.ini

    and you will see a message likes»php.ini << === >> d:\wamp\bin\php\php5.6.15\phpForApache.ini symlink created»

  5. close the cmd and restart Wampmanager as an administrator

I hope that my solution also works for you.

Wai Ha Lee's user avatar

Wai Ha Lee

8,60785 gold badges57 silver badges92 bronze badges

answered Apr 6, 2016 at 18:17

xiao's user avatar

xiaoxiao

5421 gold badge9 silver badges16 bronze badges

2

after installation of php you must rename file php-production.ini to php.ini. Those files in your root php directory installed.

For mbstring you must enable this extension. For that you must uncomment the line in your php.ini file (renamed just before) :

;extension = php_mbstring.dll

Check if you have this line in your php.ini :

[mbstring] 
mbstring.language = all 
mbstring.internal_encoding = UTF-8 
mbstring.http_input = auto 
mbstring.http_output = UTF-8 
mbstring.encoding_translation = On 
mbstring.detect_order = UTF-8 
mbstring.substitute_character = none; 
mbstring.func_overload = 0 
mbstring.strict_encoding = Off

answered Feb 1, 2016 at 16:43

miltone's user avatar

miltonemiltone

4,46811 gold badges42 silver badges76 bronze badges

2

in system tray (bottom right corner of windows) left click wamp icon, php, version, and click on the current version (the one marked with green tick)

answered Aug 25, 2016 at 5:09

GZveri's user avatar

1

This was my issue:
* ERROR * The PHP configuration loaded file is: c:/program files (x86)/php/php.ini — should be: c:/wamp64/bin/apache/apache2.4.27/bin/php.ini or c:/wamp64/bin/php/php5.6.31/phpforapache.ini
You must perform: Right-click icon Wampmanager -> Refresh
To resolve this issue, I just went into program files(x86) and added 1 to my PHP folder to make this invisible and retarted all Wampserver services it worked fine. Could have been a conflit with my This old PHP.

answered Sep 14, 2017 at 18:07

Achille's user avatar

I just started to learn PHP and in order to do that I installed wampserver on my windows 8.1. When I try to launch, it works properly but I have two problems:

1) I have an error in my localhost page:

*** ERROR *** The PHP configuration loaded file is: — should be: C:/wamp64/bin/apache/apache2.4.17/bin/php.ini or c:/wamp64/bin/php/php5.6.16/phpforapache.ini

I tried to find the php.ini file but it doesn’t exist. In my phpinfo() it is (none) in front of Loaded Configuration file.

2) The other problem is I can’t access phpmyadmin and I get this error :

«The mbstring extension is missing. Please check your PHP configuration.»

Since I’m really new in php, please keep the answers simple! :)

Thanks in advance.

PHPLover's user avatar

asked Feb 1, 2016 at 16:36

mahi_nick's user avatar

1

I just solve this problem.

  1. to be sure to start Wampserver «As an administrator,» :

    right-click the shortcuts, Properties, tab Shortcut:

    • Select «Run as administrator»
    • OK
    • Apply
  2. Leave Wampmanager and ursing win+x+a or others ways to open a cmd administrator command window.( attention:it should run the cmd as an administrator)

  3. In this window, access to your apache installed path
    for exemple, my path: D:\wamp64\bin\apache\apache2.4.17\bin

  4. then type

    D:\wamp64\bin\apache\apache2.4.17\bin> mklink php.ini d:\wamp\bin\php\php5.6.15\phpForApache.ini

    and you will see a message likes»php.ini << === >> d:\wamp\bin\php\php5.6.15\phpForApache.ini symlink created»

  5. close the cmd and restart Wampmanager as an administrator

I hope that my solution also works for you.

Wai Ha Lee's user avatar

Wai Ha Lee

8,60785 gold badges57 silver badges92 bronze badges

answered Apr 6, 2016 at 18:17

xiao's user avatar

xiaoxiao

5421 gold badge9 silver badges16 bronze badges

2

after installation of php you must rename file php-production.ini to php.ini. Those files in your root php directory installed.

For mbstring you must enable this extension. For that you must uncomment the line in your php.ini file (renamed just before) :

;extension = php_mbstring.dll

Check if you have this line in your php.ini :

[mbstring] 
mbstring.language = all 
mbstring.internal_encoding = UTF-8 
mbstring.http_input = auto 
mbstring.http_output = UTF-8 
mbstring.encoding_translation = On 
mbstring.detect_order = UTF-8 
mbstring.substitute_character = none; 
mbstring.func_overload = 0 
mbstring.strict_encoding = Off

answered Feb 1, 2016 at 16:43

miltone's user avatar

miltonemiltone

4,46811 gold badges42 silver badges76 bronze badges

2

in system tray (bottom right corner of windows) left click wamp icon, php, version, and click on the current version (the one marked with green tick)

answered Aug 25, 2016 at 5:09

GZveri's user avatar

1

This was my issue:
* ERROR * The PHP configuration loaded file is: c:/program files (x86)/php/php.ini — should be: c:/wamp64/bin/apache/apache2.4.27/bin/php.ini or c:/wamp64/bin/php/php5.6.31/phpforapache.ini
You must perform: Right-click icon Wampmanager -> Refresh
To resolve this issue, I just went into program files(x86) and added 1 to my PHP folder to make this invisible and retarted all Wampserver services it worked fine. Could have been a conflit with my This old PHP.

answered Sep 14, 2017 at 18:07

Achille's user avatar

Установка

Этот раздел содержит общие вопросы о том, как производится установка
PHP. Дистрибутивы PHP доступны почти для всех операционных систем и веб-серверов.

Для установки PHP, следуйте инструкциям: Установка и настройка.

  1. Почему лучше не пользоваться Apache2 с многопоточным «MPM» (event, worker) в
    промышленной эксплуатации?

  2. ОС «Unix»/»Windows»: Где искать файл php.ini?

  3. Unix: Я установил PHP, но при каждом открытии какого-либо документа
    вижу ‘Document Contains No Data’, что это значит?

  4. Unix: Я установил PHP используя RPMS, но Apache не обрабатывает
    PHP-страницы, в чём дело?

  5. Unix: Я пропатчил Apache модулем FrontPage, и теперь PHP не работает. Т.е.
    PHP несовместим с модулями Apache FrontPage?

  6. Unix/Windows: Я установил PHP, но при попытке открыть PHP-файл
    браузером вижу просто пустой экран.

  7. Unix/Windows: Я установил PHP, но когда пытаюсь посмотреть созданную PHP-страницу
    через браузер, то получаю ошибку 500.

  8. Некоторые операционные системы: Я установил PHP без каких-либо ошибок, но
    когда пытаюсь запустить Apache, мне выводится ошибка:

    [mybox:user /src/php5] root# apachectl configtest
    apachectl: /usr/local/apache/bin/httpd Undefined symbols:
    _compress
    _uncompress

  9. Windows: Я установил PHP, но когда пытаюсь открыть страницу скрипта через
    браузер, получаю ошибку:

    cgi error:
    The specified CGI application misbehaved by not
    returning a complete set of HTTP headers.
    The headers it did return are:

  10. Windows: Я все сделал по инструкции, но PHP и IIS не хотят работать вместе!

  11. Когда я запускаю PHP как CGI на IIS, PWS, OmniHTTPD или Xitami,
    я получаю такую ошибку: Security Alert! PHP CGI
    cannot be accessed directly..

  12. Как я могу понять, что мой php.ini найден и используется? Такое впечатление, что
    вносимые мною изменения игнорируются.

  13. Как я могу добавить директорию с PHP в PATH
    в Windows?

  14. Как я могу сделать файл php.ini доступным для PHP в windows?

  15. Можно ли использовать согласование контента Apache (опция MultiViews)
    с PHP?

  16. PHP ограничен работой только с методами GET и POST?

Почему лучше не пользоваться Apache2 с многопоточным «MPM» (event, worker) в
промышленной эксплуатации?

PHP подобен связующему звену. Это связующее звено для создания хороших веб-приложений
путём объединения разрозненных сторонних библиотек в единое целое, через
использование интуитивно понятного и простого для изучения языкового интерфейса.
Гибкость и сила PHP основана на стабильности и устойчивости, лежащей в основе платформы.
Чтобы всё работало, нужна рабочая операционная система, рабочий
веб-сервер и рабочие сторонние библиотеки. Но когда хоть что-либо из них перестаёт
работать — PHP нуждается в способах быстрого определения причины неполадки и её
устранения. И когда вы усложняете базовый фреймворк тем, что не изолируете
исполняемые потоки и сегменты памяти, и не предоставляете потокам отдельных
изолированных «песочниц» — ослабляется вся PHP-система.

Если вы желаете использовать многопоточный «MPM» — ознакомьтесь
с конфигурацией «FastCGI», согласно которой PHP работает в собственном
пространстве памяти.

ОС «Unix»/»Windows»: Где искать файл php.ini?

По умолчанию в Unix он должен быть в /usr/local/lib, который соответствует
<установочный-путь>/lib.
Многие захотят изменить этот путь в момент компиляции, используя опцию
—with-config-file-path
Например, можно написать так:

--with-config-file-path=/etc

И затем скопировать php.ini-development из дистрибутива в
/etc/php.ini и внести в него все необходимые изменения.

--with-config-file-scan-dir=PATH

В ОС «Windows», по умолчанию, путь к файлу php.ini это путь
к директории «Windows». Если вы пользуетесь веб-сервером «Apache», php.ini
находится по пути: ?\program files\apache group\apache\.
Таким образом, на одном компьютере можно пользоваться несколькими файлами php.ini,
соответственно версиям «Apache».

Смотрите также: файл настроек.

Unix: Я установил PHP, но при каждом открытии какого-либо документа
вижу ‘Document Contains No Data’, что это значит?

Это значит, что, возможно, PHP столкнулся с какой-то проблемой и падает в core-dump.
Просмотрите логи ошибок сервера, чтобы проверить это, а затем попытайтесь воспроизвести
цепочку шагов, приведших к ошибке; например, создав отдельную тестовую программу.
И если вы умеете пользоваться ‘gdb’, то это поможет вам получить стек вызовов функций (backtrace) для
включения его в отчёт об ошибке, чтобы облегчить выявление причин проблемы
разработчикам. Если вы пользуетесь PHP как модулем для Apache, вам может оказаться
полезным следующее:

  • Остановите httpd-процессы

  • gdb httpd

  • Вновь остановите httpd-процессы

  • > run -X -f путь_к_httpd.conf

  • Затем скопируйте URL,вызвавший проблему в браузере

  • > run -X -f путь_к_httpd.conf

  • Если будет происходить core dump, gdb сообщит вам об этом

  • Введите bt

  • Включите backtrace в ваш отчёт об ошибке. И отправьте по адресу:
    » https://github.com/php/php-src/issues

Если ваш скрипт использует регулярные выражения
(preg_match() и подобные), проверьте, с одинаковыми ли пакетами
обработки RegEx скомпилированы PHP и Apache?
В случае PHP и Apache 1.3.x это происходит автоматически.

Unix: Я установил PHP используя RPMS, но Apache не обрабатывает
PHP-страницы, в чём дело?

Если что вы установили и Apache, и PHP из RPM-пакетов, вам понадобится
раскомментировать или добавить некоторые (или, быть может, все) строки из числа
следующих, в вашем файле httpd.conf:

# Extra Modules
AddModule mod_php.c
AddModule mod_perl.c

# Extra Modules
LoadModule php_module         modules/mod_php.so
LoadModule php5_module        modules/libphp5.so
LoadModule perl_module        modules/libperl.so

И добавьте:

AddType application/x-httpd-php .php

… в область глобальных свойств, или в свойства того VirtualDomain,
для которого вы хотите включить поддержку PHP.

Unix: Я пропатчил Apache модулем FrontPage, и теперь PHP не работает. Т.е.
PHP несовместим с модулями Apache FrontPage?

Нет, совместим, но патч FrontPage влияет на структуры Apache, нужные для PHP.
Перекомпиляция PHP (команда ‘make clean ; make’) после установки патча может решить
проблему.

Unix/Windows: Я установил PHP, но при попытке открыть PHP-файл
браузером вижу просто пустой экран.

Выберите в браузере опцию «посмотреть код» и вы, возможно, увидите, ваш PHP-код.
Это значит, что Apache не передал ваш скрипт интерпретатору PHP. Значит что-то
неправильно с конфигурацией сервера. В этом случае перепроверьте конфигурацию
веб-сервера в соответствии с инструкциями по установке PHP.

Unix/Windows: Я установил PHP, но когда пытаюсь посмотреть созданную PHP-страницу
через браузер, то получаю ошибку 500.

Что-то пошло не так, когда сервер попытался запустить PHP. Чтобы увидеть
возникающую исходную ошибку, в командной строке перейдите в директорию,
содержащую исполняемый файл PHP (php.exe в Windows) и
запустите php -i. Если существуют какие-либо проблемы с
запуском PHP, вам выведется соответствующая ошибка, которая подскажет вам, что
надо исправить. Если вы увидите множество кода HTML (вывод функции
phpinfo()), значит PHP работает нормально, и ваша проблема
связана с настройками веб-сервера.

Некоторые операционные системы: Я установил PHP без каких-либо ошибок, но
когда пытаюсь запустить Apache, мне выводится ошибка:

[mybox:user /src/php5] root# apachectl configtest
 apachectl: /usr/local/apache/bin/httpd Undefined symbols:
  _compress
  _uncompress

Это означает, что проблема не в PHP, а в клиентских библиотеках MySQL. Некоторые
из них требуют сборки PHP с опцией —with-zlib.
Этот нюанс описан в MySQL FAQ.

Windows: Я установил PHP, но когда пытаюсь открыть страницу скрипта через
браузер, получаю ошибку:

cgi error:
 The specified CGI application misbehaved by not
 returning a complete set of HTTP headers.
 The headers it did return are:

Это означает, что PHP не смог ничего вывести в стандартный поток ввода-вывода.
Чтобы увидеть
возникающую исходную ошибку, в командной строке перейдите в директорию,
содержащую исполняемый файл PHP (php.exe в Windows) и
запустите php -i. Если существуют какие-либо проблемы с
запуском PHP, вам выведется соответствующая ошибка, которая подскажет вам, что
надо исправить. Если вы увидите множество кода HTML (вывод функции
phpinfo()), значит PHP работает нормально.

Когда вы убедились, что PHP нормально работает в командной строке, попробуйте
обратиться к скрипту через браузер снова. Если опять возникнет ошибка — это может
означать одну из следующих проблем:


  • Права на файл вашего скрипта, php.exe,
    php5ts.dll, php.ini или какого-либо модуля PHP
    не позволяют анонимному пользователю интернета
    ISUR_<machinename> к ним обратиться.

  • Файл скрипта отсутствует (или, возможно, он находится не там, где вы думаете,
    относительно корневого каталога веб-сервера). Обратите внимание, что в IIS, вы
    можете отловить эту ошибку, отметив опцию ‘check file exists’ в настройках
    «script mappings» в Internet Services Manager. Если файл отсутствует, сервер вместо
    этого вернёт ошибку 404. При этом, также есть дополнительное преимущество. IIS будет
    производить проверки аутентификации для файла скрипта, необходимые вам,
    основываясь на разрешениях NTLanMan.

Windows: Я все сделал по инструкции, но PHP и IIS не хотят работать вместе!

Убедитесь, что все пользователи, которым может понадобиться запустить ваш PHP-скрипт,
имеют право запускать php.exe! IIS использует анонимного
пользователя, создаваемого во время инсталляции. Этот пользователь должен иметь
права на запуск php.exe. Так же, каждый авторизованный
пользователь должен иметь права на запуск php.exe.
Для IIS4 вы сказать ему, что PHP — это интерпретатор скриптов.
Также прочтите этот FAQ.

Когда я запускаю PHP как CGI на IIS, PWS, OmniHTTPD или Xitami,
я получаю такую ошибку: Security Alert! PHP CGI
cannot be accessed directly.
.

Вы должны установить опцию
cgi.force_redirect равную 0.
По умолчанию она равна 1. Убедитесь, что она не закомментирована
(с помощью ;). Как и все опции PHP, она настраивается в php.ini

Так как она по умолчанию равна 1, критически важно убедиться,
что используется именно тот php.ini, который нужен.
Читайте этот FAQ для подробностей.

Как я могу понять, что мой php.ini найден и используется? Такое впечатление, что
вносимые мною изменения игнорируются.

Для проверки, какой именно php.ini используется, запустите функцию
phpinfo(). Где-то вверху будет список с названием
Configuration File (php.ini). Из него вы сможете понять, какой
именно php.ini используется. Если указана только директория в PATH,
а файл конфигурации не прочитан, то просто скопируйте его в эту директорию.
Если php.ini включён PATH — это значит, что он прочитан.

Если php.ini читается и вы запускаете PHP как модуль, то, после
внесения изменений в php.ini, необходимо перезагрузить
веб-сервер.

Также смотрите описание php_ini_loaded_file().

Как я могу добавить директорию с PHP в PATH
в Windows?

В Windows:

  • Старт → Панель Управления → Система

  • Перейдите на вкладку ‘Дополнительно’

  • Нажмите кнопку ‘Переменные Окружения’

  • Посмотрите раздел ‘Системные Переменные’

  • Найдите строку, содержащую переменную PATH

  • Совершите на ней двойной щелчок мышью

  • Допишите в конец строки путь к PHP, не забыв добавить перед ним ‘;’
    (например ;C:\php)

  • Нажмите OK

Замечание:

Не забудьте перезагрузиться после описанных выше действий и, после перезагрузки,
проверить, что переменная PATH содержит нужный путь.

Как я могу сделать файл php.ini доступным для PHP в windows?

Есть несколько способов сделать это. Если вы используете Apache, обратитесь к документации Apache,
в противном случае вы должны установить переменную среды PHPRC.

Можно ли использовать согласование контента Apache (опция MultiViews)
с PHP?

Если ссылки на файлы PHP содержат расширения, то все будет работать отлично.
Это FAQ применимо только для случаев, когда ссылки не содержат расширения и
вы хотите использовать согласование контента для файлов PHP из URL.
В этом случае замените строку AddType application/x-httpd-php
.php
на:

AddHandler php5-script php
AddType text/html php

Это решение не сработает с Apache 1, так как модуль PHP не отлавливает
php-script.

PHP ограничен работой только с методами GET и POST?

Нет, возможно работать с любыми запросами, например CONNECT.
Правильный статус ответа должен будет посылаться функцией
header(). Если вам надо, чтобы PHP работать только с
методами GET и POST, необходимо сконфигурировать Apache следующим образом:

<LimitExcept GET POST>
Deny from all
</LimitExcept>

per dot fikse at ipj dot no

18 years ago

Installing PHP 4 or 5 on Windows Server 2003 x64 results in http error 505. This is not a PHP bug. It is due to running a 32-bit ISAPI DLL under the 64-bit version of IIS 6, as documented here: http://support.microsoft.com/?id=895976

Solution: Flip the Metabase flag for Enable32bitAppOnWin64 as described in http://support.microsoft.com/?id=894435 ,
like this: CSCRIPT ADSUTIL.VBS SET W3SVC/AppPools/Enable32bitAppOnWin64 1

(Alternatively with full path: cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1)

emzeperx at emzeper dot hu

17 years ago

You do not have to restart the whole system make effect of changing the PATH env var. For me (sbs2003) worked automatically.
on older systems you can use

set $Path=%path%;c:\php

command to extend immediately the path var.

nigel dot salt at hotmail dot com

19 years ago

Finally got IIS 5 and PHP 5 to talk.

What worked for me was:

1) Set
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
W3SVC\Parameters\Script Map]
".php"="your path to php\\php.exe"

2) ensure there is not a php.ini in the windows system folder and that there is one wherever you've put PHP

3) edit php.ini and set cgi force redirect to 0 and cgi.rfc2616_headers = 1

4) Put the PHP scripts in their own folder underneath the inetpub root

5) Open the IIS console, right click your new php folder
In the Directory tab
set application name to the name of the folder
set executable and script as permission
set application protection to low
Click configuration and check that .php is mapped to wherever you put
PHP

Restart IIS

Try a very simple PHP page and it should work

Nigel

john dot calder at manukau dot ac dot nz

15 years ago

WINDOWS 2003 and IIS. BIG LESSON FOR ME was "don't mess with the optional components".
I had lots of trouble until I tried installing without asking for extras and then it was very smooth.
I have found no need to set up paths.
I have found no need to configure IIS.
I have found no need to change security on the PHP folder.

What works for me with Windows/IIS:

1. You need to be logged-on as "administrator"

2. Run "php-5.2.6-win32-installer.msi"
Your ONLY action during this wizard is to select "IIS ISAPI" as the webserver. Do NOT CHANGE anything else! I am guessing that the optional extras apply only to Apache because after enabling them I see Apache-related error messages.

3. Setup a test virtual directory as you would for an ASP or ASP.NET web app. eg "phptest"
Then use notepad to create a test page eg "test.php"
<?php
phpinfo
();
?>

4. In Internet Explorer, test with eg this address
http://localhost/phptest/test.php

IF this does not give you a beautiful page of details THEN start reading other advice on this page - especially helpful for me was the faq advice to test run "php.exe -i" from the command prompt.

charleslynch at xybersoftware dot com

15 years ago

One final note to the message below if you are getting the message about not having rights to execute...You need to use IIS right click on the website and choose 'Properties/Home Directory' then on the 'Execute Permissions' combo box you need to choose 'Scripts only'...Click ok...another dialog may appear asking which directories to apply the action too...choose any directories that you intend on using php in and click ok...It should work now...

JUSTANOTHERUSER

18 years ago

<LimitExcept GET POST>
Deny from all
</LimitExcept>

Does not work with Apache2+ & PHP5 . Apache Refuses to start

jimo at mail dot azhsv dot com

19 years ago

PHP 4 and IIS 6.0 (Windows Server 2003)

Had difficulty getting PHP 4.3.3 to work with Win2003 Ent Server for use with SquirrelMail. Problem found and believed solved. Appears to be something New with IIS 6.0 (More security by Micro$oft) Was getting 404 error and php was not being run as a cgi even though it was in extensions and IIS user had rights to execute it. (php from command line operated correctly)

If you are installing on Windows Server 2003 (only have Enterprise Edition ? Not sure if this applies to standard edition), and you have done the normal procedures for inclusion of PHP scripts (either ISAPI or CGI) in IIS, you will still get a 404 error when attempting to execute those scripts even though IIS has rights and the extension points to the correct file. To alleviate this problem, perform the following:

1. Open a command prompt window
2. Change to C:\windows\system32
3. Execute the command: cscript iisext.vbs /AddFile c:\php\php.exe 1 php 0 php
4. Execute the command: cscript iisext.vbs /EnFile c:\php\php.exe
5. To check for correct execution of the above,
6. Execute the command: cscript IisExt.vbs /ListFile ? the php extension should be listed

If you try just step 4 without step 3 you get an error that the file is not in the list (and won?t be there till you do step 3 above)

After this, IIS seems to like the php extension and work normally.

For additional reference, see the below 3 Micro$oft KB Articles:
HOWTO: Enable and Disable ISAPI Extensions and CGI Applications in IIS 6.0 (MS KB Article 328360)

HOWTO List Web Server Extensions and Extension Files in IIS 6.0 (MS KB Article 328505)

HOWTO Add and Remove Web Service Extension Files in IIS 6.0 (MS KB Article 328419)

ssaxena at nriol dot com

13 years ago

Here are my struggle to get PHP 5.2.12 working on Windows XP SP3, IIS 5.1 (Please note Win XP SP3 has issue of FastCGI)

1. Dowloaded installer and installed in C:\Program Files\PHP as ISAPI module

---->Did not work

Added php5isapi.dll in ISAPI Filter and added the extension .php in Home Dir->Configuration
(For every setting change restarted IIS on cmd->iisreset)

---->Did not work

(And the Google was pointing to the Fast CGI issue; Don't know why microsoft has MS-FAST ! )
Uninstalled the PHP and cleaned up the folders, PATH environment variable & PHPRC, the IIS settings and registry entries and shut down(restart is different from shut down) the system to make it very clean

2. Reinstalled the PHP in C:\PHP as ISAPI and did the same as above in IIS
(For every setting change restarted IIS on cmd->iisreset)

---->Did not work

Uninstalled and cleaned up same as above and took a breath to make sure what I am doing wrong.
Shutdown the system.

3. Unzipped the php-5.2.12-Win32.zip and did the same as above (this time manually PATH variable and security permission for the PHP folder and following settings)

short_open_tag = On
error_reporting = E_ALL & ~E_NOTICE
display_errors = On
doc_root = "C:\Inetpub\wwwroot"
extension_dir = "C:\PHP\ext"
cgi.force_redirect = 0

---->Did not work

Uninstalled and cleaned up same as above
Shutdown the system.

4. Downloaded Microsoft Web Platform Installer 2.0 and select the PHP+Fast CGI+Windows Cache for PHP extension and Web Deployment Tools
restarted the system to take effect the settings

---->Did not work

Uninstalled and cleaned up same as above
Shutdown the system

5. Took the prev version of PHP php-5.2.4-Win32.zip unzip the folder and did the following changes:

short_open_tag = On
error_reporting = E_ALL & ~E_NOTICE
display_errors = On
doc_root = "C:\Inetpub\wwwroot"
extension_dir = "C:\PHP\ext"
cgi.force_redirect = 0

set the security permission as IIS_machinename with full access to the C:\PHP folder

------->IT GOT WOKRING

Hope people would be aware of php-5.2.12 and would love the php-5.2.4

scott at chaisson dot net

16 years ago

Windows 2000 Server and IIS (SP4 and all patches):

After many frustrating hours of trying to figure out the install (again), It took a while, but here are a couple tips:

PHP working with IIS uses c:\winnt\php.ini

It doesn't matter what you set the path to, nor what you set the PHPRC environment variable to. After you get PHP running correctly in the installation folder (using php -i) copy the php.ini file into the c:\winnt folder.

Here's what worked for me:

- Add PHP path to System environment variable

- Add php5activescript.dll from http://snaps.php.net/ to the PHP folder, then Register it: "regsvr32 php5activescript.dll"

Set extension_dir and doc_root directives in PHP.INI:
extension_dir = C:\WWW\PHP\ext
doc_root = C:\WWW\Site
cgi.force_redirect = 0

(the last cgi.force_redirect isn't required, but I like to set it anyway)

Copy the .INI file into WINNT folder

In IIS Manager, right-click "Default Web Site", Click "Home Directory",
Click "Configuration", "Add" the ISAPI application:
Executable: <your php install>\php5isapi.dll
Extension: .php
Limit to: GET,HEAD,POST
Check: "Script Engine"
Uncheck: "Check that file exists"

Finally: Set up an ISAPI filter:
Click the "ISAPI Filters" tab,
Filter Name: PHP
Executable: <your php install>\php5isapi.dll

Notes: You don't have to set any of your folders as "Script source" folders. .PHP files aren't scripts, merely text files that require processing before being shipped off to the browser, which is what the ISAPI filter does.

Finally, working again.

Chase

Meiki67 skipthis at geemail

16 years ago

Had a hard day to MSI install 5.2.3 on WinXP with MySQL. I use a drive substitution (subst drive: path - in my case subst d: c:\drive_d) and installed PHP in D:\PHP - which in reality is C:\DRIVE_D\PHP. To make a long story short - only after (1) changing all substituted D:\ back to C:\DRIVE_D and (2) resolving all DOS short names to Win long names PHP started to work. The first one is clear - the substitution works only for the active console user - not for services or IUSR. For the second one I have no explanation, since DOS short names should work systemwide - maybe Win handles them correctly but PHP not ?

BTW <?php phpinfo(); ?> was of tremendeous help

Meiki

knutw at sparhell dot no

16 years ago

I recntly upgraded from PHP 5.1 to 5.2 on my Windows Server 2003 using IIS6. I selected CGI as before. My PHP folder is as always C:\Program Files\PHP. I also edited my brand new php.ini, enabling all my old extensions and recommended settings for IIS. I like not to keep my old config into a new version.

After upgrade, I just got blank pages in my browser, and the response status was 404 Not found.

I checked my installation twice, using this FAQ, but got no way.

Then I went to IIS Manager, Web Service Extensions. The php Service Extension was Allowed as it should. I deleted the Service Extension and added it. The old extension used short file names containing tilde (PROGRA~) character, but I don'æt know if that gas anything to do with the problem. Anyway, after allowing my" new" Service Extension, pointing to php-cgi.exe as before, mye web sites suddenly worked. So will revommend anyone with thos problem to delete and add the Servcie Extension. It didn't help re-allowing it, restarting IIS or the complete server.

jeff_graham at datacenterservices dot net

19 years ago

As stated within the note "jimo at mail dot azhsv dot com
29-Nov-2003 04:33
PHP 4 and IIS 6.0 (Windows Server 2003)," I found the same steps were requiered for installation of PhP 5 beta 3 on my Windows 2003 server (Standard Edition)

Curtis

16 years ago

I have some additional troubleshooting tips for 53.7, which deals with getting a blank screen on your browser when running a PHP script.

In addition to server misconfiguration, it may also be that PHP isn't configured to output errors to the browser, which is the case if you or your host uses a more secure php.ini. If this is the case, you need to find out where errors are being logged to find out if any errors are preventing normal output from being delivered to the client.

If you have access to php.ini, check the 'display_errors' directive, which is, by default, located under the 'error_reporting' directive. It's helpful to have 'display_errors' on during debugging phases, but best to have it off in production environments.

Related functions: http://php.net/ini_set | http://php.net/error_reporting | http://php.net/error_log

peter dot mosinskisNOSPAM at csuci dot edu

20 years ago

Running Win2K AS + IIS5.0 + PHP 4.3.1, I ran into a nasty problem that I mistakenly thought had to do with something in the php.ini configuration. When I would try to submit a form using the HTTP method GET it would work, but I would get a "404 Page Not Found" error using the POST method.

All my permissions were set correctly, the php.ini was configured correctly. It had to do with URLScan being installed on IIS (see below)

Page 404 File Not Found Error When Using POST method in PHP (and Perl, and otherwise)
-------------------------------------------

This is related to the Microsoft URLScan utility. If you have this problem, the IIS administrator has probably run the IIS Lockdown tool as well as configured URLScan to reject this type of HTTP method when sent in a URL. These tools are meant to enhance web server security.

URLScan configuration files can be found in the \WINNT\system32\inetsrv\urlscan folder on the web server. Specifically, the file to modify is urlscan.ini.

The changes to make are as follows:
1. Make sure UseAllowVerbs=1 under [options]
2. Under the [AllowVerbs] section, list your allowed HTTP methods to include:
GET
POST

For more information on the IIS Lockdown tool and URLScan, visit http://technet.microsoft.com

christianfelix at laszlo dot com

16 years ago

For Windows XP users

Just add php.ini to windows/system 32 and also save a copy in the setup folder e.g. c:/php/php.ini, c:/php5/php.ini,

You have to follow the suggestions, add to path, uncomment extensions and voila!!

monroe at peoplego dot com

21 years ago

INSTALLATION ON OPENBSD 3.1 VIA PORTS COLLECTION
Would have succeed but no mysql support.
I commented out the FLAVORS+= dbase filepro mysql mysql_bundled postgresql iodbc in the /usr/ports/www/php4/Makefile and in the configure options added
--with-mysql=/usr/local and it worked.

Good Luck

joerg at fenin dot de

15 years ago

To limit HTTP Request Methods on the Apache server running PHP you should use mod_rewrite or mod_security instead of LimitExcept, to give you more control over the handling of such http errors. Can go in .htaccess file or httpd.conf

# mod_rewrite
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} !^(GET|HEAD|POST)$
RewriteRule .* - [F,L]
</IfModule>

# mod_security
<IfModule mod_security.c>
SecFilterSelective REQUEST_METHOD "!^(GET|HEAD|POST)$" "deny,log,status:403"
</IfModule>

You can use the php request method scanner at askapache to see exactly how your server deals with various request methods, and check that your server is configured properly..

http://www.askapache.com/online-tools/request-method-scanner/

Anonymous

17 years ago

After setting the PHPRC environment variable, none of my PHP files would hit the preprocessor. The browser was just serving out PHP source code right there in the "view source."

The manual was telling me to set this var to "c:\php," but nothing was working. It's almost as if IIS/Win2000 wasn't reading my php.ini at all.

After I set that variable to "c:\php\php.ini," all of a sudden I was getting honest to goodness PHP pages working.

barry dot fagin at usafa dot af dot mil

18 years ago

Fixing 404 (file not found) errors with PHP 5.0.3 and IIS 6.0

IIS 6.0 is installed with security settings that don't permit dynamic content. This means that even if all the hints in the FAQ are paid attention to (.ini modified correctly, security and permissions correct for IUSR_xxx user, etc), you still get 404 errors for all php files.

To fix this: IIS Manager -> expand local computer -> Web Services Extensions -> Add web service or extension -> .php, browse to c:\php\php-cgi.exe or wherever you had the php executable installed. That plus setting the doc_root in the .ini file solved the problem.

--BF

The above answers are good, but didn’t solve the problem that we had.

As the others mentioned (spot on), I created a file:

<?php
phpinfo(); 
?>

So that worked great. However, it showed «(none)»

So where do you find (none)!?

You can’t find what doesn’t exist, of course.

The answer actually is, you don’t HAVE a php.ini; you’ll need to create it.

In my case, on Windows, you just go to where php is installed; I had already had installed it in c:\php I believe it would be the same steps on other platforms.

Then, from a command line, powershell for ex, type: notepad c:\php\php.ini

Tell it yes, you do want to create it, then add whatever changes you needed in the first place. For me, for example:

extension_dir = "c:\php\ext"
extension=mysqli
upload_max_filesize = 25M
post_max_size = 13M
max_execution_time = 300

Then save. Fixed!

By the way — if you do «file new» and then «save as» Notepad will (not so) helpfully rename your file to php.ini.txt.

The php.ini file is a configuration file used by PHP to specify settings for your web server, such as file upload size, error reporting, and memory usage. However, the location of the php.ini file can vary depending on your server setup and operating system.

In this tutorial, we will explore a few methods to help you locate the correct php.ini file on your web server.

Method 1: Use phpinfo() function

The phpinfo() function displays detailed information about your PHP configuration, including the location of your php.ini file. To use this function, follow these steps:

  1. Create a new PHP file on your web server. You can name it anything you like, but for this tutorial, we will name it phpinfo.php.
  2. Open the phpinfo.php file in a text editor and add the following code:
  3. Save the file and upload it to your web server using FTP or your web hosting control panel.
  4. Open your web browser and navigate to the URL of the phpinfo.php file, for example http://example.com/phpinfo.php. Replace “example.com” with your own domain name.

You should see a page with detailed information about your PHP configuration. Look for the “Loaded Configuration File” section, which should contain the full path to your php.ini file.

Locate php.ini with phpinfo()

Locate php.ini with phpinfo()

Method 2: Use the command line

If you have access to the command line, you can use the `php --ini` command to find the location of the php.ini file. Follow these steps:

  1. Log in to your web server using SSH or another terminal application.
  2. Type the following command and press Enter:
    php --ini | grep php.ini
    
  3. This command will display a list of all the php.ini files that are currently being used, as well as their locations.

Locate php.ini for CLI

Locate php.ini for CLI

Method 3: Check default locations

Depending on your operating system and server configuration, the php.ini file may be located in one of the default locations. Here are some common default locations:

On Linux:

  • /etc/php.ini
  • /etc/phpX/apache2/php.ini (where X is the PHP version)

On Windows:

  • C:\Windows\php.ini
  • C:\php\php.ini

You can try searching for the php.ini file in these locations using your FTP or file manager.

If none of these methods work, you can contact your web hosting provider or system administrator for assistance in locating the php.ini file on your server.

Conclusion

The php.ini file is an essential configuration file for PHP. By following the methods outlined in this tutorial, you should be able to locate the correct php.ini file on your web server. Remember, the location of the php.ini file can vary depending on your server setup and operating system, so it’s important to double-check the location before making any changes to the file.

  • Php windows iconv windows 1251 utf 8
  • Php thread safe или non thread safe для windows
  • Php ini где лежит windows
  • Php for windows 10 download
  • Php default charset windows 1251