Running php files windows

How to Run PHP Files

If you double click on a HTML file (files with .html or .htm extension), it would open on your web browser. But same won’t happen if you double clicked on a PHP file (probably it would open in an editor). The reason is PHP files first need be processed in a web server before sending their output to the web browser.

Therefore before running PHP files, they should be placed inside the web folder of a web server and then make a request to desired PHP file by typing its URL in the web browser. If you installed a web server in your computer, usually the root of its web folder can be accessed by typing http://localhost in the web browser. So, if you placed a file called hello.php inside its web folder, you can run that file by calling http://localhost/hello.php.

Web folder can be changed based on your web host (if you hosted your web site online) or the method you installed the web server in your computer. If you used XAMPP to install Apache (web server) in your computer then the web folder would be htdocs which is under the root directory of XAMPP.

You Are at : Basics > How to Run PHP Files
Previous Article : Working with XAMPP
Next Article : Getting Information about PHP Installation

Share with Your Peers.

We love to hear what you think about this article. Please provide your opinion, suggestions and improvements using following form. Note that submitted feedback is not displayed but we will get back to you if it needs a reply.

Установка

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

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

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

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

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

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

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

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

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

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

Включите backtrace в ваш отчёт об ошибке. И отправьте по адресу: » https://bugs.php.net/

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

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

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

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

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

Читайте также:  Windows не видит файлы андроид

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, мне выводится ошибка:

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

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

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

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

  • Права на файл вашего скрипта, php.exe , php5ts.dll , php.ini или какого-либо модуля PHP не позволяют анонимному пользователю интернета ISUR_ к ним обратиться.
  • Файл скрипта отсутствует (или, возможно, он находится не там, где вы думаете, относительно корневого каталога веб-сервера). Обратите внимание, что в 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 в PATH в Windows?

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

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

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

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

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

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

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

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

Есть несколько путей сделать это. Если вы используете Apache, прочитайте следующие инструкции (Apache 1, Apache 2), также вы можете установить системную переменную PHPRC :

Читайте также:  Как создать файл ярлыка windows

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

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

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

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

Нажмите кнопку ‘Добавить’ и введите ‘PHPRC’ как имя переменной и директорию с php.ini в качестве её значения (например C:\php )

Нажмите ОК и перезагрузите компьютер

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

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

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

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

Installation on Windows systems

Table of Contents

Installing PHP on modern Microsoft Windows systems and recommended configuration with common web servers.

If you are looking for information about older systems, such as Windows XP, 2003, 98 or Apache 1.x, see the Legacy Info section.

The Official releases of PHP on Windows are recommended for production use. However, you are welcome to build PHP from Source. You will need a Visual Studio environment. See » Step by Step Build Instructions.

Installing PHP on Azure App Services (aka Microsoft Azure, Windows Azure, or (Windows) Azure Web Apps).

User Contributed Notes 12 notes

If you make changes to your PHP.ini file, consider the following.

(I’m running IIS5 on W2K server. I don’t know about 2K3)

PHP will not «take» the changes until the webserver is restarted, and that doesn’t mean through the MMC. Usually folks just reboot. But you can also use the following commands, for a much faster «turnaround». At a command line prompt, type:

and that will stop the webserver service. Then type:

net start w3svc

and that will start the webserver service again. MUCH faster than a reboot, and you can check your changes faster as a result with the old:

in your page somewhere.

I wish I could remember where I read this tip; it isn’t anything I came up with.

You can have multiple versions of PHP running on the same Apache server. I have seen many different solutions pointing at achieving this, but most of them required installing additional instances of Apache, redirecting ports/hosts, etc., which was not satisfying for me.
Finally, I have come up with the simplest solution I’ve seen so far, limited to reconfiguring Apache’s httpd.conf.

My goal is to have PHP5 as the default scripting language for .php files in my DocumentRoot (which is in my case d:/htdocs), and PHP4 for specified DocumentRoot subdirectories.

Here it is (Apache’s httpd.conf contents):

—————————
# replace with your PHP4 directory
ScriptAlias /php4/ «c:/usr/php4/»
# replace with your PHP5 directory
ScriptAlias /php5/ «c:/usr/php5/»

AddType application/x-httpd-php .php
Action application/x-httpd-php «/php5/php-cgi.exe»

# populate this for every directory with PHP4 code

Action application/x-httpd-php «/php4/php.exe»
# directory where your PHP4 php.ini file is located at
SetEnv PHPRC «c:/usr/php4»

# remember to put this section below the above

# directory where your PHP5 php.ini file is located at
SetEnv PHPRC «c:/usr/php5»

—————————

This solution is not limited to having only two parallel versions of PHP. You can play with httpd.conf contents to have as many PHP versions configured as you want.
You can also use multiple php.ini configuration files for the same PHP version (but for different DocumentRoot subfolders), which might be useful in some cases.

Remember to put your php.ini files in directories specified in lines «SetEnv PHPRC. «, and make sure that there’s no php.ini files in other directories (such as c:\windows in Windows).

And finally, as you can see, I run PHP in CGI mode. This has its advantages and limitations. If you have to run PHP as Apache module, then. sorry — you have to use other solution (the best advice as always is: Google it!).

Hope this helps someone.

If you are installing PHP on Vista just go to David Wang’s blog. http://blogs.msdn.com/david.wang/
archive/2006/06/21/HOWTO-Install-and-Run-PHP-on-IIS7-Part-2.aspx

I made the mistake of setting a ‘wildcard application map’ for PHP on a Windows 2003 / IIS 6.0 / PHP ISAPI installation.

This resulted in «No input file specified» errors whenever I tried to load the default page in my site’s directories. I don’t know why this broke things, but it did.

If anyone has the same problem, this may be the cause.

IIS setup: 403 forbidden error.

Читайте также:  Windows нельзя создать файл или папку под названием con

We had installed two separate different PHP versions — PHP 5.1.4 followed by 5.2.5.

We configured 5.2.5 php5isapi.dll to be loaded as the .php file type extension.

Despite this, php version 5.1.4 was being loaded. We renamed 5.1.4’s folder and then PHP was not loading at all.

There were no visible references to 5.1.4 in the IIS configuration, but in the file \webConfig.xml, there was a reference to 5.1.4’s isapi under IISFilters.

To fix this problem, we added version 5.2.5’s php5isapi.dll to the ISAPI Filter category for the web site, in the IIS control panel.

I installed by Microsoft Installer, manually, whatever I always received de same error from IIS7.

HTTP Error 404.3 — Not Found
The page you are requesting cannot be served because of the extension configuration. If the page is a script, add a handler. If the file should be downloaded, add a MIME map.

The IIS7 interface is quite diferent and are not all together like IIS6

The 5.3 version have not any of those files: php5stdll, php5isapi.dll. etc.

The installer puts others files in handlers and I decided to use them as substitutes. Nothing done!

After that, I discovered that installer do not install these files within the sites, but in the root default site configuration of IIS7.

So, I copied the root configuration to my site and them it worked (all others procedures were done e.g. copy php.ini to windows folder)

If you get 404 page not found on Windows/IIS5, have a look at C:\SYSTEM32\INETSRV\URLSCAN

There is a .ini file there that prevents some files from being served by IIS, even if they exist, instead IIS will give a 404. The urlscan logfile (same place) should give you some insight into what parameter is preventing a page from loading, if any.

Here’s how to run dual PHP instances with PHP 5.2 and any previous PHP on Windows 2003:

1. Right-click My Computer, go to Advanced tab, and click on Environment Variables.

Add the two installations and their EXT directories to the Path variable. For example, add:
c:\php;c:\php\ext;c:\TMAS\php;c:\tmas\php\ext;

Then, add the newer PHP version’s directory as a variable called PHPRC. For example:
Variable:PHPRC
Value: C:\PHP

Click OK to close the Environment Variables window, and click OK to close System Properties.

2. In registry, under HKEY_LOCAL_MACHINE>SOFTWARE>PHP, add a REG_SZ key called iniFilePath and give it a value
of the directory where the older PHP is installed. For example:
C:\TMAS\PHP

3. In IIS, go to the Web Service Extensions. Add both versions’ ISAPI module separately to the extensions
list, and allow both.

4. In IIS, go to each website utilizing the PHP versions. Set an ISAPI filter if needed. On the Home Directory
tab, click Configuration, and add .php, .php3, .phtml, and any other extensions needed (perhaps .html?) to
be filtered through PHP, and specify the ISAPI module version needed for each website.

You can now run two versions of PHP. This is because the order of where to look for the .ini file changed
between previous PHP versions and PHP 5.2, as documented at http://us2.php.net/ini:

* SAPI module specific location (PHPIniDir directive in Apache 2, -c command line option in CGI and CLI, php_ini parameter in NSAPI, PHP_INI_PATH environment variable in THTTPD)
* The PHPRC environment variable. Before PHP 5.2.0 this was checked after the registry key mentioned below.
* HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath (Windows Registry location)
* Current working directory (for CLI)
* The web server’s directory (for SAPI modules), or directory of PHP (otherwise in Windows)
* Windows directory (C:\windows or C:\winnt) (for Windows), or —with-config-file-path compile time option
—————————————————-

PHP 5.2.9.2 Install on XP Pro IIS 5.1 — phpinfo( ) results incorrect

Testing Date: 05.15.09

Background:
For several days now I, as a newbie, have been unsure if I had installed PHP correctly, or not. No matter what I did phpinfo( ) reported «Configuratin File Path» as: “C:\WINDOWS”. I was left to wonder what was wrong.

To help resolve the phpinfo() “issue”, I conducted a series of tests using two scripts:

The first is “test-php-ini-loaded.php”; it is stored in c:\inetpub\wwwroot, and has the following code:

if ( $inipath ) <
echo ‘Loaded php.ini: ‘ . $inipath ;
> else <
echo ‘A php.ini file is not loaded’ ;
>
?>

The second script is simply calls phpinfo( ). It is named test.php, is stored in “c:\inetpub\wwroot”, and has the following code:

( ); ?>

My Dev Environment:
1. Windows XP Pro SP3
2. IIS 5.1 / MMC 3.0
3. PHP 5.2.9.2 – phpMyAdmin not yet installed
4. (plus MySQL 5.1, etc.)
5. Install location is on my local E: drive

Оцените статью