Php

Php apache настройка: Настраиваем Apache, PHP и MySQL вручную

Содержание

Настройка Apache для работы с PHP как с модулем

Теперь мы знаем, как установить Apache и php. Теперь наша задача состоит в том, чтобы подружить эти две вещи. Займемся совестной настройкой Apache и PHP. Как и в предыдущих заметках, я постараюсь как можно подробней описать последовательность действий по настройке. Основные моменты будут показаны на скриншотах.

Поехали!

Перейдем в папку, в которую мы устанавливали Apache. Если вы последовали моему совету, в посте об установке Apache, то она у вас должна быть:

C:/Program Files/Apache Software Foundation/Apache2.2/conf

Открываем файл httpd.txt:

В отличие от синтаксиса конфигурационного файла php (далее для краткости буду называть конфиг), описанного в этой заметке, в конфиге Apache для комментирования используется символ «#» (решетка). Т.е. все строки начинающиеся с этого символа «не активны». Для разделения значения переменной и ее параметра используется пробел. Например:

ServerRoot     «C:/Program Files/Apache Software Foundation/Apache2.2»

ServerRoot — имя переменной

«C:/Program Files/Apache Software Foundation/Apache2.2» — значение переменной.

Настройка Apache для работы с PHP.

PHP может быть установлен как модуль Apache и как CGI-приложение. Мы рассмотрим настройку PHP как модуль Apache.

В конфигурационном файле Apache найдите секцию «Dynamic Shared Object»:

Раскомментируйте выделенную строку c mod_rewrite.so. И добавьте саму нижнюю строчку. В этой строчке указан, путь к файлу, который нужен Apache, чтобы взаимодействовать с PHP. Если вы установили PHP в папку,  отличную от той,которую я вам советовал (C:/php5), то пропишите здесь свой путь к файлу php5apache2_2.dll.

Строчкой ниже добавьте:

PHPIniDir    «C:/php5»

Этим мы даем знать веб-серверу, где находиться конфигурационный файл PHP.

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

AddHandler      application/x-httpd-php      .php

Этот текст  означает, что для файлов с расшерением .php  назначается обработчикapplication/x-httpd-php.

В итоге у вас должно получиться следующее ( не полный скрин, сверху еще модули):

/data/image/configure/apache-php-module-configure.gif

Также нам нужно настроить одну полезную опцию:

#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
DirectoryIndex index.html index.htm index.shtml index.php
</IfModule>

Здесь задаются файлы, которые будут автоматически загружаться при обращении к каталогу. Например, если вы напишите в строке браузера http://localhost/, браузер будет искать файлы index.html index.htm index.shtml index.php, порядок слева направа, если найдет какой-то файл по покажет, если не найдет — то покажет список файлов в директории.

Теперь займемся правами доступа. Это базовые настройки для всех директорий:

#
# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
#
# First, we configure the «default» to be a very restrictive set of
# features.
#
<Directory />
Options Includes Indexes FollowSymLinks
AllowOverride All
Allow from all
</Directory>

Options — здесь указываеются через пробел настройки:

  • Includes — разрешение использовать SSI (server-side include).
  • Indexes — использование индексов в директории. Т.е. есть файл index.php и мы запрашиваем в бразере директорию, то вызывается этот файл. Например, http://localhost/directory/ — вызоветься файл http://localhost/directory/index.php.
  • FollowSymLinks — разрешает символические ссылки (используется в *nix системах).

AllowOverride — управляет возможностью переписывания настроек для конкретной директории и вложенных в нее директорий с помощью .htaccess файлов. Значение Allразрешает перекрывать базовые настройки сервера в любой директории.

Allow from all — разрешает доступ из брузера ко всем вложенным директориям ваших сайтов.

 

У некоторых людей возникают ошибки в процессе установки, связанные с тем, что сервер не может по доменному имени узнать IP адрес — «Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName«. Эту ошибку можно посмотреть в логах ошибок Apache (logs/error.txt). Решается заменой localhost на ваш IP адрес:

#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn’t have a registered DNS name, enter its IP address here.
# В строчке ниже замените locahost на тот IP адресс, который написан в логах Apache
ServerName localhost:80

 

Чтобы изменения вступили в силу, нам необходимо перезагрузить Apache.

 

Как установить и настроить PHP 5 для запуска с Apache на Windows

В этой статье приводится пошаговое руководство по установке PHP для совместной работы с HTTP-сервером Apache на Windows. Эта процедура была протестирована как на Windows XP и Vista. Предполагается, что вы уже завершили установку Apache.

Прежде чем приступать к работе, скачайте копию PHP 5 со страницы загрузки. Загрузите защищенный пакет VC6 из раздела «Windows Binaries» — то есть не скачивайте установщик. Например, выберите пакет с пометкой «PHP 5.2.5 zip package», если на данный момент текущая версия — 5.2.5.

Примечание: обратите внимание, что я не тестировал описанную ниже процедуру с версиями PHP 5.3, только с 5.2.5, которая была последней версией на момент написания статьи. Теоретически, те же действия должны выполняться и для установки PHP 7.

Создайте на жестком диске папку для PHP. Я предлагаю c:php, хотя вы можете использовать другое название и расположение папки. Лично я предпочитаю не использовать имена с пробелами.

Извлеките все файлы из загруженного архива в эту папку. Для этого просто дважды кликните по zip-файлу. А затем перетащите все файлы в папку c:php.

Если вы переходите на PHP 5 с более старой версии, перейдите в каталог Windows, (обычно это c:windows), и удалите все файлы php.ini, которые вы ранее там размещали.

Перейдите в папку c:php и создайте копию файла php.ini-recommended. Назовите новый файл php.ini. Теперь у вас должен быть файл c:phpphp.in с содержимым, идентичным файлу c:phpphp.ini-recommended.

Примечание. Если вы используете Apache 1 нужно либо перенести файл php.ini в каталог Windows (c:windows), либо настроить переменную среды PATH, чтобы включить в нее c:php. Если вы не знаете, как это сделать, просто переместите файл php.ini в папку c:windows. Не нужно этого делать, если используете Apache 2, так как позже мы укажем в файле конфигурации Apache 2 директиву с расположением файла php.ini.

Для установки PHP на Windows 7 c помощью текстового редактора (например, такого как «Блокнот», который можно найти в разделе «Служебные» меню «Пуск»)? откройте файл php.ini. Возможно, придется внести следующие изменения в файл:

а) Включение коротких открывающих тегов

Найдите следующую строку:

Если для short_open_tag задано значение off, теги типа «<?» не будут считаться открывающими тегами для PHP-кода. В таком случае, чтобы начать PHP-скрипт, нужно будет скомпоновать скрипт с открывающим тегом типа «<?php».

Поскольку многие сторонние PHP-скрипты используют формат «<?», установка для этого параметра значения off создаст больше проблем, чем принесет пользы. Особенно, если учесть тот факт, что большинство, коммерческих хостингов, поддерживающих PHP, без проблем обрабатывают скрипты, использующие «< ?», в качестве открывающего тега. Чтобы изменить эту установку, отредактируйте данную строку следующим образом:

b) Волшебные кавычки

При установке Apache PHP по умолчанию входящие данные автоматически не экранируются с помощью слэша. Если вы хотите, чтобы входные данные имели префикс обратной косой черты («»), например, чтобы воспроизводить настройки хостинга, найдите следующую строку:

и замените ее на:

Не рекомендуется делать это, если на хостинге не задан данный параметр. Даже при установленном значении Off вы все равно можете использовать в PHP функцию addslashes(), чтобы добавлять слэши для конкретных частей данных,.

c) Использование глобальных переменных

Ряд старых скриптов при выполнении исходят из того, что все данные, отправляемые через форму, будут автоматически иметь переменную PHP с тем же именем. Например, если в форме есть поле для ввода с именем «something«, старые скрипты PHP исходят из того, что PHP-процессор автоматически создаст переменную с именем $something, которая содержит значение, заданное через это поле.

Если вы используете такие скрипты, нужно найти следующую строку:

и изменить ее на:

Предупреждение: при установке PHP на Windows не делайте этого, если у вас нет сторонних скриптов, для работы которых это необходимо. При написании новых скриптов лучше всегда исходить из того, что для элемента register_globals установлено значение «Off«.

d) Отображение ошибок

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

Чтобы PHP отображал сообщения об ошибках прямо в окне браузера, найдите следующую строку:

и измените ее на:

Для этого параметра на работающем сайте всегда должно быть установлено значение Off.

e) Путь сессии

Если скрипт использует сессии, найдите следующую строку:

;session.save_path = "/tmp"

session.save_path задает папку, в которой PHP сохраняет файлы сессии. Поскольку папка /tmp в Windows не существует, то нужно установить другую папку. Один из способов — создать папку с именем c:tmp (как ранее мы создали c:php) и указать для этого параметра данную папку. Если сделаете это, измените данную строку следующим образом:

session.save_path = "c:tmp"

Обратите внимание, что в дополнение к изменению пути я также удалил из строки префикс точки с запятой («;»).

Также можно использовать текущую папку TEMP на своем компьютере. Или создайте папку tmp в каталоге PHP, например c:phptmp и соответствующим образом настройте файл конфигурации. Возможных вариантов может быть много. Если вы не можете решить, какой из них выбрать, просто создайте c:php и сделайте, как я сказал выше.

f) Сервер SMTP

При установке PHP 5 5 если скрипт использует функцию mail(), и нужно, чтобы функция успешно отправляла почту на локальном компьютере, найдите следующий раздел:

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
;sendmail_from = [email protected]

Измените его, указав адрес вашего SMTP-сервера и учетную запись электронной почты. Например, если ваш SMTP-сервер mail.example.com, а адрес электронной почты [email protected], измените код так:

[mail function]
SMTP = mail.example.com
smtp_port = 25
sendmail_from = [email protected]

Обратите внимание, что после этого, когда скрипт попытается использовать функцию mail(), для ее успешной работы нужно будет подключиться к своему интернет-провайдеру. Если вы не измените приведенные выше строки и попытаетесь использовать в скрипте функцию mail(), функция вернет код сбоя и отобразит сообщение об ошибке.

Существует два способа установки Apache PHP. Первый: настроить его на загрузку PHP-интерпретатора в качестве модуля Apache. Второй: настроить его для запуска интерпретатора как бинарного CGI. Нужно применять только один из них. Выберите метод модуля, если на хостинге PHP также установлен, как модуль Apache, или используйте метод CGI, если он реализован на хостинге.

a) Запуск PHP 5 в качестве модуля Apache

Чтобы настроить Apache для загрузки PHP в качестве модуля для анализа PHP-скриптов, используйте текстовый редактор ASCII, чтобы открыть файл конфигурации Apache, httpd.conf.

Если вы используете Apache 1.x, файл находится в папке c:Program FilesApache GroupApacheconf. Пользователи Apache 2.0.x могут найти его в папке C:Program FilesApache GroupApache2conf, а пользователи Apache 2.2.x — в папке C:Program FilesApache Software FoundationApache2.2conf. Как правило, он находится в папке conf каталога, где установлен Apache.

Найдите раздел файла с операторами LoadModule. Объявления, перед которыми стоит символ хэша «#», считаются закомментированными.

Если используете Apache 1.x, добавьте следующую строку после всех операторов LoadModule:

LoadModule php5_module "c:/php/php5apache.dll"

Если вы используете Apache 2.0.x, добавьте следующую строку после всех операторов LoadModule:

LoadModule php5_module "c:/php/php5apache2.dll"

Если вы используете Apache 2.2.x, добавьте следующую строку:

LoadModule php5_module "c:/php/php5apache2_2.dll"

Обратите внимание, что в этом примере установки PHP используется символ прямой косой черты («/») вместо традиционной обратной косой черты Windows («»). Это не опечатка.

Если вы используете Apache 1.x, найдите серию операторов «AddModule» и добавьте после всех строк следующую.

Затем найдите в файле блок AddType и добавьте приведенную ниже строку после последнего оператора AddType. Это нужно сделать независимо от того, какую версию Apache вы используете. Для Apache 2.2.x нужно найти строки AddType в разделе <IfModule mime_module>. Добавьте строку непосредственно перед закрытием </ IfModule> для этого раздела.

AddType application/x-httpd-php .php

Если необходима поддержка других типов файлов, например «.phtml», добавьте их в список, например, так:

AddType application/x-httpd-php .phtml

Тем, кто использует одну из версий Apache 2, нужно указать местоположение ini-файла PHP. Добавьте следующую строку в конец httpd.conf.

Если вы использовали другой каталог, нужно будет изменить c:/php на правильный путь. Не забудьте применить косую черту («/»).

Если используете Apache 1, вы уже разместили файл php.ini в папке Windows или где-нибудь в PATH. Поэтому PHP должен будет найти его самостоятельно.

Если вы настроили для PHP 5 загрузку в качестве модуля Apache, можете пропустить данный раздел. Он предназначен для тех, кто хочет настроить для PHP запуск в качестве бинарного CGI.

Процедура для этого при установке PHP 7 одинаковая как для Apache 1.x, так и для всех версий серии 2.x.

Найдите часть конфигурационного файла Apache, в которой находится раздел ScriptAlias. Добавьте приведенную ниже строку сразу после строки ScriptAlias для «cgi-bin». Если используете Apache 2.2.x, убедитесь, что строка расположена до закрытия </ IfModule> для раздела <IfModule alias_module>.

Обратите внимание: если вы установили PHP в другом месте, например c:Program Filesphp, нужно указать соответствующий путь вместо c:/php/ (например, c:Program Filesphp). Не забудьте, что здесь мы используем простую косую черту («/») вместо обратной косой черты Windows («»).

ScriptAlias /php/ "c:/php/"

Apache нужно настроить MIME тип PHP. Найдите блок комментариев AddType, поясняющий его использование, и добавьте следующую строку ниже него. Для Apache 2.2.x найдите строки AddType в разделе <IfModule mime_module>. Добавьте приведенную ниже строку непосредственно перед закрытием </IfModule> для этого раздела.

AddType application/x-httpd-php .php

Как и в случае установки PHP в качестве модуля Apache, можно добавить любые расширения, чтобы Apache распознавал их как скрипты PHP, например:

AddType application/x-httpd-php .phtml

Затем вам нужно указать серверу выполнять исполняемый файл PHP каждый раз, когда он встречает скрипт PHP. Добавьте в файл следующий код, например, после блока комментариев, поясняющих «Action«.

Если вы используете Apache 2.2.x, то добавьте код сразу после инструкции AddType, описанной выше; в Apache 2.2.x нет блока комментариев «Action«.

Action application/x-httpd-php "/php/php-cgi.exe"

Примечание: часть «/php/» будет распознана как ScriptAlias, своего рода макрос, который будет расширен Apache до «c:/php/» (или «c:/Program Files/php/», если вы установили PHP там). Другими словами, не помещайте в эту директиву путь «c:/php/php.exe» или «c:/Program Files/php/php.exe», а используйте «/php/php-cgi.exe».

Если используете Apache 2.2.x, найдите следующий раздел в файле httpd.conf:

<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>

Добавьте приведенные ниже строки сразу после раздела, который только что нашли.

<Directory "C:/php">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>

c) Настройка индексной страницы по умолчанию

Этот раздел относится к варианту установки PHP на Windows в качестве модуля Apache, так и двоичного CGI.

Если вы создаете файл index.php и хотите, чтобы Apache загружал его как главную страницу сайта, придется добавить еще одну строку в файл httpd.conf. Найдите строку, которая начинается с «DirectoryIndex», и добавьте «index.php» в список файлов. Например, если у вас был такой код:

DirectoryIndex index.html

измените его на:

DirectoryIndex index.php index.html

При следующем входе на веб-сервер через имя каталога, например «localhost» или «localhost/directory/», Apache отправит все скрипты из index.php или содержимое файла index.html, если index.php недоступен.

Перезагрузите сервер Apache. Это необходимо, чтобы Apache считал новые директивы конфигурации PHP, которые вы поместили в файл httpd.conf. Сервер Apache 2.2 можно перезапустить, дважды кликнув по иконке Apache Service Monitor в панели задач и нажав в появившемся окне кнопку «Перезапустить».

После установки PHP 5 5 или другой версии языка создайте php-файл со следующей строкой:

Сохраните в каталог Apache htdocs файл с именем test.php. Если используете «Блокнот», не забудьте сохранить имя «test.php» с кавычками. Иначе программа самостоятельно добавит расширение .txt.

Откройте данный файл в браузере, введя в адресную строку «localhost / test.php» (без кавычек). Не открывайте файл напрямую через проводник — вы увидите только код, введенный ранее. Вам нужно использовать указанный выше URL-адрес, чтобы браузер попытался получить доступ к веб-серверу Apache, который запускает PHP для интерпретации скрипта.

Если все пройдет успешно, вы увидите страницу с информацией о настройке PHP. Поздравляю — вы успешно установили PHP и настроили Apache для работы с ним. Вы можете загрузить этот же файл test.php на свой хостинг и запустить его там, чтобы узнать, как хостинг настроил PHP у себя, и попытаться воспроизвести эти настройки на своей машине.

Если это не сработает, проверьте, не выдает ли установка PHP или установка Apache ошибок. Для этого откройте окно командной строки и запустите php-cgi.exe для файла test.php, например, c:phpphp-cgi test.php.

Если вы вызвали PHP из командной строки и увидели большой HTML-файл со всей информацией о конфигурации PHP, значит, PHP настроен правильно. Вероятно, проблема связана с конфигурацией Apache. Убедитесь, что вы перезапустили Apache после внесения изменений в конфигурацию и что вы правильно настроили веб-сервер.

Полное справочное руководство по установке PHP можно найти на официальном сайте технологии. Его можно посмотреть онлайн или загрузить для изучения в автономном режиме.

Хорошего всем дня!

Данная публикация представляет собой перевод статьи «How to Install and Configure PHP 5 to Run with Apache on Windows» , подготовленной дружной командой проекта Интернет-технологии.ру

телеграм канал. Подпишись, будет полезно!

Настройка среды разработки PHP в Windows

В данном учебном курсе рассматриваются два способа настройки среды разработки PHP в операционной системе Windows. Первый и наиболее удобный способ состоит в установке и настройке пакета AMP (Apache, МySQL, PHP). В данном учебном курсе приводится процедура установки пакета XAMPP. Второй способ состоит в установке и настройке каждого компонента по отдельности.

Содержание

Для работы с этим учебным курсом требуется следующее программное обеспечение и ресурсы.

Как правило, разработка и отладка выполняются на локальном веб-сервере, в то время как производственная среда размещена на удаленном веб-сервере. Настройка удаленного веб-сервера описана в разделе Развертывание приложения PHP на удаленном веб-сервере с помощью IDE NetBeans. Этот учебный курс содержит информацию, необходимую для настройки локального веб-сервера. Поддержка PHP может добавляться к целому ряду локальных веб-серверов (IIS, Xitami и т.д.), но обычно используется сервер HTTP Apache. Сервер HTTP Apache включен в пакет AMP XAMPP, используемый в этом учебном курсе. Сведения относительно установки и настройки автономного сервера HTTP Apache приведены здесь.

Требуемое программное обеспечение

Для создания, выполнения и отладки проектов PHP необходимо следующее программное обеспечение:

  • IDE NetBeans для PHP. Загрузку можно осуществить отсюда.
  • Веб-сервер. Как правило, разработка и отладка выполняются на локальном веб-сервере, в то время как производственная среда размещена на удаленном веб-сервере. Текущая версия позволяет использовать локальный сервер. Последующие версии будут поддерживать использование удаленного сервера с доступом по протоколу FTP. Поддержка PHP может добавляться к целому ряду веб-серверов (IIS, Xitami и т.д.), но обычно используется сервер HTTP Apache. Сведения относительно установки и настройки Apache 2.2 приведены здесь.
  • Механизм PHP. Поддерживается версия PHP5. Загрузку можно осуществить отсюда.
  • Отладчик PHP. IDE NetBeans для PHP позволяет использовать XDebug, но использование отладчика не является обзательным. Из соображений совместимости с PHP5 рекомендуется использовать версию XDebug 2.0 или выше.
  • Сервер базы данных. Существует возможность использования различных серверов базы данных, однако самым популярным из них является сервер MySQL. Загрузку можно осуществить отсюда.
    Примечание. Рекомендуемая версия продукта: MySQL Server 5.0. В предоставленных документах описывается работа с этой версией.

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

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

Использование пакета AMP

В целях автоматической установки всех параметров настройки для механизма PHP, сервера HTTP Apache и сервера базы данных MySQL воспользуйтесь пакетом AMP. В данном учебном курсе приведены указания только для пакета XAMPP-Windows. Справочные сведения по пакету WAMP или другим пакетам приведены в разделе NetBeans XDebug Wiki.

Установка и настройка пакета XAMPP

В этом разделе приведено описание процедур загрузки, установки и настройки пакета XAMPP.

Предупреждение! НЕ используйте XAMPP 1.7.0. В этой версии имеются значительные проблемы с XDebug. Используйте версию 1.7.1 или выше, где эти неполадки устранены.

Примечание: Начиная с XAMPP 1.7.2, XAMPP поставляется с PHP 5.3а не с PHP 5.2.x. IDE NetBeans для PHP версии 6.7.x не поддерживает новые функции PHP 5.3. IDE NetBeans для PHP 6.8, которая в настоящее время доступна как сборка разработки, полностью поддерживает PHP 5.3. Также обратите внимание, что установка Xdebug различается для PHP 5.2.x и PHP 5.3.

  1. Загрузите пакет программы установки XAMPP . В состав XAMPP Lite не входит XDebug.
  2. По завершении загрузки запустите файл EXE.

    В Microsoft Vista функция контроля учетных записей пользователей (UAC) блокирует обновление установщиком PHP настройки службы httpd Apache. На время установки XAMPP следует отключить UAC. Для получения дополнительных сведений обратитесь к разделу Поддержка Майкрософт.

  3. Можно установить сервер Apache и сервер базы данных MySQL как веб-службы. Если Apache Server и MySQL установлены как службы, то нет необходимости запускать их вручную с помощью «XAMP Control Panel». Следует учитывать, что установить и удалить эти службы можно с помощью панели управления XAMPP.
  4. При использовании самораспаковывающегося архива после его распаковки запустите файл setup-xampp.bat для настройки компонентов пакета. Программа установки XAMPP запускает этот файл автоматически.
  5. После настройки откройте панель управления XAMP. Эту панель можно открыть посредством запуска файла XAMPP_HOME/xampp-control.exe или с помощью значка панель управления XAMPP, автоматически размещаемого на рабочем столе. При открытии панели управления XAMPP следует учитывать, что модули, установленные как службы, уже выполняются.

    Предупреждение. Иногда в Windows Vista не удается запустить файл xampp-control.exe. В этом случае можно запустить xampp-start.exe.

    Предупреждение. Файл winmysqladmin.exe, запускаемый кнопкой «Admin» для MySQL, не функционирует. Отображается последовательность сообщений об ошибках, которая может быть остановлена только путем завершения процесса winmysqladmin вручную. Файл winmysqladmin.exe также невозможно запустить из командной строки. Обратитесь к странице http://bugs.xampp.org/view.php?id=71.

  6. Флажки «Svc» указывают на то, что модуль устанавливается как служба Windows и автоматически выполняется при запуске системы. Службы Windows устанавливаются и удаляются при установке и сня

Apache+PHP4+PHP5+Mysql для Windows / Хабр

Не так давно возникла необходимость одновременного запуска Apache с поддержкой php4, php5 и mysql. Знаю что есть несколько готовых решений, но как-никак их приходится подпиливать ручками для своих нужд, поэтому было решено собрать такой комплект в ручную.

Дистрибутивы

Использовались следующие дистрибутивы программ:
Apache: 2.2.9
PHP4: 4.4.9
PHP5: 5.2.6
MySQL: 5.0.67

Все дистрибутивы скачивались в .zip архивах, дабы избежать ненужных регистраций в системе. Дистрибутив становится привязаным к конкретному диску и папке(т.е. если вы изначально делаете все в папке C:\WebServer, то и на остальных компьютерах куда вы будете его ставить, тоже нужно будет использовать именно эту папку).

Размещение файлов

Для начала распакуем все дистрибутивы

  • Apache: C:\WebServer\apache
  • php4: C:\Webserver\php\php4
  • php5: C:\WebServer\php\php5
  • mysql: C:\WebServer\mysql

общая директория для *php файлов будет C:\WebServer\www

Настройка Apache

PHP4 и PHP5 будут висеть на разных портах. Пусть это будут 80(для php5) и 81(для php4). Для этого делаем 2 конфигурационных файла для Apache и вносим в них след. изменения:
httpd-php4.conf:
ServerRoot "C:/WebServer/apache"

Listen 81

LoadFile "c:\WebServer\php\php4\php4ts.dll"

DocumentRoot "C:\WebServer\www\htdocs

<Directory "C:\WebServer\www\htdocs">

Options Indexes FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

DirectoryIndex index.html index.php index.htm

И т.д. смотря что конкретно нам нужно от Apache.

Файл php4ts.dll необходимо положить в папку php\php4\. Скачать его можно тут:
www.dll-files.ru/dll/p/Php4ts.dll.html

Далее делаем настройку php5, файл httpd-php5.conf:
ServerRoot "C:/WebServer/apache"

Listen 80

LoadModule php5_module "c:/WebServer/php/php5/php5apache2_2.dll"

AddType application/x-httpd-php .php

PHPIniDir "c:/WebServer/php/php5"

DocumentRoot "C:\WebServer\www\htdocs

<Directory "C:\WebServer\www\htdocs">

Options Indexes FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all


<IfModule dir_module>

DirectoryIndex index.html index.php index.htm

Ставим MySQL:

Специальных настроек никаких не нужно, если только в файле my.cnf указать порт и пароль. Так что это мы пропустим, а вот интеграцию с php опишем:

Настройка PHP4, PHP5

Файл php\php4\php.ini
engine = On

extension=php_mysql


Остальные Extensions включаются по желанию. Аналогично подключаем php_mysql в php\php5\php.ini

Файлы запуска

Создаем папку bin\ для файлов запуска
создаем в ней файл apache-php4.cmd с содержимым:

@echo OFF

echo Apache + PHP4 started

C:\WebServer\apache\bin\httpd.exe -f C:\WebServer\apache\conf\httpd-php4.conf &


и файл apache-php5.cmd:
@echo OFF

echo Apache + PHP4 started

C:\WebServer\apache\bin\httpd.exe -f C:\WebServer\apache\conf\httpd-php4.conf &

Теперь с помощью этих двух файлов мы можем запускать Apache с разными версиями PHP. Mysql запускается файлом mysql/bin/mysqld-nt.exe

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

Установка переменных среды для доступа в PHP при использовании Apache

Переполнение стека

  1. Около
  2. Продукты

  3. Для команд
  1. Переполнение стека
    Общественные вопросы и ответы

  2. Переполнение стека для команд
    Где разработчики и технологи делятся частными знаниями с коллегами

  3. Вакансии
    Программирование и связанные с ним технические возможности карьерного роста

  4. Талант
    Нанимайте технических специалистов и создавайте свой бренд работодателя

  5. Реклама
    Обратитесь к разработчикам и технологам со всего мира

  6. О компании

Загрузка…

.

Настройка веб-сервера и параметров среды выполнения для PHP

Последнее обновление 10 февраля 2020 г.

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

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

Как запускаются приложения во время динамической загрузки

Во время развертывания Heroku установит в ваше приложение пакет heroku / heroku-buildpack-php Composer в качестве дополнительной зависимости. Этот пакет содержит сценарии загрузки для запуска PHP вместе с веб-серверами Apache или Nginx.

Имена сценариев загрузки, доступных для вашего использования:

  • heroku-php-apache2 (для PHP и Apache2)
  • heroku-php-nginx (для PHP и Nginx)

Эти загрузочные скрипты, установленные пакетом heroku / heroku-buildpack-php , помещаются в каталог Composer vendor / bin и будут использовать файлы конфигурации из vendor / heroku / heroku-buildpack-php / conf / для запустите PHP-FPM вместе с выбранным веб-сервером.

Heroku рекомендует поддерживать паритет разработчика и продукта, выполняя те же пакеты локально. Вы можете использовать пакет, который вы запускаете в производственной среде, в качестве зависимости для разработки, добавив его в раздел require-dev вашего файла composer.json . Затем вы можете запустить локальную среду разработки, которая будет без проблем работать на вашем компьютере разработки, при условии, что у вас установлен Apache или Nginx.

После локальной установки пакета heroku / heroku-buildpack-php вы можете просмотреть любой экран справки для загрузочных скриптов.Сценарии загрузки принимают различные параметры и аргументы, которые можно использовать для управления настройками, относящимися к PHP и программному обеспечению веб-сервера. Чтобы получить подробную справку, вы можете запустить любой из установленных двоичных файлов из списка выше с флагом --help . Например, чтобы получить помощь по параметрам запуска PHP и Apache, введите:

  $ поставщик / bin / heroku-php-apache2 --help
  

Имя каталога vendor / bin / можно изменить с помощью настроек конфигурации в вашем composer.json , поэтому приведенные выше команды могут отличаться для вашего приложения. Чтобы определить правильный путь для команд выше, запустите:

  $ конфигурация композитора bin-dir
  

Если путь, возвращаемый этой командой, отличается от vendor / bin , скорректируйте команды выше (и любые соответствующие команды в приведенных ниже инструкциях) соответствующим образом.

Определение используемой среды выполнения

Полную информацию о поддерживаемых функциях и версиях см. В справочной статье PHP.

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

Указание, какой веб-сервер использовать

В вашем Procfile вы должны указать, какой из сценариев загрузки из списка в начале этого документа использовать. После этого Heroku запустит соответствующий веб-сервер вместе с PHP при запуске вашего дино.

Например, чтобы использовать Nginx вместе с PHP, ваш Procfile должен содержать:

  Интернет: поставщик / bin / heroku-php-nginx
  

Установка корня документа

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

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

Например, если вы используете Apache с PHP и хотите, чтобы корень вашего документа был установлен в общедоступный подкаталог вашего приложения (потому что там находится ваш index.php и все изображения, CSS и JavaScript), ваш Procfile будет выглядеть так:

  Интернет: поставщик / bin / heroku-php-apache2 public /
  

Если вы указываете дополнительные параметры для сценария (как описано в следующих разделах), вы должны убедиться, что корневой аргумент документа находится в конце команды после всех параметров; например:

  Интернет: поставщик / bin / heroku-php-nginx -C rewrite.conf www /
  

Чтобы не определять корень документа (и, таким образом, корневой каталог вашего приложения действовал как корень документа), просто опустите аргумент вообще:

  Интернет: поставщик / bin / heroku-php-apache2
  

Поведение по умолчанию

Heroku запустит сервер приложений FastCGI Process Manager (PHP-FPM).Этот сервер приложений будет принимать запросы на выполнение файлов PHP с веб-сервера, Apache или Nginx.

Веб-сервер будет связываться с портом в переменной среды $ PORT и отвечать на входящие HTTP-запросы; если запрос относится к существующему файлу с именем, заканчивающимся на .php , веб-сервер передаст запрос на выполнение этого файла PHP серверу приложений, используя протокол FastCGI.

Конфигурация этих веб-серверов может быть изменена.

В зависимости от выбранного вами веб-сервера (Apache или Nginx) для каждого из них будут использоваться разные значения по умолчанию. Вы можете найти их прямо ниже.

По умолчанию Apache

Apache использует виртуальный хост, который отвечает на все имена хостов. Корневой каталог документа настроен как , доступный без ограничений доступа, а AllowOverride All настроен на использование файлов .htaccess . Любой запрос на URL-адрес, заканчивающийся на .php , будет перезаписан на PHP-FPM с использованием конечной точки прокси с именем fcgi: // heroku-fcgi через mod_proxy_fcgi.Директива DirectoryIndex имеет значение « index.php index.html index.html ».

Nginx по умолчанию

Nginx использует сервер , который отвечает на все имена хостов. Корень документа не имеет ограничений доступа. Любой запрос к URL-адресу, содержащему .php , будет обработан fastcgi_pass с PHP-FPM с использованием восходящего потока, называемого «heroku-fcgi», после вызова try_files для всего URL-адреса. Директива index установлена ​​на « index.php index.html index.html

Настройки веб-сервера

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

Apache

Использование .htaccess

Вы можете использовать обычные файлы .htaccess для настройки поведения HTTP-сервера Apache. Параметр AllowOverride для корня документа установлен на все , что означает, что вы можете использовать любую директиву конфигурации, разрешенную в контекстах .htaccess .

Это рекомендуемый подход для настройки параметров Apache, поскольку он не требует использования настраиваемой (и потенциально подверженной ошибкам) ​​конфигурации include.

Использование настраиваемой конфигурации Apache на уровне приложения

Внутри файла конфигурации уровня сервера по умолчанию, который Heroku использует во время запуска Apache, он включает очень простой файл конфигурации уровня приложения по умолчанию. Вы можете заменить этот файл своей собственной конфигурацией. Например, чтобы настроить Apache для использования некоторых правил перезаписи для вашего приложения Symfony2, вы должны создать apache_app.app \ .php (/(.*) | $)% {ENV: BASE} / $ 2 [R = 301, L]

RewriteCond% {REQUEST_FILENAME} -f
RewriteRule.? - [L]

RewriteRule.? % {ENV: BASE} /app.php [L]

Затем вы можете использовать аргумент -C загрузочного скрипта, чтобы сообщить Heroku включить этот файл для вас:

  Интернет: поставщик / bin / heroku-php-apache2 -C apache_app.conf
  

Чтобы понять, в каком контексте будет включен этот файл конфигурации, мы рекомендуем вам взглянуть на конфигурацию уровня сервера для Apache, которую Heroku загружает сразу после общесистемного файла конфигурации во время запуска.

Nginx

Использование настраиваемой конфигурации Nginx на уровне приложения

Внутри файла конфигурации уровня сервера по умолчанию, который Heroku использует во время запуска Nginx, он включает очень простой файл конфигурации уровня приложения по умолчанию. Вы можете заменить этот файл своей собственной конфигурацией. Например, чтобы настроить Nginx для использования некоторых правил перезаписи для вашего приложения Symfony, вы должны создать nginx_app.conf внутри корневого каталога вашего приложения со следующим содержимым:

  место / {
    # попытаться обслужить файл напрямую, откат для перезаписи
    try_files $ uri @rewriteapp;
}

location @rewriteapp {
    # переписать все в index./index\.php(/|$) {
    try_files @ heroku-fcgi @ heroku-fcgi;
    # убедитесь, что /index.php не доступен напрямую, а только через перезапись
    внутренний;
}
  

Внутренний ; Директива в приведенной выше конфигурации гарантирует, что вызовы /index.php и т. Д. Будут запрещены, если они не исходят из перезаписи.

Вы всегда можете использовать try_files @ heroku-fcgi @ heroku-fcgi; для делегирования обработки правилу по умолчанию для файлов .php с использованием именованного местоположения « @ heroku-fcgi ».Это самый простой и переносимый способ вызова PHP.
При использовании fastcgi_pass вместо этого используйте « heroku-fcgi » в качестве пункта назначения. Это вышестоящая группа, настроенная так, чтобы ваши запросы FastCGI всегда передавались правильному внутреннему процессу.

После создания новой конфигурации по умолчанию вы можете указать своему приложению начать с этой конфигурации, используя аргумент -C сценария загрузки.

Например, если вы написали собственный nginx_app.conf , вы можете изменить свой Procfile , чтобы использовать этот файл конфигурации:

  Интернет: поставщик / bin / heroku-php-nginx -C nginx_app.conf
  

Чтобы понять, в каком контексте будет включен этот файл конфигурации, мы рекомендуем вам взглянуть на конфигурацию уровня сервера для Nginx, которую Heroku загружает сразу после общесистемного файла конфигурации во время запуска.

Настройки среды выполнения PHP

INI настройки

Heroku поддерживает несколько методов, которые предлагает PHP для изменения своего php.ini настроек.

В дополнение к использованию ini_set в вашем PHP-коде во время выполнения, вы также можете настроить Heroku на использование дополнительного файла конфигурации для PHP-FPM, который может содержать директивы INI и будет загружен после конфигурации по умолчанию во время запуска.

Рекомендуемый подход для большинства случаев —

для каждого каталога.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *