PHP (Hypertext Preprocessor) is a popular open-source scripting language that is widely used for web development. It is often used in conjunction with web servers like Apache, but it can also be used with Microsoft’s Internet Information Services (IIS) server. In this article, we will discuss how to install PHP on IIS 6 for Windows Server 2003.
Windows Server 2003 was released by Microsoft in April 2003 and was a major update to the Windows Server line. It introduced many new features and improvements over its predecessor, Windows 2000 Server. One of these improvements was the ability to run PHP scripts on IIS, which was not possible in earlier versions of Windows Server.
Installing PHP on IIS 6 for Windows Server 2003 is a relatively straightforward process, but there are a few steps that need to be followed carefully to ensure that everything works correctly. In this article, we will walk you through the process of installing PHP on IIS 6 for Windows Server 2003, from downloading the necessary files to configuring IIS to run PHP scripts.
Step 1: Download PHP
The first step in installing PHP on IIS 6 for Windows Server 2003 is to download the PHP installation files. You can download the latest version of PHP from the official PHP website at http://www.php.net/downloads.php. Make sure to download the Windows binary version of PHP, as this is the version that is compatible with Windows Server 2003.
Once you have downloaded the PHP installation files, unzip the files to a folder on your server. For this tutorial, we will assume that you have unzipped the files to a folder called «C:PHP».
Step 2: Configure IIS
Before you can run PHP scripts on IIS, you need to configure IIS to recognize and execute PHP scripts. To do this, follow these steps:
-
Open the Internet Information Services (IIS) Manager by clicking on Start -> Control Panel -> Administrative Tools -> Internet Information Services (IIS) Manager.
-
In the IIS Manager, expand the server node in the left-hand pane and then click on the «Web Service Extensions» node.
-
In the right-hand pane, click on «Add a new Web service extension…»
-
In the Extension name field, enter «PHP» (without the quotes).
-
In the Required files field, click on the «Add» button and then browse to the «C:PHP» folder where you unzipped the PHP installation files. Select the «php5isapi.dll» file and click on OK.
-
Click on OK to save the changes.
Step 3: Configure PHP
Now that you have configured IIS to recognize PHP scripts, you need to configure PHP itself. To do this, follow these steps:
-
Open the «C:PHP» folder where you unzipped the PHP installation files.
-
Rename the «php.ini-recommended» file to «php.ini».
-
Open the «php.ini» file in a text editor (such as Notepad) and make the following changes:
- Find the line that says «extension_dir =» and change it to «extension_dir = C:PHPext».
- Find the line that says «;extension=php_mysql.dll» and remove the semicolon at the beginning of the line to enable the MySQL extension.
- Find the line that says «;extension=php_mysqli.dll» and remove the semicolon at the beginning of the line to enable the MySQLi extension.
- Save the changes and close the file.
- Restart IIS by clicking on Start -> Run, typing «iisreset», and then pressing Enter.
Step 4: Test PHP
To test that PHP is working correctly on IIS 6 for Windows Server 2003, create a new PHP script file and place it in your website’s root directory. For example, create a file called «test.php» with the following content:
Save the file and then open a web browser and navigate to http://localhost/test.php. If everything is configured correctly, you should see a page that displays information about your PHP installation.
Congratulations! You have successfully installed PHP on IIS 6 for Windows Server 2003.
In conclusion, installing PHP on IIS 6 for Windows Server 2003 is a relatively simple process that involves downloading the PHP installation files, configuring IIS to recognize and execute PHP scripts, configuring PHP itself, and testing that everything is working correctly. By following the steps outlined in this article, you can easily set up PHP on IIS 6 for Windows Server 2003 and start developing dynamic websites and web applications.
-
1
Сначала необходимо установить IIS 6.0. (IIS 5.1 на XP)
-
перейдите в Control panel > Add remove programs. Нажмите на кнопку «Add/Remove Windows Components». Включите опцию «Internet Information Services». В Windows7: перейдите в Start -> Control Panel -> Programs and Features -> Turn Windows Features On or Off. Убедитесь, что все варианты, показанные на рисунке ниже, включены.
-
Теперь вы должны получить нужные файлы для php5. Зайдите на страницу http://www.php.net/downloads.php и скачайте пакет zip ниже «Windows Binaries». Не приобретайте программу установки! Кроме того, в то время как вы здесь, вы должны будете получить «Collection of PECL modules» также под Windows Binaries.
-
После загрузки извлеките первый загруженный файл и поместите файлы в «C:\php». Извлеките модули PECL в «C:\php\ext».
-
\php\php.ini-recommended в C:\php\php.ini, а затем скопируйте его в C:\Windows
-
Откройте файл php.ini, который у вас есть сейчас, и раскомментированный cgi.force_redirect in php.ini и установите его в 0
-
Если ваш почтовый сервер находится в другом месте, вы можете указать его здесь. Также установите эту строку в качестве этого чуть ниже вышеуказанного: sendmail_from = someone@yourhost.com
-
\php\sessions» и создайте каталог C:\php\sessions
-
\PHP\ext».
-
extension=php_mssql.dll
extension=php_msql.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_java.dll
extension=php_ldap.dll
extension=php_iisfunc.dll
extension=php_imap.dll
extension=php_filepro.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_dba.dll
extension=php_dbase.dll
extension=php_dbx.dll
extension=php_mbstring.dll
extension=php_pdf.dll
extension=php_pgsql.dll
extension=php_sockets.dll
extension=php_xmlrpc.dll
extension=php_xsl.dll
extension=php_zip.dllОстальные требуют большего внимания, и это выходит за рамки данного руководства.Некоторых пунктов может не быть там. В этом случае просто скопируйте строку в ваш файл .ini.
-
Введите следующую информацию в соответствующие текстовые поля, а затем нажмите кнопку OK.
Реклама
Советы
- Если вам нужна помощь, вы всегда можете использовать php.net для получения советов. Это отличное место для изучения PHP тоже.
- Если PHP не работает, попробуйте раскомментировать DLL расширения файлов в файлы php.ini. Помните, что есть один в вашем каталоге C:\Windows и один в каталоге C:\php. Он будет использовать один путь Windows.
- Если добавите C:\PHP к вашим env-переменным, можете закончить загрузку php.ini из папки C:\PHP (или вашего equiv)
- Для тех, кто предпочитает визуальное обучение, VideoTutorialZone.com предоставляет полный видео-учебник для установки PHP в Windows XP и Windows 2003 Server.
Реклама
Предупреждения
- После запуска создайте копию C:\php и сохраните ее. Возможно, она потребуется вам позже. Также неплохо было бы сделать экспорт конфигурации IIS.
Реклама
Что вам понадобится
- установка Windows XP SP2 и Windows Server 2003
Источники
Об этой статье
Эту страницу просматривали 6526 раз.
Была ли эта статья полезной?
Содержание
- Простая и быстрая установка PHP на Windows Server 2003
- Что такое сервер Windows Server 2003?
- Шаг 1: Загрузка PHP для Windows Server 2003
- Шаг 1.1: Загрузка PHP
- Шаг 1.2: Подготовка к установке PHP
- Как найти последнюю версию PHP для Windows Server 2003?
- Метод 1: Загрузка с официального сайта PHP
- Метод 2: Использование сторонних поставщиков
- Как скачать и установить PHP на Windows Server 2003?
- 1. Скачать установочный файл PHP
- 2. Распаковать установочный файл PHP
- 3. Настроить PHP на Windows Server 2003
- 4. Проверить установку PHP
- Шаг 2: Конфигурирование PHP на Windows Server 2003
- Как настроить файл php.ini?
- Установка дистрибутива PHP
- Изменение конфигурационных файлов
- Проверка работы модулей PHP
Простая и быстрая установка PHP на Windows Server 2003
Если вы являетесь владельцем сервера работающего на операционной системе Windows Server 2003 и хотите установить PHP для разработки динамических веб-приложений, то вы попали по адресу! В этой статье я расскажу вам о нескольких простых шагах, которые вам потребуется выполнить для установки PHP на ваш сервер.
Для начала вам необходимо скачать последнюю версию PHP с официального сайта разработчика. После скачивания файла установки, запустите его и следуйте инструкциям мастера установки. Во время установки вы сможете выбрать необходимые компоненты PHP, такие как поддержка баз данных и расширений.
После завершения установки PHP вам понадобится настроить веб-сервер, чтобы он распознавал PHP-скрипты и обрабатывал их. Для этого вам нужно открыть файл конфигурации веб-сервера (например, файл php.ini для сервера Apache) и указать путь к исполняемому файлу PHP.
Кроме того, вам может потребоваться добавить несколько строк кода в файл конфигурации веб-сервера, чтобы включить поддержку PHP. Например, для сервера Apache вы можете использовать следующую строку: «LoadModule php5_module C:/path/to/php/php5apache2_2.dll».
После внесения всех необходимых изменений в конфигурацию веб-сервера, перезапустите его, чтобы изменения вступили в силу. Теперь ваш сервер должен поддерживать PHP и готов к запуску динамических веб-приложений.
Что такое сервер Windows Server 2003?
Windows Server 2003 обладает надежной и безопасной архитектурой, которая позволяет управлять и обрабатывать большие объемы данных без задержек или проблем. Он предлагает поддержку для различных типов серверных приложений, включая веб-серверы, базы данных, почтовые серверы и другие. Благодаря своей масштабируемости и надежности, Windows Server 2003 обеспечивает стабильную работу серверов, минимизируя риски сбоев или сбоев системы.
Windows Server 2003 также предоставляет инструменты и функции для управления серверами и сетевыми ресурсами. Он поддерживает централизованное управление пользователями, правами доступа, групповыми политиками и другими параметрами безопасности. Это позволяет администраторам эффективно управлять серверами, обеспечивая безопасность и доступность сервисов для пользователей.
Шаг 1: Загрузка PHP для Windows Server 2003
Перед началом установки убедитесь, что ваш сервер отвечает минимальным требованиям для установки PHP. Убедитесь, что у вас есть доступ к серверу, а также административные привилегии для установки программного обеспечения.
Шаг 1.1: Загрузка PHP
Первый шаг — загрузка PHP для Windows Server 2003. Вы можете загрузить последнюю версию PHP с официального сайта. Найдите страницу загрузки PHP и выберите версию, соответствующую вашей версии Windows Server 2003.
После выбора версии PHP для загрузки, загрузите установочный файл на ваш сервер. Обратите внимание, что файл будет в формате zip или exe. Распакуйте zip-архив, если вы загрузили zip-файл.
На этом этапе у вас уже должен быть загружен и распакован установочный файл PHP на вашем сервере Windows Server 2003.
Шаг 1.2: Подготовка к установке PHP
Прежде чем перейти к установке PHP, вам необходимо подготовить ваш сервер Windows Server 2003. Убедитесь, что у вас установлены все необходимые компоненты и зависимости для установки PHP. Некоторые из основных компонентов, которые вам может потребоваться установить или настроить, включают MySQL, Apache и IIS.
Убедитесь, что у вас установлен Web-сервер, такой как Apache или IIS, на вашем сервере. PHP требует наличия Web-сервера для правильной работы.
После установки и настройки необходимых компонентов вы готовы к установке PHP на Windows Server 2003.
Как найти последнюю версию PHP для Windows Server 2003?
Первым шагом является поиск последней версии PHP для Windows Server 2003. На данный момент последняя версия, которая поддерживается Windows Server 2003, — PHP 5.2.17. Для поиска этой версии можно использовать поисковые системы, а также официальный сайт PHP. После нахождения последней версии PHP для Windows Server 2003, остается проверить ее совместимость и загрузить соответствующие файлы.
Метод 1: Загрузка с официального сайта PHP
На официальном сайте PHP можно найти архивы с различными версиями языка программирования. Для Windows Server 2003 вам понадобится загрузить архив с последней версией поддерживаемой PHP — 5.2.17. После скачивания архива, его необходимо распаковать и установить на ваш сервер. Важно убедиться, что вы скачиваете версию PHP, которая совместима с вашей операционной системой.
Метод 2: Использование сторонних поставщиков
Если вы не можете найти требуемую версию PHP на официальном сайте, есть возможность обратиться к сторонним поставщикам. Некоторые компании и разработчики предлагают установочные пакеты для различных версий PHP, включая совместимые с Windows Server 2003. В этом случае вам нужно будет найти надежного поставщика, проверить совместимость и загрузить установочный пакет.
Как скачать и установить PHP на Windows Server 2003?
1. Скачать установочный файл PHP
Первым шагом является загрузка установочного файла PHP с официального веб-сайта разработчиков PHP. Посетите сайт www.php.net/downloads.php и найдите раздел загрузок. Выберите версию PHP, которую вы хотите установить, и сохраните установочный файл на ваш сервер в удобном месте.
2. Распаковать установочный файл PHP
После успешной загрузки установочного файла, найдите его на вашем сервере и распакуйте его в удобную папку. Например, вы можете создать новую папку с названием «PHP» в корневом каталоге вашего сервера и распаковать файлы туда.
3. Настроить PHP на Windows Server 2003
Теперь, когда у вас есть установочные файлы PHP, необходимо настроить PHP на вашем сервере Windows Server 2003. Перейдите в папку, в которую вы распаковали файлы PHP, и найдите файл под названием «php.ini». Откройте его в текстовом редакторе и выполните следующие настройки:
- Найдите строку «extension_dir» и укажите путь к папке, где находятся модули PHP. Например, «extension_dir = C:\php\ext».
- Найдите строку «upload_max_filesize» и установите максимальный размер загружаемого файла. Например, «upload_max_filesize = 10M» ограничивает максимальный размер файлов 10 МБ.
- Найдите строку «post_max_size» и установите максимальный размер POST-запроса. Например, «post_max_size = 20M» ограничивает максимальный размер POST-данных 20 МБ.
Сохраните файл «php.ini» с выполненными настройками в той же папке, где находятся установочные файлы PHP.
4. Проверить установку PHP
Теперь вы готовы проверить, корректно ли установился PHP на вашем сервере Windows Server 2003. Откройте любой текстовый редактор и создайте новый файл с расширением «.php». Введите следующий код:
Сохраните файл с названием «info.php» и переместите его в папку, доступную для веб-браузера. Затем откройте веб-браузер и введите адрес «http://your_server/info.php» в адресной строке. Если вы видите подробную информацию о PHP, значит установка удалась!
Теперь у вас есть установленный и настроенный PHP на вашем сервере Windows Server 2003. Вы можете использовать PHP для создания динамических веб-страниц и разработки своих веб-приложений.
Шаг 2: Конфигурирование PHP на Windows Server 2003
После установки PHP на Windows Server 2003, необходимо выполнить несколько настроек, чтобы обеспечить его правильную работу. В данном шаге мы рассмотрим основные параметры и конфигурации, которые нужно внести.
Во-первых, откройте файл php.ini, который находится в папке установки PHP. Обычно это C:\Windows\php.ini. Этот файл содержит все основные настройки PHP. Откройте его в текстовом редакторе и убедитесь, что у вас есть права на редактирование.
После открытия файла php.ini обратите внимание на следующие параметры:
- extension_dir: Этот параметр указывает путь к папке, где находятся расширения PHP. Убедитесь, что путь указан правильно и соответствует фактическому расположению папки.
- error_reporting: Этот параметр задает уровень отчетности об ошибках. Рекомендуется установить значение E_ALL, чтобы получать полные отчеты об ошибках.
- date.timezone: Этот параметр задает временную зону, которую будет использовать PHP. Установите значение, соответствующее вашему географическому положению.
После внесения изменений в файл php.ini сохраните его и перезапустите веб-сервер. Теперь PHP должен быть полностью настроен и готов к использованию на Windows Server 2003.
Как настроить файл php.ini?
Для начала, необходимо найти файл php.ini на сервере. Обычно этот файл находится в каталоге, где установлена PHP. Откройте файл с помощью текстового редактора, чтобы внести необходимые изменения.
Один из наиболее важных параметров, который можно настроить в php.ini, — это максимальное время выполнения скрипта (max_execution_time). По умолчанию это значение может быть слишком небольшим, что может вызвать возникновение ошибки времени ожидания выполнения скрипта при обработке больших объемов данных. Рекомендуется увеличить это значение, чтобы исключить подобные проблемы.
Кроме того, в php.ini можно настроить параметры отображения ошибок (display_errors и error_reporting). Режим отображения ошибок может быть полезным для отладки и обнаружения возможных проблем с кодом, но в рабочей среде это значение рекомендуется установить в «Off» для безопасности и предотвращения отображения чувствительной информации.
- max_execution_time = 300
- display_errors = Off
- error_reporting = E_ALL & ~E_NOTICE
После внесения всех необходимых изменений в php.ini, сохраните файл и перезапустите веб-сервер, чтобы изменения вступили в силу. Теперь ваш сервер настроен согласно вашим предпочтениям и требованиям.
Настройка модулей PHP на Windows Server 2003 может быть сложной задачей, особенно для тех, кто впервые сталкивается с этим. Однако, при правильном подходе и использовании соответствующих инструментов, данная задача может быть справедливо решена. Важно помнить о нескольких ключевых моментах, которые обеспечат успешную установку и настройку PHP на Windows Server 2003.
Установка дистрибутива PHP
Первым шагом в настройке модулей PHP на Windows Server 2003 является установка соответствующего дистрибутива PHP. Необходимо скачать последнюю версию дистрибутива PHP с официального сайта и следовать инструкциям по установке. Важно выбрать правильную версию PHP, совместимую с Windows Server 2003.
Изменение конфигурационных файлов
После установки дистрибутива PHP необходимо изменить конфигурационные файлы для указания директив и настроек, соответствующих требованиям вашего веб-приложения. Ключевыми файлами являются php.ini и httpd.conf. В php.ini можно задать настройки модулей PHP, а в httpd.conf — настроить веб-сервер Apache для работы с PHP. Внесение правильных изменений в эти файлы является важным шагом для успешной работы PHP на Windows Server 2003.
Проверка работы модулей PHP
После внесения необходимых изменений в конфигурационные файлы важно проверить работу модулей PHP. Для этого можно создать простой файл с расширением .php и расположить его в каталоге веб-сервера. В этом файле можно написать простую php-функцию и вызвать ее в браузере, чтобы убедиться, что модули PHP работают корректно.
- Установка дистрибутива PHP является первым шагом в настройке PHP на Windows Server 2003.
- Изменение конфигурационных файлов php.ini и httpd.conf позволяет задать настройки модулей PHP и веб-сервера Apache соответственно.
- Важно проверить работу модулей PHP после внесения необходимых изменений.
Следуя этим рекомендациям, вы сможете настроить модули PHP на Windows Server 2003 и использовать PHP для разработки и запуска веб-приложений. В случае возникновения проблем, всегда можно обратиться за помощью к сообществу разработчиков PHP или конкретным специалистам.
Windows · September 28, 2024
Windows Server 2003, despite being an older operating system, still finds its place in various legacy applications and environments. When combined with PHP, it can serve as a robust platform for web development. This article explores innovative ideas and best practices for optimizing a PHP server on Windows 2003, ensuring that developers can maximize performance and maintainability.
1. Setting Up PHP on Windows Server 2003
To begin, it is essential to have a proper setup of PHP on Windows Server 2003. The installation process involves several steps:
- Download the latest version of PHP compatible with Windows.
- Extract the files to a directory, such as
C:PHP
. - Configure the
php.ini
file to suit your application needs. - Register PHP with IIS (Internet Information Services) by adding a new application mapping.
Here’s a sample configuration for the php.ini
file:
extension_dir = "C:PHPext"
error_reporting = E_ALL
display_errors = On
2. Utilizing FastCGI for Improved Performance
FastCGI is a protocol that allows web servers to interface with applications, such as PHP, more efficiently. By using FastCGI, you can significantly enhance the performance of your PHP applications on Windows Server 2003. Here’s how to set it up:
- Download the FastCGI module for IIS.
- Install the module and configure it in IIS.
- Modify the PHP configuration to use FastCGI by adding the following lines to the
php.ini
:
cgi.force_redirect = 0
cgi.fix_pathinfo = 1
By implementing FastCGI, you can handle more requests simultaneously, leading to better resource utilization and faster response times.
3. Implementing Caching Mechanisms
Caching is crucial for improving the performance of PHP applications. On Windows Server 2003, you can implement various caching strategies:
- Opcode Caching: Use tools like
OPcache
to cache the compiled bytecode of PHP scripts, reducing the overhead of parsing and compiling scripts on each request. - Data Caching: Utilize caching systems like
Memcached
orRedis
to store frequently accessed data in memory, minimizing database queries.
Here’s a simple example of using Memcached in PHP:
$memcache = new Memcache;
$memcache->connect('localhost', 11211);
$memcache->set('key', 'value', false, 3600);
$value = $memcache->get('key');
4. Security Enhancements
Security is paramount when running a PHP server. Here are some best practices to enhance security on Windows Server 2003:
- Regular Updates: Although Windows Server 2003 is no longer supported, ensure that all PHP and related software are updated to the latest versions available.
- File Permissions: Set appropriate file permissions to restrict access to sensitive files and directories.
- Input Validation: Always validate and sanitize user inputs to prevent SQL injection and other attacks.
5. Monitoring and Logging
Monitoring your PHP applications is essential for identifying performance bottlenecks and security issues. Utilize tools like:
- Windows Performance Monitor: Track resource usage and performance metrics.
- PHP Error Logs: Enable error logging in the
php.ini
file to capture runtime errors.
Example configuration for error logging:
log_errors = On
error_log = "C:PHPlogsphp_errors.log"
Summary
In conclusion, optimizing a PHP server on Windows Server 2003 involves a combination of proper setup, performance enhancements, security measures, and monitoring practices. By implementing these strategies, developers can ensure that their applications run efficiently and securely. For those looking for reliable hosting solutions, consider exploring USA VPS Hosting options that can provide the necessary infrastructure for your PHP applications.
Данный раздел руководства применим к 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
Распакуйте содержимое zip архива в директорию на ваш выбор, например, C:\PHP\.
Структура папок и файлов, извлеченных из архива, будет выглядеть следующим образом:
Пример #1 Структура пакета PHP 5
c:\php | +--dev | | | |-php5ts.lib -- версия php5.lib без поддержки многопоточности | +--ext -- DLL модули для PHP | | | |-php_bz2.dll | | | |-php_cpdf.dll | | | |-... | +--extras -- пустой | +--pear -- начальная копия PEAR | | |-go-pear.bat -- скрипт установки PEAR | |-... | |-php-cgi.exe -- исполняемый файл CGI | |-php-win.exe -- выполняет скрипты без открытой консоли | |-php.exe -- Исполняемый файл PHP для командной строки (CLI) | |-... | |-php.ini-development -- настройки php.ini по умолчанию | |-php.ini-production -- рекомендуемые настройки php.ini | |-php5apache2_2.dll -- есть только в многопоточной версии | |-php5apache2_2_filter.dll -- есть только в многопоточной версии | |-... | |-php5ts.dll -- ядро PHP DLL ( php5.dll в версии без поддержки многопоточности) | |-...
Ниже представлен список модулей и исполняемых файлов, включенных в PHP zip
дистрибутив:
-
go-pear.bat — скрипт установки PEAR. Подробнее смотрите
» Установка (PEAR). -
php-cgi.exe — исполняемый файл CGI, который может быть использован во время запуска PHP
на IIS через CGI или FastCGI. -
php-win.exe — исполняемый файл PHP для выполнения PHP скриптов без использования консоли
(например, приложения PHP, использующие Windows GUI). -
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 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
fastcgi.impersonate = 1 fastcgi.logging = 0 cgi.fix_pathinfo=1 cgi.force_redirect = 0
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
cscript %windir%\system32\inetsrv\fcgiconfig.js -add -section:"PHP" ^ -extension:php -path:"C:\PHP\php-cgi.exe"
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_<MACHINE_NAME> used as a default identity. This means that in
order for IIS to execute PHP scripts, it is necessary to grant IUSR_<MACHINE_NAME> 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_<MACHINE_NAME> 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
icacls C:\inetpub\wwwroot\upload /grant IUSR:(OI)(CI)(M)
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
cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^ -InstanceMaxRequests:10000 cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^ -EnvironmentVars:PHP_FCGI_MAX_REQUESTS:10000
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.
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
cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^ -EnvironmentVars:PHPRC:"C:\Some\Directory\"
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
fastcgi.impersonate = 1 fastcgi.logging = 0 cgi.fix_pathinfo=1 cgi.force_redirect = 0
Настройте IIS обработчик для PHP, используя Интерфейс управления IIS
или через командную строку.
Использование Интерфейса управления IIS для создания обработчика PHP
Следующие шаги позволят вам создать IIS обработчик для PHP в Интерфейсе управления IIS:
-
В Windows меню Пуск выберите команду «Выполнить:», введите с клавиатуры команду «inetmgr»
и нажмите «Ok»; -
В Интерфейсе управления 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 пула процессов
%windir%\system32\inetsrv\appcmd set config /section:system.webServer/fastCGI ^ /+[fullPath='c:\PHP\php-cgi.exe']
Настройка IIS для обработки специфических запросов PHP из командной строки показана ниже. Замените значение
параметра scriptProcessor на абсолютный путь к файлу php-cgi.exe.
Пример #10 Создание сопоставления обработчика запросов PHP
%windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers ^ /+[name='PHP_via_FastCGI', path='*.php',verb='*',modules='FastCgiModule',^ scriptProcessor='c:\PHP\php-cgi.exe',resourceType='Either']
Эта команда создает для 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 при анонимной идентификации
%windir%\system32\inetsrv\appcmd.exe list config "Default Web Site" ^ /section:anonymousAuthentication <system.webServer> <security> <authentication> <anonymousAuthentication enabled="true" userName="IUSR" /> </authentication> </security> </system.webServer>
Замечание:
Если атрибут userName отсутствует в элементе anonymousAuthentication,
или установлен как пустая строка, это значит, что удостоверение пула приложений используется как анонимное
для этого веб-сайта.
Для изменения настроек доступа для файлов или папок, используйте интерфейс пользователя в проводнике Windows
или команду icacls.
Пример #12 Настройка разрешения доступа к файлам
icacls C:\inetpub\wwwroot\upload /grant IUSR:(OI)(CI)(M)
Установка index.php как документа по умолчанию в IIS
По умолчанию в IIS не установлено имя документа для обработки HTTP запросов по умолчанию.
В PHP приложениях, обычно используется по умолчанию документ index.php.
Чтобы добавить index.php в лист документов по умолчанию IIS,
используйте такую команду:
Пример #13 Установка index.php как документ по умолчанию в IIS
%windir%\system32\inetsrv\appcmd.exe set config ^ -section:system.webServer/defaultDocument /+"files.[value='index.php']" ^ /commit:apphost
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 пересоздаине
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi ^ /[fullPath='c:\php\php-cgi.exe'].instanceMaxRequests:10000 %windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi ^ /+"[fullPath='C:\{php_folder}\php-cgi.exe'].environmentVariables.^ [name='PHP_FCGI_MAX_REQUESTS',value='10000']"
Установка таймаута FastCGI
Увеличение параметра таймаута для FastCGI делается, если имеется долго выполняемый PHP скрипт.
Два параметра контролируют таймаут, это: activityTimeout и
requestTimeout. Используйте команды приведённые ниже для изменения настроек таймаута.
Конечно, надо заменить значение параметра fullPath на полный путь к файлу
php-cgi.exe.
Пример #15 Конфигурация установок таймаута FastCGI
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi ^ /[fullPath='C:\php\php-cgi.exe',arguments=''].activityTimeout:"90" /commit:apphost %windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi ^ /[fullPath='C:\php\php-cgi.exe',arguments=''].requestTimeout:"90" /commit:apphost
Изменение положения файла php.ini
PHP ищет файл php.ini
некоторых метах и это даёт нам возможность изменить
местоположения по умолчанию файла php.ini, используя переменную окружения
PHPRC. Чтобы указать PHP загружать конфигурационный файл из определённого места
используйте команды, приведённые ниже.
Абсолютный путь до директории, где лежит файл php.ini, определяется как значение
переменной окружения PHPRC.
Пример #16 Изменение положения файла php.ini
appcmd.exe set config -section:system.webServer/fastCgi ^ /+"[fullPath='C:\php\php.exe',arguments=''].environmentVariables.^ [name='PHPRC',value='C:\Some\Directory\']" /commit:apphost
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. Измените путь, если это не так.
Для PHP 4:
# Add to the end of the LoadModule section # Don't forget to copy this file from the sapi directory! LoadModule php4_module "C:/php/php4apache.dll" # Add to the end of the AddModule section AddModule mod_php4.c
Для PHP 5:
# Add to the end of the LoadModule section LoadModule php5_module "C:/php/php5apache.dll" # Add to the end of the AddModule section AddModule mod_php5.c
Для обеих версий:
# Add this line inside the <IfModule mod_mime.c> conditional brace AddType application/x-httpd-php .php # For syntax highlighted .phps files, also add AddType application/x-httpd-php-source .phps
Установка как бинарного CGI файла
Если PHP распакован в C:\php\ как описано
в разделе Manual
Installation Steps, необходимо добавить следующие строки
в конфигурационный файл Apache:
Пример #18 PHP и Apache 1.3.x как CGI
ScriptAlias /php/ "c:/php/" AddType application/x-httpd-php .php # For PHP 4 Action application/x-httpd-php "/php/php.exe" # For PHP 5 Action application/x-httpd-php "/php/php-cgi.exe" # specify the directory where php.ini is SetEnv PHPRC C:/php
Заметьте, что вторая строка в списке выше уже находится в httpd.conf,
но она закомментирована. Кроме того, не забудьте заменить c:/php/
на ваш настоящий путь к PHP.
Внимание
Используя установку CGI, ваш сервер открыт перед несколькими возможными уязвимостями. Пожалуйста, ознакомьтесь с разделом «Безопасность CGI» чтобы узнать, как можно защитить себя от таких атак.
В случае установки PHP как CGI нет такой удобной опции для подсветки синтаксиса
исходников PHP как при установке в виде модуля. Если вы хотите использовать ее,
необходимо использовать функцию highlight_file().
Для этого просто создайте PHP скрипт со следующим кодом:
<?php highlight_file('some_php_script.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
# LoadModule php5_module "c:/php/php5apache2.dll" AddHandler application/x-httpd-php .php # конфигурирование пути к php.ini PHPIniDir "C:/php"
Замечание:
Не забудьте указать актуальный путь к директории PHP вместо
C:/php/ в приведенном примере. Позаботьтесь, чтобы
в директиве LoadModule использовались либо php5apache2.dll либо
php5apache2_2.dll и удостоверьтесь, что указанный файл
фактически находится по пути, который вы указали в директиве.
Приведенная выше конфигурация позволит PHP обработать любой файл, который имеет
расширение .php, даже если имеются другие расширения. К примеру, файл с именем
example.php.txt будет запущен обработчиком PHP. Чтобы гарантировать,
что только файлы, которые имеют расширение.php
будут запущены, используйте следующую конфигурацию:
<FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>
Запуск PHP как CGI
Вы должны обратиться к документации » Apache CGI
для более полного понимания о запуске CGI под Apache.
Для запуска PHP как CGI, вам необходимо поместить ваши php-cgi файлы в
директорию, обозначенную как директория CGI, используя директиву ScriptAlilas.
После этого вам необходимо добавить строку #! в PHP файлы, указывающую
на местоположение исполняемого файла PHP.
Пример #20 PHP как CGI под Apache 2.x
#!C:/php/php.exe <?php phpinfo(); ?>
Внимание
Используя установку CGI, ваш сервер открыт перед несколькими возможными уязвимостями. Пожалуйста, ознакомьтесь с разделом «Безопасность CGI» чтобы узнать, как можно защитить себя от таких атак.
Запуск PHP под FastCGI
Запуск PHP под FastCGI имеет ряд преимуществ по сравнению с запуском как
CGI. Установка же довольно проста:
Получить mod_fcgid здесь:
» http://httpd.apache.org/mod_fcgid/.
исполняемые файлы под Win32 доступны для скачивания с этого сайта. Установите модуль
в соответствии с прилагаемыми инструкциями.
Настроить свой веб сервер как указано ниже, позаботившись о соответствии всех
путей установки на вашей конкретной системе:
Пример #21 Конфигурация Apache для запуска PHP как FastCGI
LoadModule fcgid_module modules/mod_fcgid.so # Где находится ваш php.ini? FcgidInitialEnv PHPRC "c:/php" AddHandler fcgid-script .php FcgidWrapper "c:/php/php-cgi.exe" .php
Файлы с расширением .php в таком случае будут запускаться с помощью
оболочки 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:assoc .php=PHPScript ftype PHPScript=c:\php\php.exe %1 %*
-
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:assoc .php=PHPScript ftype PHPScript=c:\php\php.exe %1 %*
-
In the Netscape Enterprise Administration Server create
a new mime type (Category: type,
Content-Type: magnus-internal/x-httpd-php, File Suffix: php).
-
Edit magnus.conf (for servers >= 6) or
obj.conf (for servers < 6) and add the following:
You should
place the lines aftermime types init
.Init fn="load-modules" funcs="php4_init,php4_execute,php4_auth_trans" shlib="c:/php/sapi/php4nsapi.dll" Init fn="php4_init" LateInit="yes" errorString="Failed to initialise PHP!" [php_ini="c:/path/to/php.ini"]
(PHP >= 4.3.3) The
php_ini
parameter is
optional but with it you can place your
php.ini in your web server configuration directory. -
Configure the default object in obj.conf
(for virtual server classes [Sun Web Server 6.0+] in
their vserver.obj.conf):
In the<Object name="default">
section, place this line necessarily after all ‘ObjectType’
and before all ‘AddLog’ lines:Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inikey=value ...]
(PHP >= 4.3.3) As additional parameters you can add some special
php.ini-values, for example you
can set adocroot="/path/to/docroot"
specific to the contextphp4_execute
is called. For boolean ini-keys please use 0/1 as value,
not"On","Off",...
(this will not work correctly), e.g.
zlib.output_compression=1
instead of
zlib.output_compression="On"
-
This is only needed if you want to configure a directory that only consists of
PHP scripts (same like a cgi-bin directory):<Object name="x-httpd-php"> ObjectType fn="force-type" type="magnus-internal/x-httpd-php" Service fn=php4_execute [inikey=value inikey=value ...] </Object>
After that you can configure a directory in the Administration server and assign it
the stylex-httpd-php
. All files in it will get executed as PHP.
This is nice to hide PHP usage by renaming files to .html. -
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»).
CGI environment and recommended modifications in php.ini
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!
Замечание:
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):
variables_order = "GPCS" register_globals = On
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:
Error fn="php4_execute" code=XXX script="/path/to/script.php" [inikey=value inikey=value...]
where XXX
is the HTTP error code. Please delete
any other Error
directives which could interfere with yours.
If you want to place a page for all errors that could exist, leave
the code
parameter out. Your script can get the HTTP status code
with $_SERVER[‘ERROR_TYPE’].
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:
Service fn="php4_execute" type="magnus-internal/directory" script="/path/to/script.php" [inikey=value inikey=value...]
For both error and directory listing pages the original URI and
translated URI are in the variables $_SERVER[‘PATH_INFO’] and
$_SERVER[‘PATH_TRANSLATED’].
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:
Init fn=php4_init ... server_lib="ns-httpdXX.dll"
where XX
is the correct DLL version number.
To get it, look in the server-root for the correct DLL name. The
DLL with the biggest filesize is the right one.
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
#для PHP 4 *.php = c:\php\php4isapi.dll #для PHP 5 *.php = c:\php\php5isapi.dll
(Если PHP установлен в
c:\php.) -
Перезапустите 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
После установки 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. Например:extension_dir = C:\php\extensions
-
Включите одно или несколько модулей, которые вы хотите использовать,
раскомментировав в файле php.ini строки вида
extension=php_*.dll
. Это делается удалением символа «;»
в начале строки для каждого модуля, который вы хотите включить.Пример #23 Включение модуля Bzip2 в PHP-Windows
// измените следующую строку с ... ;extension=php_bz2.dll // ... на extension=php_bz2.dll
-
Некоторые модули для своей работы требуют дополнительные библиотеки 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 версий <= 4.2.0 требуется библиотека 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 версий <= 5.0.2) (в комплекте дистрибутива PHP) |
php_oci8.dll | Функции Oracle 8 | Требуются клиентские библиотеки Oracle 8.1+ |
php_openssl.dll | Функции OpenSSL | Требуется библиотека 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.
C:\PHP5\php.exe -f "C:\PHP Scripts\script.php" -- -arg1 -arg2 -arg3
Но есть несколько простых шагов, которые могут упростить задачу.
Некоторые из этих шагов уже могли быть выполнены, но будут приведены
здесь для того, чтобы последовательность операций не была нарушена.
-
Допишите расположение исполняемых файлов 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 файлом.
Это можно сделать выполнив команду:ftype phpfile="C:\PHP5\php.exe" -f "%1" -- %~2
Замечание:
Как PATH, так и PATHEXT
являются важными системные переменными в Windows, поэтому важно не затереть
их текущее значение, а только дописать нужные данные в конец.
Выполнение этих шагов позволит PHP скриптам выполняться из любой директории
без необходимости указывать исполняемый PHP файл или расширение
.PHP
, а все параметры будут переданы в скрипт для обработки.
В примере ниже описываются некоторые изменения реестра, которые могут быть сделаны вручную.
Пример #24 Изменения реестра
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.php] @="phpfile" "Content Type"="application/php" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile] @="PHP Script" "EditFlags"=dword:00000000 "BrowserFlags"=dword:00000008 "AlwaysShowExt"="" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\DefaultIcon] @="C:\\PHP5\\php-win.exe,0" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell] @="Open" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open] @="&Open" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open\command] @="\"C:\\PHP5\\php.exe\" -f \"%1\" -- %~2"
С этими изменениями команда может быть записана как:
"C:\PHP Scripts\script" -arg1 -arg2 -arg3
или, если ваш путь в переменной окружения "C:\PHP Scripts"
PATH:
Замечание:
Возникает небольшая проблема, если вы собираетесь использовать эту технику
и используете ваши PHP-скрипты как фильтры командной строки, как в примере ниже:dir | "C:\PHP Scripts\script" -arg1 -arg2 -arg3или
dir | script -arg1 -arg2 -arg3Вы можете увидеть, что ваш скрипт завис и ничего не делает.
Для того чтобы оперативно получать об этом информацию,
вам нужно внести в реестр еще некоторые изменений.Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer] "InheritConsoleHandles"=dword:00000001Дополнительную информацию можно найти в » базе знаний Microsoft, статья 321788.
В Windows 10, эта настройка возвращена, и в обычной инсталляции Windows 10
встроенная консоль перехватывается автоматически. Этот »
пост на форуме Microsoft объясняет подробнее.