Php для windows 2003

Содержание
  1. Установка в системах Windows
  2. Содержание
  3. User Contributed Notes 12 notes
  4. Php для windows 2003
  5. Руководство по ручной установке
  6. Выбор и загрузка пакета дистрибутивов PHP
  7. Структура и содержание пакета PHP
  8. Изменение файла php.ini
  9. Microsoft IIS
  10. Microsoft IIS 5.1 and IIS 6.0
  11. Configuring IIS to process PHP requests
  12. Impersonation and file system access
  13. Set index.php as a default document in IIS
  14. FastCGI and PHP Recycling configuration
  15. Configuring FastCGI timeout settings
  16. Changing the Location of php.ini file
  17. Microsoft IIS 7.0 и выше
  18. Включение поддержки FastCGI в IIS
  19. Настройка IIS для обработки PHP запросов
  20. Представление и доступ к файловой системе
  21. Установка index.php как документа по умолчанию в IIS
  22. FastCGI и PHP конфигурация с пересозданием процессов
  23. Установка таймаута FastCGI
  24. Изменение положения файла php.ini
  25. Apache 1.3.x в Microsoft Windows
  26. Установка PHP как модуля Apache
  27. Установка как бинарного CGI файла
  28. Apache 2.x on Microsoft Windows
  29. Установка PHP как обработчика под Apache
  30. Запуск PHP как CGI
  31. Запуск PHP под FastCGI
  32. Sun, iPlanet and Netscape servers on Microsoft Windows
  33. CGI setup on Sun, iPlanet and Netscape servers
  34. NSAPI setup on Sun, iPlanet and Netscape servers
  35. CGI environment and recommended modifications in php.ini
  36. Special use for error pages or self-made directory listings (PHP >= 4.3.3)
  37. Note about nsapi_virtual() and subrequests (PHP >= 4.3.3)
  38. Sambar Server под Microsoft Windows
  39. Xitami на Microsoft Windows
  40. Сборка из исходников
  41. Установка модулей PHP в ОС Windows
  42. Командная строка PHP в Microsoft Windows

Установка в системах Windows

Содержание

Установка PHP в современных операционных системах Microsoft Windows и рекомендуемая конфигурация под распространённые веб-серверы.

Если вы ищете информацию о старых версиях операционных систем: Windows XP, 2003, 98 или Apache 1.x, обратитесь к разделу руководства Установка на старых версиях ОС Windows.

Официальные релизы PHP для Windows рекомендованы для использования в промышленной эксплуатации. Однако, вы также можете собрать PHP из исходных кодов. Вам потребуется окружение Visual Studio. Обратитесь к разделу » Пошаговое руководство по сборке для получения более полной информации.

Установка PHP на Azure App Services (он же Microsoft Azure, Windows Azure, или (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.

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

Php для windows 2003

Данный раздел руководства применим к Windows 98/Me и Windows NT/2000/XP/2003. PHP не будет работать на 16 битных платформах, таких как Windows 3.1 и иногда мы ссылаемся на поддерживаемые Windows платформы как Win32.

Windows XP/2003 больше не поддерживаются для PHP 5.5.0.

Windows 98/Me/NT4/2000 больше не поддерживаются для PHP 5.3.0.

Windows 95 больше не поддерживается для PHP 4.3.0.

Если у вас есть окружение для разработки, такое как Microsoft Visual Studio, вы также можете собрать PHP из исходников.

Установив PHP в ОС Windows, вы также можете захотеть загрузить различные расширения для обеспечения дополнительной функциональности.

Руководство по ручной установке

Этот раздел содержит инструкции для ручной установки и настройки PHP на Microsoft Windows.

Выбор и загрузка пакета дистрибутивов PHP

Загрузите дистрибутив PHP в виде zip-архива с » PHP для Windows: Исполняемые файлы и исходные коды. Существует несколько различных версий zip-пакетов — выберите версию, которая подходит для используемого веб сервера:

Структура и содержание пакета PHP

Распакуйте содержимое zip архива в директорию на ваш выбор, например, C:\PHP\. Структура папок и файлов, извлеченных из архива, будет выглядеть следующим образом:

Пример #1 Структура пакета PHP 5

Ниже представлен список модулей и исполняемых файлов, включенных в PHP zip дистрибутив:

go-pear.bat — скрипт установки PEAR. Подробнее смотрите » Установка (PEAR).

php-cgi.exe — исполняемый файл CGI, который может быть использован во время запуска PHP на IIS через CGI или FastCGI.

php-win.exe — исполняемый файл PHP для выполнения PHP скриптов без использования консоли (например, приложения PHP, использующие Windows GUI).

Читайте также:  Linux iso file download

php.exe — исполняемый файл PHP для выполнения PHP скриптов в консоли (CLI).

php5apache2_2.dll — модуль Apache 2.2.X.

php5apache2_2_filter.dll — фильтр Apache 2.2.X.

Изменение файла php.ini

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

Файл php.ini содержит правила исполнения PHP и инструкции по работе с окружением, в котором он запускается. Ниже приводятся некоторые из настроек php.ini , которые могут улучшить работу PHP в Windows. Некоторые из них необязательные. Есть много других директив, которые могут быть полезны в вашем окружении — обращайтесь к списку директив php.ini за более подробной информацией.

extension_dir = — extension_dir указывает директорию, где расположены модули PHP. Путь может быть абсолютным (например, «C:\PHP\ext») или относительным (например, «.\ext»). Используемые в php.ini модули должны быть расположены в extension_dir .

extension = xxxxx.dll — Для каждого подключаемого модуля необходимо указать директиву «extension=». Модули из extension_dir , отмеченные такой директивой, загружаются при старте PHP.

log_errors = On — в PHP есть механизм ведения лога ошибок, который может использоваться для сохранения ошибок в файле или для отправки в сервис (например syslog). Механизм также использует значение директивы error_log . Когда PHP исполняется службой IIS, log_errors должен быть включен с корректным error_log .

error_log = — error_log нужен для обозначения абсолютного или относительного пути к файлу, в который протоколируются ошибки PHP. Этот файл должен доступным для записи веб-сервером. Самые распространенные места размещения этого файла — различные временные TEMP директории, например, «C:\inetpub\temp\php-errors.log».

cgi.force_redirect = 0 — Эта директива необходима для исполнения под IIS. Это механизм защиты директории, требуемый многими другими веб-серверами. Однако, включение его под IIS вызовет ошибки ядра PHP в Windows.

cgi.fix_pathinfo = 1 — Обеспечивает поддержку PATH_INFO согласно спецификации CGI. IIS FastCGI использует эту настройку.

fastcgi.impersonate = 1 — FastCGI под IIS поддерживает способность идентифицировать маркеры безопасности вызывающего клиента. Это позволяет IIS определять контекст безопасности, под которые выполняется запрос.

fastcgi.logging = 0 — Запись логов FastCGI должна быть выключена в IIS. Если запись включена, тогда все сообщения любых классов распознаются FastCGI как ошибки, что приведет IIS к выбрасыванию исключения HTTP 500.

max_execution_time = ## — Эта директива указывает максимальное время выполнения любого скрипта PHP. По умолчанию равна 30 секундам. Следует увеличить это значение, если приложение PHP должно выполняться дольше.

memory_limit = ###M — Количество памяти, доступное процессу PHP, в Мб. По умолчанию 128, что достаточно для большинства PHP приложений. Некоторым сложным приложениям может потребоваться больше памяти.

display_errors = Off — Директива определяет, какие ошибки следует возвращать веб-серверу для дальнейшего протоколирования. При значении «On» PHP сообщает обо всех видах ошибок, которые приводятся в директиве error_reporting . По соображениям безопасности рекомендуется установить в «Off» на рабочих серверах, чтобы исключить передачу вывода ошибок конечному пользователю, так как они могут содержат информацию, угрожающую безопасности приложения.

open_basedir = , например openbasedir=»C:\inetpub\wwwroot;C:\inetpub\temp». Эта директива указывает пути к директориям, в которых PHP разрешены операции с файловой системой. Любая операция с файлами и директориями вне указанных путей будет приводить к ошибке. Эта директива особенно полезна для предотвращения доступа к установленному PHP в окружениях разделяемых хостингов для предотвращения доступа PHP скриптов к любым файлам вне корневой директории веб сайта.

upload_max_filesize = ###M и post_max_size = ###M — Максимальный разрешенный размер загруженного файла и присланных данных соответственно. Значения этих директив должны быть увеличены, если приложения PHP должны обрабатывать большие загружаемые файлы, например, изображения или видеофайлы.

После установки PHP в вашей системе, следующим шагом будет выбор веб-сервера и его дальнейшая настройка для работы с PHP. Выберите конкретный веб-сервер в оглавлении к данному материалу.

Помимо запуска PHP с помощью веб-сервера, PHP может быть запущен из командной строки как .BAT скрипт. За более подробной информацией обращайтесь к материалу Консоль PHP на Microsoft Windows.

Microsoft IIS

В этом разделе содержатся инструкции по установке PHP, специфичные для Microsoft Internet Information Services (IIS).

Microsoft IIS 5.1 and IIS 6.0

This section contains instructions for manually setting up Internet Information Services (IIS) 5.1 and IIS 6.0 to work with PHP on Microsoft Windows XP and Windows Server 2003. For instructions on setting up IIS 7.0 and later versions on Windows Vista, Windows Server 2008, Windows 7 and Windows Server 2008 R2 refer to Microsoft IIS 7.0 and later.

Configuring IIS to process PHP requests

Download and install PHP in accordance to the instructions described in manual installation steps

Non-thread-safe build of PHP is recommended when using IIS. The non-thread-safe builds are available at » PHP for Windows: Binaries and Sources Releases.

Configure the CGI- and FastCGI-specific settings in php.ini file as shown below:

Пример #2 CGI and FastCGI settings in php.ini

Download and install the » Microsoft FastCGI Extension for IIS 5.1 and 6.0. The extension is available for 32-bit and 64-bit platforms — select the right download package for your platform.

Configure the FastCGI extension to handle PHP-specific requests by running the command shown below. Replace the value of the «-path» parameter with the absolute file path to the php-cgi.exe file.

Пример #3 Configuring FastCGI extension to handle PHP requests

This command will create an IIS script mapping for *.php file extension, which will result in all URLs that end with .php being handled by FastCGI extension. Also, it will configure FastCGI extension to use the executable php-cgi.exe to process the PHP requests.

At this point the required installation and configuration steps are completed. The remaining instructions below are optional but highly recommended for achieving optimal functionality and performance of PHP on IIS.

Impersonation and file system access

It is recommended to enable FastCGI impersonation in PHP when using IIS. This is controlled by the fastcgi.impersonate directive in php.ini file. When impersonation is enabled, PHP will perform all the file system operations on behalf of the user account that has been determined by IIS authentication. This ensures that even if the same PHP process is shared across different IIS web sites, the PHP scripts in those web sites will not be able to access each others’ files as long as different user accounts are used for IIS authentication on each web site.

For example IIS 5.1 and IIS 6.0, in its default configuration, has anonymous authentication enabled with built-in user account IUSR_ used as a default identity. This means that in order for IIS to execute PHP scripts, it is necessary to grant IUSR_ account read permission on those scripts. If PHP applications need to perform write operations on certain files or write files into some folders then IUSR_ account should have write permission to those.

To determine which user account is used by IIS anonymous authentication, follow these steps:

In the Windows Start Menu choose «Run:», type «inetmgr» and click «Ok»;

Expand the list of web sites under the «Web Sites» node in the tree view, right-click on a web site that is being used and select «Properties»;

Click the «Directory Security» tab;

Take note of a «User name:» field in the «Authentication Methods» dialog

To modify the permissions settings on files and folders, use the Windows Explorer user interface or icacls command.

Пример #4 Configuring file access permissions

Set index.php as a default document in IIS

The IIS default documents are used for HTTP requests that do not specify a document name. With PHP applications, index.php usually acts as a default document. To add index.php to the list of IIS default documents, follow these steps:

In the Windows Start Menu choose «Run:», type «inetmgr» and click «Ok»;

Right-click on the «Web Sites» node in the tree view and select «Properties»;

Click the «Documents» tab;

Click the «Add. » button and enter «index.php» for the «Default content page:».

FastCGI and PHP Recycling configuration

Configure IIS FastCGI extension settings for recycling of PHP processes by using the commands shown below. The FastCGI setting instanceMaxRequests controls how many requests will be processed by a single php-cgi.exe process before FastCGI extension shuts it down. The PHP environment variable PHP_FCGI_MAX_REQUESTS controls how many requests a single php-cgi.exe process will handle before it recycles itself. Make sure that the value specified for FastCGI InstanceMaxRequests setting is less than or equal to the value specified for PHP_FCGI_MAX_REQUESTS .

Пример #5 Configuring FastCGI and PHP recycling

Configuring FastCGI timeout settings

Increase the timeout settings for FastCGI extension if there are applications that have long running PHP scripts. The two settings that control timeouts are ActivityTimeout and RequestTimeout . Refer to » Configuring FastCGI Extension for IIS 6.0 for more information about those settings.

Пример #6 Configuring FastCGI timeout settings

Changing the Location of php.ini file

PHP searches for php.ini file in several locations and it is possible to change the default locations of php.ini file by using PHPRC environment variable. To instruct PHP to load the configuration file from a custom location run the command shown below. The absolute path to the directory with php.ini file should be specified as a value of PHPRC environment variable.

Пример #7 Changing the location of php.ini file

Microsoft IIS 7.0 и выше

Этот раздел содержит инструкции по настройке Internet Information Services (IIS) 7.0 и более поздних версий для работы с PHP на Microsoft Windows Vista SP1, Windows 7, Windows Server 2008 и Windows Server 2008 R2. Для получения инструкций по настройке IIS 5.1 и IIS 6.0 на Windows XP и Windows Server 2003 перейдите на страницу Microsoft IIS 5.1 и IIS 6.0.

Включение поддержки FastCGI в IIS

Модуль FastCGI при установке IIS по умолчанию отключён. Способы включения его различаются в зависимости от версии используемой Windows.

Для включения поддержки FastCGI на Windows Vista SP1 и Windows 7:

В меню «Пуск» выберите пункт «Выполнить», в появившемся окне введите с клавиатуры «optionalfeatures.exe» и нажмите «Ok»;

В открывшемся окне «Компоненты Windows» раскройте папку «Службы IIS», «Службы интернета», «Компоненты разработки приложений» и установите галочку напротив «CGI»;

Нажмите OK и ждите окончания процесса установки.

Чтобы включить поддержку FastCGI на Windows Server 2008 и Windows Server 2008 R2:

В Windows откройте меню Пуск выберите пункт «Выполнить:», наберите с клавиатуры «CompMgmtLauncher» и нажмите «Ok»;

Если роль «Веб-сервер (IIS)» не представлена во вкладке «Роли», добавьте её, выбрав «Добавить роли»;

Если роль «Веб-сервер (IIS)» присутствует, выберите «Выбор службы ролей» и установите галочку напротив «CGI» в группе «Компоненты разработки приложений»;

Нажмите «Далее», затем «Установить» и ждите окончания процесса установки.

Настройка IIS для обработки PHP запросов

Скачайте и установите PHP в соответствии с инструкциями, приведёнными в описании установки

При использовании IIS рекомендуется использовать потоко-небезопасную (Non-thread-safe) сборку PHP, которая доступна по ссылке » PHP для Windows: Установочные файлы и исходный код.

Измените CGI и FastCGI настройки в файле php.ini как показано ниже:

Пример #8 CGI и FastCGI настройки в php.ini

Настройте IIS обработчик для PHP, используя Интерфейс управления IIS или через командную строку.

Использование Интерфейса управления IIS для создания обработчика PHP

Следующие шаги позволят вам создать IIS обработчик для PHP в Интерфейсе управления IIS:

В Windows меню Пуск выберите команду «Выполнить:», введите с клавиатуры команду «inetmgr» и нажмите «Ok»;

Читайте также:  Samba доступ ресурсам windows

В Интерфейсе управления IIS выберите сервер в дереве «Подключения»;

На «Начальной странице» откройте «Сопоставления обработчиков»;

На вкладке «Действия» выберите «Добавить сопоставление модуля. «;

В окне «Добавление сопоставления модуля» введите следующее:

  • Путь запроса: *.php
  • Модуль: FastCgiModule
  • Исполняемый файл: C:\[Path to PHP installation]\php-cgi.exe
  • Имя: PHP_via_FastCGI

Нажмите кнопку «Ограничения запроса» и сконфигурируйте сопоставление вызывать обработчик только при сопоставлении с файлом или каталогом;

Нажмите OK во всех диалогах для сохранения конфигурации.

Использование командной строки для создания сопоставления обработчика PHP

Используйте команды приведённые ниже для создания пула процессов IIS FastCGI который будет использовать php-cgi.exe выполняемый для PHP запросов. Замените значение параметра fullPath на абсолютный путь к файлу php-cgi.exe .

Пример #9 Создание IIS FastCGI пула процессов

Настройка IIS для обработки специфических запросов PHP из командной строки показана ниже. Замените значение параметра scriptProcessor на абсолютный путь к файлу php-cgi.exe .

Пример #10 Создание сопоставления обработчика запросов PHP

Эта команда создает для IIS сопоставление обработчика для файлов с расширением *.php, который получается в результате и обрабатывается модулем FastCGI.

На этом шаге установка и настройка завершены. Следующие инструкции необязательны, но очень рекомендуются для достижения оптимальной функциональности и производительности PHP на IIS.

Представление и доступ к файловой системе

При использовании IIS рекомендуется включить представление FastCGI в PHP. Это контролируется директивой fastcgi.impersonate в php.ini файле. Когда имперсонация включена, PHP будет выполнять все операции с файловой системой под аккаунтом, который был определён при аутентификации IIS. Это гарантирует, что при общем PHP процессе для всех сайтов IIS, PHP скрипты этих сайтов не будут иметь доступ к файлам друг друга до тех пор, пока IIS использует различные учетные записи для каждого из сайтов.

Для примера, в настройках по умолчанию IIS 7, включена анонимная аутентификация под стандартным пользователем IUSR. Это значит, что давая разрешение IIS выполнить PHP скрипт, так же необходимо дать права на чтение этого скрипта аккаунту IUSR. Если PHP приложению необходимо выполнить запись в некоторые файлы или папки, тогда аккаунту IUSR следует дать права на запись в них.

Чтобы решить какой пользователь используется для идентификации в IIS 7, можно использовать следующие команды. Замените «Default Web Site» на имя IIS сайта, с которым вы работаете. На выходе, в XML конфигурации смотрите атрибут userName .

Пример #11 Определение аккаунта, используемого IIS при анонимной идентификации

Если атрибут userName отсутствует в элементе anonymousAuthentication , или установлен как пустая строка, это значит, что удостоверение пула приложений используется как анонимное для этого веб-сайта.

Для изменения настроек доступа для файлов или папок, используйте интерфейс пользователя в проводнике Windows или команду icacls .

Пример #12 Настройка разрешения доступа к файлам

Установка index.php как документа по умолчанию в IIS

По умолчанию в IIS не установлено имя документа для обработки HTTP запросов по умолчанию. В PHP приложениях, обычно используется по умолчанию документ index.php . Чтобы добавить index.php в лист документов по умолчанию IIS, используйте такую команду:

Пример #13 Установка index.php как документ по умолчанию в IIS

FastCGI и PHP конфигурация с пересозданием процессов

Настройка IIS FastCGI установок для утилизации PHP процессов с помощью команд приведена ниже. Опция FastCGI instanceMaxRequests устанавливает максимальное количество запросов, которое может обрабатываться одним php-cgi.exe процессом пока IIS не начнет их отключать. PHP переменная окружения PHP_FCGI_MAX_REQUESTS устанавливает как много запросов будет обрабатывать один php-cgi.exe процесс пока сам не начнет удалять их. Конечно, значение установленное для FastCGI InstanceMaxRequests меньше или равно PHP_FCGI_MAX_REQUESTS .

Пример #14 Настройка FastCGI и PHP пересоздаине

Установка таймаута FastCGI

Увеличение параметра таймаута для FastCGI делается, если имеется долго выполняемый PHP скрипт. Два параметра контролируют таймаут, это: activityTimeout и requestTimeout . Используйте команды приведённые ниже для изменения настроек таймаута. Конечно, надо заменить значение параметра fullPath на полный путь к файлу php-cgi.exe .

Пример #15 Конфигурация установок таймаута FastCGI

Изменение положения файла php.ini

PHP ищет файл php.ini некоторых метах и это даёт нам возможность изменить местоположения по умолчанию файла php.ini , используя переменную окружения PHPRC . Чтобы указать PHP загружать конфигурационный файл из определённого места используйте команды, приведённые ниже. Абсолютный путь до директории, где лежит файл php.ini , определяется как значение переменной окружения PHPRC .

Пример #16 Изменение положения файла php.ini

Apache 1.3.x в Microsoft Windows

Этот раздел содержит заметки и советы, специфичные для установки Apache 1.3.x для PHP в Microsoft Windows

Пожалуйста, для начала прочитайте руководство по установке !

Существует два способа настройки PHP для работы с Apache 1.3.x в Windows. Первый — использовать двоичный файл CGI ( php.exe для PHP 4 и php-cgi.exe для PHP 5), второй — использовать Apache Module DLL. В обоих случаях необходимо отредакттировать httpd.conf для настройки Apache для работы с PHP и перезапустить сервер.

В настоящее время SAPI модуль более стабилен под Windows, поэтому мы рекомендуем использовать его вместо CGI так как он более прозрачен и безопасен.

Хотя существует несколько вариантов конфигурирования PHP под Apache, они достаточно просты для новичка. Пожалуйста, пользуйтесь документацией Apache для дальнейших указаний по конфигурированию.

Не забудьте перезагрузить сервер после изменения конфигурационного файла. Например, командами NET STOP APACHE и NET START APACHE, если Apache запущен как служба Windows, или с помощью обычных ярлыков.

Замечание: Помните, что при указании путей в конфигурационных файлах Apache под Windows, все обратные слеши, например, c:\directory\file.ext должны быть изменены на прямые: c:/directory/file.ext . Для путей с директориями также может понадобиться слеш в конце.

Установка PHP как модуля Apache

Необходимо добавить следующие строки в файл Apache httpd.conf :

Пример #17 PHP как модуль Apache 1.3.x

Это предполагает, что PHP установлен в c:\php . Измените путь, если это не так.

Для обеих версий:

Установка как бинарного CGI файла

Если PHP распакован в C:\php\ как описано в разделе Manual Installation Steps, необходимо добавить следующие строки в конфигурационный файл Apache:

Пример #18 PHP и Apache 1.3.x как CGI

Используя установку CGI, ваш сервер открыт перед несколькими возможными уязвимостями. Пожалуйста, ознакомьтесь с разделом «Безопасность CGI» чтобы узнать, как можно защитить себя от таких атак.

В случае установки PHP как CGI нет такой удобной опции для подсветки синтаксиса исходников PHP как при установке в виде модуля. Если вы хотите использовать ее, необходимо использовать функцию highlight_file() . Для этого просто создайте PHP скрипт со следующим кодом: .

Apache 2.x on Microsoft Windows

Этот раздел содержит инструкции по установке PHP для Apache 2.x на системы Microsoft Windows.

Замечание: Поддержка Apache 2.2

Пользователям Apache 2.2 следует обратить внимание на то, что DLL файл для Apache 2.2 называется php5apache2_2.dll , а не php5apache2.dll и он доступен только для PHP 5.2.0 и более поздних версий.

Вам настоятельно рекомендуется ознакомиться с » Документацией по Apache, чтобы получить базовые знания о Apache 2.x Server. Также перед чтением данной справки обратите внимание на » Рекомендации для Windows по Apache 2.x.

Apache 2.x предназначен для работы в серверных версиях Windows, таких как Windows NT 4.0, Windows 2000, Windows XP или Windows 7. Хотя Apache 2.x может использоваться на Windows 9x, эти платформы не поддерживаются полностью, и некоторые функции не будут работать правильно. Исправление этой ситуации не планируется.

Скачайте наиболее актуальную версию » Apache 2.x и подходящую версию PHP. Следуйте Пошаговому руководству по установке и вернитесь для продолжения интеграции PHP и Apache.

Существует три пути установки PHP для Apache на Windows. Вы можете запустить PHP как обработчик, как CGI, или под FastCGI.

Замечание: Помните, что при указании путей в конфигурационных файлах Apache под Windows, все обратные слеши, например, c:\directory\file.ext должны быть изменены на прямые: c:/directory/file.ext . Для путей с директориями также может понадобиться слеш в конце.

Установка PHP как обработчика под Apache

Вам необходимо добавить следующие строки в ваш конфигурационный файл Apache httpd.conf для загрузки PHP-модуля для Apache 2.x:

Пример #19 PHP как обработчик Apache 2.x

Замечание: Не забудьте указать актуальный путь к директории PHP вместо C:/php/ в приведенном примере. Позаботьтесь, чтобы в директиве LoadModule использовались либо php5apache2.dll либо php5apache2_2.dll и удостоверьтесь, что указанный файл фактически находится по пути, который вы указали в директиве.

Приведенная выше конфигурация позволит PHP обработать любой файл, который имеет расширение .php, даже если имеются другие расширения. К примеру, файл с именем example.php.txt будет запущен обработчиком PHP. Чтобы гарантировать, что только файлы, которые имеют расширение .php будут запущены, используйте следующую конфигурацию:

Запуск PHP как CGI

Вы должны обратиться к документации » Apache CGI для более полного понимания о запуске CGI под Apache.

Для запуска PHP как CGI, вам необходимо поместить ваши php-cgi файлы в директорию, обозначенную как директория CGI, используя директиву ScriptAlilas.

После этого вам необходимо добавить строку #! в PHP файлы, указывающую на местоположение исполняемого файла PHP.

Пример #20 PHP как CGI под Apache 2.x

Используя установку CGI, ваш сервер открыт перед несколькими возможными уязвимостями. Пожалуйста, ознакомьтесь с разделом «Безопасность CGI» чтобы узнать, как можно защитить себя от таких атак.

Запуск PHP под FastCGI

Запуск PHP под FastCGI имеет ряд преимуществ по сравнению с запуском как CGI. Установка же довольно проста:

Получить mod_fcgid здесь: » http://httpd.apache.org/mod_fcgid/. исполняемые файлы под Win32 доступны для скачивания с этого сайта. Установите модуль в соответствии с прилагаемыми инструкциями.

Настроить свой веб сервер как указано ниже, позаботившись о соответствии всех путей установки на вашей конкретной системе:

Пример #21 Конфигурация Apache для запуска PHP как FastCGI

Sun, iPlanet and Netscape servers on Microsoft Windows

This section contains notes and hints specific to Sun Java System Web Server, Sun ONE Web Server, iPlanet and Netscape server installs of PHP on Windows.

From PHP 4.3.3 on you can use PHP scripts with the NSAPI module to Apache compatibility are also available. For support in current web servers

CGI setup on Sun, iPlanet and Netscape servers

To install PHP as a CGI handler, do the following:

    Copy php4ts.dll to your systemroot (the directory where you installed Windows)

Make a file association from the command line. Type the following two lines:

  • In the Netscape Enterprise Administration Server create a dummy shellcgi directory and remove it just after (this step creates 5 important lines in obj.conf and allow the web server to handle shellcgi scripts).
  • In the Netscape Enterprise Administration Server create a new mime type (Category: type, Content-Type: magnus-internal/shellcgi, File Suffix:php).
  • Do it for each web server instance you want PHP to run
  • More details about setting up PHP as a CGI executable can be found here: » http://benoit.noss.free.fr/php/install-php.html

    NSAPI setup on Sun, iPlanet and Netscape servers

    To install PHP with NSAPI, do the following:

      Copy php4ts.dll to your systemroot (the directory where you installed Windows)

    Make a file association from the command line. Type the following two lines:

    Edit magnus.conf (for servers >= 6) or obj.conf (for servers mime types init .

    Configure the default object in obj.conf (for virtual server classes [Sun Web Server 6.0+] in their vserver.obj.conf ): In the

  • Restart your web service and apply changes
  • Do it for each web server instance you want PHP to run
  • More details about setting up PHP as an NSAPI filter can be found here: » http://benoit.noss.free.fr/php/install-php4.html

    The stacksize that PHP uses depends on the configuration of the web server. If you get crashes with very large PHP scripts, it is recommended to raise it with the Admin Server (in the section «MAGNUS EDITOR»).

    Important when writing PHP scripts is the fact that Sun JSWS/Sun ONE WS/iPlanet/Netscape is a multithreaded web server. Because of that all requests are running in the same process space (the space of the web server itself) and this space has only one environment. If you want to get CGI variables like PATH_INFO , HTTP_HOST etc. it is not the correct way to try this in the old PHP way with getenv() or a similar way (register globals to environment, $_ENV ). You would only get the environment of the running web server without any valid CGI variables!

    Читайте также:  Настройка server для развертывания windows

    Why are there (invalid) CGI variables in the environment?

    Answer: This is because you started the web server process from the admin server which runs the startup script of the web server, you wanted to start, as a CGI script (a CGI script inside of the admin server!). This is why the environment of the started web server has some CGI environment variables in it. You can test this by starting the web server not from the administration server. Use the command line as root user and start it manually — you will see there are no CGI-like environment variables.

    Simply change your scripts to get CGI variables in the correct way for PHP 4.x by using the superglobal $_SERVER . If you have older scripts which use $HTTP_HOST , etc., you should turn on register_globals in php.ini and change the variable order too (important: remove «E» from it, because you do not need the environment here):

    Special use for error pages or self-made directory listings (PHP >= 4.3.3)

    You can use PHP to generate the error pages for «404 Not Found» or similar. Add the following line to the object in obj.conf for every error page you want to overwrite:

    Another possibility is to generate self-made directory listings. Just create a PHP script which displays a directory listing and replace the corresponding default Service line for type=»magnus-internal/directory» in obj.conf with the following:

    Note about nsapi_virtual() and subrequests (PHP >= 4.3.3)

    The NSAPI module now supports the nsapi_virtual() function (alias: virtual() ) to make subrequests on the web server and insert the result in the web page. The problem is, that this function uses some undocumented features from the NSAPI library.

    Under Unix this is not a problem, because the module automatically looks for the needed functions and uses them if available. If not, nsapi_virtual() is disabled.

    Under Windows limitations in the DLL handling need the use of a automatic detection of the most recent ns-httpdXX.dll file. This is tested for servers till version 6.1. If a newer version of the Sun server is used, the detection fails and nsapi_virtual() is disabled.

    If this is the case, try the following: Add the following parameter to php4_init in magnus.conf / obj.conf :

    You can check the status by using the phpinfo() function.

    But be warned: Support for nsapi_virtual() is EXPERIMENTAL.

    Sambar Server под Microsoft Windows

    Раздел содержит замечания и указания специфичные для » Sambar Server для Windows.

    Пожалуйста, для начала прочитайте руководство по установке!

    Этот список описывает установку ISAPI модуля для работы с сервером Sambar под Windows.

    Найдите файл, который называется mappings.ini (в папке config) в установочной директории Sambar.

    Откройте mappings.ini и добавьте следующую строку под [ISAPI] :

    Пример #22 Конфигурация ISAPI для Sambar

    Перезапустите Sambar, чтобы изменения вступили в силу.

    Если вы хотите использовать PHP для связи с ресурсами на других компьютерах вашей сети, вам необходимо изменить учетную запись, которая используется службой сервера Sambar. По умолчанию это LocalSystem и удаленные ресурсы будут недоступны. Учетная запись может быть отредактирована с помощью опции «Службы» утилиты администрирования из панели управления Windows.

    Xitami на Microsoft Windows

    Этот раздел содержит заметки и трюки, специфичные для » Xitami на платформе Windows.

    Вам необходимо сначала прочитать инструкцию по установке!

    Этот перечень действий описывает как установить PHP CGI библиотеку так, чтобы она работала с Xitami под Windows.

    Замечание: Важно для пользователей CGI

    Прочтите faq про cgi.force_redirec для получения важных подробностей. Эту директиву требуется установить в 0 . Если вы хотите использовать $_SERVER[‘PHP_SELF’] , то необходимо включить cgi.fix_pathinfo директиву.

    Используя установку CGI, ваш сервер открыт перед несколькими возможными уязвимостями. Пожалуйста, ознакомьтесь с разделом «Безопасность CGI» чтобы узнать, как можно защитить себя от таких атак.

    Убедитесь, что веб-сервер работает, и ваш браузер попадет в консоль администратора Xitami. (обычно http://127.0.0.1/admin ), и нажмите Конфигурация (Configuration).

    Перейдите в раздел «фильтры» и поместите модуль, который должен обрабатывать PHP (то есть .php) в поле модули файлов (.xxx).

    В фильтр команды или сценария поместите путь и имя вашего исполняемого PHP CGI файла, т.е. C:\php\php.exe для PHP 4 или C:\php\php-cgi.exe для PHP 5.

    Нажмите иконку «Сохранить».

    Перезапустите сервер, чтобы изменения вступили в силу.

    Сборка из исходников

    В данной главе рассматривается процесс сборки PHP из исходников на Windows, с помощью инструментов сборки Microsoft. Если вы хотите скомпилировать PHP с помощью cygwin, пожалуйста, обращайтесь к главе Установка на Unix-системы.

    Установка модулей PHP в ОС Windows

    После установки PHP и веб-сервера на ОС Windows может понадобиться установить некоторые модули для добавления функционала. Вы можете выбрать, какие модули будут загружаться при старте PHP, модификацией вашего файла php.ini . Также вы можете загружать модули динамически в ваших скриптах, используя функцию dl() .

    Библиотеки DLL модулей PHP имеют префикс php_ .

    Многие модули встроены в Windows-версию PHP. Это значит, что дополнительные DLL-файлы и директива extension не используются для загрузки данных модулей. Таблица модулей PHP в Windows, содержащая список модулей, требующих (или обычно требующих) дополнительные DLL-файлы. Ниже приведен список встроенных модулей (обновлено PHP 5.0.4): BCMath, Calendar, COM, Ctype, DOM, FTP, LibXML, Iconv, ODBC, PCRE, Session, SimpleXML, SPL, WDDX, XML и Zlib.

    Место по умолчанию, в котором PHP ищет модули — C:\php5 . Для изменения данной настройки согласно вашей установке PHP отредактируйте файл php.ini следующим образом:

    измените опцию extension_dir так, чтобы она указывала на директорию, в которой расположены модули или в которую вы поместили файлы php_*.dll . Например:

    Включите одно или несколько модулей, которые вы хотите использовать, раскомментировав в файле php.ini строки вида extension=php_*.dll . Это делается удалением символа «;» в начале строки для каждого модуля, который вы хотите включить.

    Пример #23 Включение модуля Bzip2 в PHP-Windows

    Некоторые модули для своей работы требуют дополнительные библиотеки DLL. Несколько из них находятся в распространяемом дистрибутиве PHP, в в корневой директории, но некоторые модули, например, Oracle ( php_oci8.dll ), требуют наличия библиотек DLL, не включаемых в дистрибутив PHP. Не забудьте включить директорию C:\php в системную переменную PATH (данный процесс описан в отдельном разделе помощи).

    Некоторые из этих библиотек DLL не поставляются в дистрибутиве PHP. За деталями обратитесь к странице документации конкретного модуля. Также прочтите раздел руководства Установка модулей PECL, чтобы узнать дополнительную информацию о PECL . Все большее число модулей PHP можно найти в PECL и данные модули требуют отдельной загрузки.

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

    Следующая таблица описывает некоторые доступные модули и требуемые дополнительные библиотеки dll.

    Модули PHP
    Модуль Описание Примечания
    php_bz2.dll Функции сжатия bzip2
    php_calendar.dll Функции преобразования календарей
    php_ctype.dll Семейство функций ctype
    php_curl.dll Функции библиотеки CURL Требует библиотеки libeay32.dll , ssleay32.dll (в комплекте дистрибутива PHP), или, начиная с OpenSSL 1.1, libcrypto-*.dll и libssl-*.dll
    php_dba.dll DBA: функции абстрактного слоя DataBase (dbm-стиль)
    php_dbase.dll Функции dBase
    php_dbx.dll Функции dbx
    php_exif.dll Функции EXIF Требуется библиотека php_mbstring.dll. Библиотека php_exif.dll должна загружаться после php_mbstring.dll в файле php.ini .
    php_fbsql.dll Функции FrontBase
    php_fdf.dll FDF: функции формата данных «Forms Data Format» Требуется библиотека fdftk.dll (в комплекте дистрибутива PHP)
    php_filepro.dll Функции filePro Доступ только для чтения
    php_ftp.dll Функции FTP
    php_gd2.dll Библиотека функций обработки изображений GD GD2
    php_gettext.dll Функции Gettext В PHP версий gnu_gettext.dll (в комплекте дистрибутива PHP), в PHP версий >= 4.2.3 требуется библиотека libintl-1.dll и iconv.dll (в комплекте дистрибутива PHP).
    php_hyperwave.dll Функции HyperWave
    php_iconv.dll Функции конвертации кодировок ICONV Требуется библиотека iconv-1.3.dll (в комплекте дистрибутива PHP), iconv.dll
    php_iisfunc.dll Функции управления IIS
    php_imap.dll Функции IMAP POP3 и NNTP
    php_ingres.dll Функции Ingres Требуются библиотеки Ingres
    php_interbase.dll Функции InterBase Требуется библиотека gds32.dll (в комплекте дистрибутива PHP)
    php_ldap.dll Функции LDAP Требует libeay32.dll , ssleay32.dll (в комплекте дистрибутива PHP), или, начиная с OpenSSL 1.1, libcrypto-*.dll и libssl-*.dll
    php_mbstring.dll Функции для работы с многобайтовыми (Multi-Byte) строками
    php_mcrypt.dll Функции кодирования Mcrypt Требуется библиотека libmcrypt.dll
    php_mhash.dll Функции Mhash Требуется библиотека libmhash.dll (в комплекте дистрибутива PHP)
    php_mime_magic.dll Функции Mimetype Требуется файл magic.mime (в комплекте дистрибутива PHP)
    php_mysql.dll Функции MySQL Требуется библиотека libmysql.dll (в комплекте дистрибутива PHP)
    php_mysqli.dll Функции MySQLi Требуется библиотека libmysql.dll ( libmysqli.dll в PHP версий libeay32.dll (в комплекте дистрибутива PHP), или, начиная с OpenSSL 1.1, liblibcrypto-*.dll
    php_pgsql.dll Функции PostgreSQL
    php_shmop.dll Функции для работы с разделяемой памятью
    php_snmp.dll Функции для использования протокола SNMP Только на Windows NT!
    php_soap.dll Функции SOAP
    php_sockets.dll Функции для работы с сокетами
    php_tidy.dll Функции Tidy
    php_tokenizer.dll Функции Tokenizer
    php_w32api.dll Функции W32api
    php_xmlrpc.dll Функции XML-RPC Требуется библиотека iconv.dll (в комплекте дистрибутива PHP)
    php_xslt.dll Функции XSLT Требуются библиотеки sablot.dll , expat.dll , iconv.dll (в комплекте дистрибутива PHP).
    php_yaz.dll Функции YAZ Требуется библиотека yaz.dll (в комплекте дистрибутива PHP)
    php_zip.dll Функции для работы с файлами Zip Доступ только для чтения
    php_zlib.dll Функции сжатия ZLib

    Командная строка PHP в Microsoft Windows

    В этом разделе содержатся заметки и советы по работе PHP, запущенного из командной строки.

    PHP, запущенный из командной строки, может выполняться без каких-либо изменений в Windows.

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

    Как PATH , так и PATHEXT являются важными системные переменными в Windows, поэтому важно не затереть их текущее значение, а только дописать нужные данные в конец.

    Допишите расположение исполняемых файлов php ( php.exe , php-win.exe или php-cli.exe в зависимости от ваших предпочтений и версии PHP) в конец переменной окружения PATH . О том, как добавить вашу директорию к PATH читайте в соответствующем разделе FAQ.

    Допишите .PHP расширение в конец переменной окружения PATHEXT . Это может быть сделано при изменении переменной PATH . Сделайте те же шаги, которые описаны в FAQ, но измените переменную PATHEXT вместо PATH .

    Позиция, в которой вы разместите .PHP , будет определять, какой скрипт или программа будут запущенны для обработки файла с соответствующим расширением. Например, разместив .PHP перед .BAT , сначала будет запущен ваш скрипт, а не пакетный файл, если есть исполняемый файл с тем же именем.

    Ассоциируйте расширение .PHP с конкретным типом файла. Это можно сделать выполнив следующую команду:

    Ассоциируйте тип файла phpfile с соответствующим исполняемым PHP файлом. Это можно сделать выполнив команду:

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

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

    Пример #24 Изменения реестра

    С этими изменениями команда может быть записана как:

    Возникает небольшая проблема, если вы собираетесь использовать эту технику и используете ваши PHP-скрипты как фильтры командной строки, как в примере ниже:

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