Пошаговая инструкция по настройке PHP на хостинге. Как узнать версию PHP

Настройка PHP , как оказалось, не очень сложное занятие. Ознакомиться с настройками PHP 5.3 можно в файле «php.ini «, находящемуся в директории WINDOWS (путь к конфигурационному файлу выглядит примерно так: «%WINDOWS%\php.ini». К нему, безусловно, предполагается backup, находящийся в директории «PHP\BACKUP». Файл настроек PHP можно по-разному редактировать, удалять из него комментарии и пояснения (кстати, такие же операции можно проводить и с файлом «httpd.conf». Синтаксис файла php.ini: «директива = значение». Выглядит это примерно вот так:

Директива = значение; пояснение директива = ;директива = значение;директива =

и тому подобное.

В конфигурационном файле PHP есть специализированный знак комментария — «;». Все, что находится после этого знака, не воспринимается.

Общие настройки

Для осуществления настроек PHP Apache нам необходимо провести правку конфигурационного файла php.ini.
Директива, дающая право заключать код php в короткие тэги:

Short_open_tag = On

Включив эту директиву, вы сможете заключать код в такие теги «», вместо таких ««.

Для облегчения отладок сценария можно включить вывод ошибок непосредственно в ваш браузер:

Display_errors = On

Показывать все ошибки, кроме замечаний:

Error_reporting = E_ALL & ~E_NOTICE

Запись ошибок в файл журнала, которую, однако, лучше отключить для локального использования:

Log_errors = Off

Порядок, в котором PHP будет регистрировать перменные (E — встроенные переменные, G — GET переменные, P — POST переменные, C — Cookies, S — сессии). Отсутствие какой-либо из букв не позволит вам работать с соответствующими переменными, поэтому необходимо задать следующий порядок:

Variables_order = "EGPCS"

Возможность обращения к переменным, поступающим через GET/POST/Cookie/сессии, как к обычным переменным (например, «$переменная»), так как обращаться к этим переменным можно было только через суперглобальные массивы. Включать рекомендуется только в специфичных случаях (например, «$_POST[‘переменная’]):

Register_globals = On

Отключение автоматической обработки кавычек, поступающих через POST/GET/Cookie:

Magic_quotes_gpc = Off

Настройки загрузки файлов

Директива, разрешающая загрузку файлов:

File_uploads = On

Upload_tmp_dir = C:\Temp\uploadtemp

Максимальный размер файла, загружаемого вами:

Upload_max_filesize = 3M

Динамически загружаемые расширения

Путь к папке с расширениями :

Extension_dir = extensions

или абсолютный:

Extension_dir = C:\Server\PHP\extensions

Подключение динамических библиотек. Рекомендуется включать только нужные вам библиотеки. Для того, чтобы подключить ту или иную библиотеку, можно просто раскомментировать строчку. Например, для подключения графической библиотеки GD, раскомментируйте следующую строку:

Extension=php_gd2.dll

Настройка SMTP-сервера

Используемый SMTP-сервер:

SMTP = localhost

Smtp_port = 25

Адрес, который будет указываться в поле «From» в :

Sendmail_from = [email protected]

Настройка MySQL

Все мы работаем с разными версиями PHP, поэтому и настраивать их надо по-разному. В более поздних версиях PHP есть поддержка встроенной в ядро БД MySQL, а в более ранних — нету. Так что, если в архиве с расширениями, который вы скачали, нет библиотеки «php_mysql.dll», то ваша версия PHP поддерживает MySQL, если же эта библиотека присутствует, то вам нужно ее подключить:

Extension=php_mysql.dll

Указание порта:

Mysql.default_port = 3306

и хоста MySQL по умолчанию

Mysql.default_host = localhost

Настройка сессий

Хранить данные сессий в файлах:

Session.save_handler = files

Папка для хранения файлов сессий (не забудте создать этот каталог!):

Session.save_path = C:/Temp/session

Использовать cookie в сессиях:

Session.use_cookies = 1

Исользовать в качестве имени сессии и сессионной cookie ID сессии:

Session.name = PHPSESSID

Запрет на инициализацию сессии при начале соединения:

Session.auto_start = 0

Время жизни сессионных cookie («0» — до закрытия окна браузера):

Session.cookie_lifetime = 0

Session.use_trans_sid = 1

Настройка PHP завершена. Вам необходимо перезапустить Apache для того, чтобы изменения вступили в силу.
Были использованы материалы с тематического сайта codenet.ru.

Дальше мы установим PHP и настроим веб-сервер на его использование. Распаковываем zip-архив (php-5.2.9-Win32.zip ) в удобную для вас папку (лучше всего в C:\php 5; я буду следовать в статье тому, что распаковка была именно сюда, поэтому, если у вас PHP в другом месте, то, соответственно, далее используйте ваш каталог). Заходите в эту папку и переименуйте файл php.ini-dist в php.ini . Открывайте это файл блокнотом или любым текстовым редактором. Я считаю, что стандартные настройки достаточно хороши, надо только исправить несколько директив. Сначала надо выбрать место на диске где будут храниться документы сервера, то есть HTML-, PHP-файлы и т.д. В предыдущей статье, об установке Apache , мы выбрали каталог C:\www\htdocs . Тогда нам необходимо в файле php.ini исправить директиву

Doc_root =

Doc_root = "C:\www\htdocs"

Также обязательно исправить extension_dir с

Extension_dir = "./"

;extension=php_mysql.dll ;extension=php_mysqli.dll

Если вы планируете использовать ещё какие-то модули, то раскомментируйте и их тоже. Вот список основных модулей:

;extension=php_bz2.dll — для работы с bz2-архивами (распаковка/упаковка средствами скриптов) ;extension=php_curl.dll — это curl-расширение; с помощью него можно, например, из скрипта послать POST-запрос к другому скрипту;extension=php_exif.dll — для работы с дополнительной информацией в файлах фотографий;extension=php_gd2.dll — графическая библиотека для генерации рисунков скриптами;extension=php_mbstring.dll — это библиотека для работы с многобайтовыми (в кодировке Unicode) строками, настоятельно советую подключить, иначе некоторые CMS могут не работать;extension=php_msql.dll — для работы с БД mSQL ;extension=php_mssql.dll — для работы с Microsoft SQL Server ;extension=php_mysql.dll — стандартная библиотека MySQL; для версий MySQL 5 и старше лучше использовать модуль mysqli ;extension=php_mysqli.dll — улучшенная (MySQL Improved) библиотека для работы с MySQL. Для работы с MySQL5 лучше использовать именно её ;extension=php_pdo.dll — этот модуль, а также все модули PDO обеспечивают унифицированный интерфейс ко многим базам данных. Но в частности это полезно тем, что это (насколько я знаю, по крайней мере из стандартных) единственный способ работать с базами SQLite 3 ;extension=php_pgsql.dll — для работы с СУБД PostgreSQL ;extension=php_sockets.dll — модуль для работы с сокетами из скриптов;extension=php_sqlite.dll — для работы с бессерверной БД SQLite. В этом модуле поддерживается только 2 версия файлов баз данных;extension=php_zip.dll — для работы с zip-архивами (то же самое что и для bz2)

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

Extension=php_gd2.dll extension=php_mbstring.dll

На этом редактирование php.ini завершаем (не забудьте сохранить изменения!). Теперь из каталога C:\php5 в каталог C:\WINNT\System32 скопируйте файл libmysql.dll. Он нужен для работы PHP с MySQL . Или добавте через точку с запятой путь C:\php5 в переменную path - Свойства системы -> Дополнительно -> Переменные среды -> Path . Чтобы изменения, в этом случае, вступили в силу - нужно перегрузить компьютер.

Переходите в каталог C:\Program files\Apache2.2\conf и открывайте в текстовом редакторе файл httpd.conf.

Раскомментируем добавленные в предыдущей статье строки:

LoadModule php5_module "c:/php/php5apache2_2.dll" PHPIniDir "C:/WINNT"

Всё, веб-сервер и PHP сконфигурированы для работы вместе. Обязательно перезагрузите веб-сервер , чтобы PHP заработал! Для этого используйте Монитор Apache (значок пера с зелёной стрелкой в системном трее)

Скорее всего при работе со скриптами вам потребуется изменить следующие настройки в php.ini:

1. При установке скрипта иногда появляется такая ошибка:

Fatal error: Maximum execution time of 30 seconds exceeded in C:\блаблабла\файл.php on line 360

Исправить это можно изменив max_execution_time в php.ini

Max_execution_time = 60 ; Maximum execution time of each script, in seconds

на большее значение

Max_execution_time = 180

2. Если через скрипт будут загружаться большие файлы, к примеру, аудио и видео файлы, то нужно увеличить значение параметра upload_max_filesize до планируемого вами размера файлов

; Maximum allowed size for uploaded files. upload_max_filesize = 100M

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

Скачайте с официального сайта PHP http://www.php.net дистрибутив (у меня - php 5.1.6 ). Распакуйте архив в каталог C:\Program Files\php . Найдите конфигурационный файл php.ini , содержащий настройки интерпретатора PHP , и внесите в него следующие изменения:

Директива register_globals в php 5.1.6 по умолчанию включена (рекомендуется ):

register_globals = on

Установите максимальный объем данных, отправляемых методом POST , равным 16М :

post_max_size = 16M

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

;include_path = ".;c:\php\includes"

раскомментируйте ее (для чего удалите символ точки с запятой ; в начале строки ) и исправьте на:

include_path = ".;C:\Program Files\PHP\PEAR"

Необходимо установить параметр extension_dir равным той директории, в которой находится дистрибутив PHP :

Extension_dir = "C:/Program Files/php/ext"

Установите максимальный размер закачиваемых файлов равным 16М :

upload_max_filesize = 16M

Параметру doc_root надо передать значение директивы DocumentRoot Web-сервера:

doc_root = "d:/main/html"

Если необходимо использование расширений PHP , уберите комментарий (символ точки с запятой ; ) у строк:

; extension = php*.dll
.
.
.
; extension = php*.dll

Следующих расширений достаточно для полноценной работы PHP :

Php_mbstring.dll – библиотека предназначена для работы с много-байтными кодировками, к которым относятся кодировки восточных языков (японский, китайский, корейский ), Юникод (UTF-8 ) и др.

php_bz2.dll – расширение служит для создания и распаковывания архивов в формате bzip2 .

Php_curl.dll – позволяет соединяться и работать с серверами с помощью различных интернет-протоколов.

Php_gd2.dll – расширение позволяет работать с графикой.

Php_mysql.dll – библиотека необходима для работы с сервером MySQL .

Php_mysqli.dll – библиотека является расширением php_mysql.dll . Она содержит дополнительные функции PHP для работы с сервером MySQL версии 4.1.3 и выше.

Параметр

error_reporting = E_ALL & ~E_NOTICE

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

Но PHP 5 (в отличие от предыдущих версий ) не выводит ряд ошибок в окно браузера (в связи с требованиями безопасности ).

Просмотреть всю информацию об ошибках можно в log-файлах. Для ее размещения в них необходимо, чтобы параметр log_errors имел значение On :

log_errors = On

Для отладки Web-приложений с выводом сообщений об ошибках в окно браузера, следует установить параметр display_errors:

display_errors = On

Присвоение параметрам display_errors и log_errors значения off позволяет запретить вывод сообщений об ошибках в окно браузера и log-файл соответственно.

Директива

e r r o r _l o g = syslog

позволяет регистрировать ошибки в системном журнале Windows.


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

session.save_path = "F:/main/tmp"

и укажите путь к папке для хранения временных файлов. У меня это папка Temp на диске C :

session.save_path = "C:/Temp"

Для хранения временных файлов сессий можно создать отдельную папку Temp в каталоге php . Тогда:

session.save_path = "C:/Program Files/php/Temp"

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

AddType application/x-httpd-php phtml php

Options ExecCGI

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

Теперь необходимо перезапустить сервер Apache и проверить работу PHP .

Для этого в директории d:/main/html следует создать файл test.php . Для создания PHP-файла можно воспользоваться текстовым редактором Блокнот , в котором следует написать любой небольшой скрипт, например:

Если при наборе в адресной строке браузера запроса http://localhost/test.php появится строка

Hello, PHP!

То установка прошла успешно!

Если вы установили PHP как модуль Apache , перед вами открываются дополнительные возможности: вы можете задавать значения некоторых директив прямо в файлах httpd.conf или .htaccess . В силу специфики синтаксиса файлов конфигурации Apache, для отделения имени директивы и ее значения нужно использовать пробел, а не знак =. Кроме того, имена директив PHP должны быть предварены префиксом php_ . Например, директива из php.ini auto_prepend_file=top.html будет выглядеть в httpd.conf или .htaccess так: php_auto_prepend_file top.html.

Приведенного листинга с комментариями должно быть вполне достаточно для понимания роли большинства директив PHP.

Файл php.ini

;;;;;;;;;;;;;;;;;
; Об этом файле;
;;;;;;;;;;;;;;;;;

; Этот файл содержит большинство установок PHP. Чтобы PHP смог его
; обнаружить, он должен называться "php.ini". Интерпретатор ищет файл в
; текущем каталоге, в случае неудачи - в каталоге, указанном в
; переменной окружения PHPRC, и, наконец, в каталоге, заданном при
; компиляции и сборке PHP (именно в таком порядке).
; В системе Windows путь, указанный при компиляции PHP,
; соответствует каталогу Windows (в большинстве случаев это
; c:\windows). Папка, в которой будет производиться поиск файла
; "php.ini", может быть также определена с использованием ключа –c
; командной строки.
;
; Синтаксис файла крайне прост. Пробельные символы (то есть, пробелы,
; символы табуляции и т. д.), строки, начинающиеся с точки с запятой (;)
; игнорируются (как вы, наверное, уже догадались). Заголовки секций
; (например, ) также пропускаются, но, возможно, будут учитываться
; в будущих версиях PHP.
;
; Директивы задаются примерно так:
; directive=value
; Имена директив чувствительны к регистру символов - foo=bar не то же
; самое, что FOO=bar.
;
; Значение value может быть строкой, числом, константой PHP (например,
; E_ALL или M_PI), одной из INI-констант (On, Off, True, False, Yes, No
; или None), выражением (например, E_ALL & ~E_NOTICE), а также строкой
; в кавычках ("foo").
;
; В выражениях могут использоваться только побитовые и логические
; операторы, а также скобки:
; | поразрядное ИЛИ (OR)
; & поразрядное И (AND)
; ~ поразрядное НЕ (NOT)
; ! логическое отрицание (NOT)
;
; В качестве логических флагов со значением "истина" могут быть
; использованы значения 1, On, True или Yes. Значение "ложь" дают 0, Off,
; False и No.
;
; Пустая строка может быть задана, если "не указать ничего" после знака
; равенства, или же указать слово None:
; foo= ; устанавливаем foo равным пустой сторке
; foo=none ; аналогично
; foo="none" ; устанавливаем foo равным строке "none"
;
; Если вы используете константы в качестве части значения директивы и эти
; константы определяются в каком-нибудь динамически загружаемом
; расширении (модуле PHP или Zend), вы можете указывать их только после
; строки, которая загружает расширение.
;
; Все значения в файле php.ini-dist соответствуют встроенным значениям
; по умолчанию. Если php.ini не задействуется, или же вы удалите из него
; некоторые строки, будут установлены значения по умолчанию.

;;;;;;;;;;;;;;;;;;;
; Настройки языка;
;;;;;;;;;;;;;;;;;;;

; Разрешает работу PHP для сервера Apache.
engine=On
; Разрешает использовать короткие тэги , допустим и здесь.
highlight.string=#DD0000
highlight.comment=#FF8000
highlight.keyword=#007700
highlight.bg=#FFFFFF
highlight.default=#0000BB
highlight.html=#000000
; Другие директивы
; Следующая директива указывает, должен ли PHP добавлять заголовок
; X-Powered-by в заголовки, посылаемые браузеру, и, таким образом,
; обнаруживать себя. Это никак не может повлиять на безопасность
; сценария, однако позволяет пользователю определить, использовался
; ли PHP для генерации страницы, или нет.
expose_php=On

;;;;;;;;;;;;;;;;;;;;;;;;
; Ограничения ресурсов;
;;;;;;;;;;;;;;;;;;;;;;;;

; Максимальное возможное время выполнения сценария в секундах. Если
; сценарий будет выполняться дольше, PHP принудительно завершит его.
max_execution_time=30
; Максимальный объем памяти, выделяемый сценарию (8MB)
memory_limit=8M


; Обработка ошибок и подключений;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Директива error_reporting должна задаваться в виде битового
; поля. Его значение можно устанавливать с помощью следующих констант,
; объединенных оператором | (OR):
; E_ALL - Все предупреждения и ошибки.
; E_ERROR - Критические ошибки времени выполнения.
; E_WARNING - Предупреждения времени выполнения.
; E_PARSE - Ошибки трансляции.
; E_NOTICE - Замечания времени выполнения (это такие
; предупреждения, которые, скорее всего,
; свидетельствуют о логических ошибках в
; сценарии, - например, использовании
; неинициализированной переменной).
; E_CORE_ERROR - Критические ошибки в момент старта PHP.
; E_CORE_WARNING - Некритические предупреждения во время старта PHP.
; E_COMPILE_ERROR - Критические ошибки времени трансляции.
; E_COMPILE_WARNING - Предупреждения времени трансляции.
; E_USER_ERROR - Сгенерированные пользователем ошибки.
; E_USER_WARNING - Сгенерированные пользователем предупреждения.
; E_USER_NOTICE - Сгенерированные пользователем замечания.
; Пример:
; показывать все ошибки, за исключением замечаний
; error_reporting = E_ALL & ~E_NOTICE
; показывать только сообщения об ошибках
; error_reporting=E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR
; отображать все ошибки, предупреждения и замечания
error_reporting= E_ALL
; Печать ошибок и предупреждений прямо в браузер.
; Для готовых сайтов рекомендуется отключать следующую директиву и
; использовать вместо нее журнализацию (см. ниже). Включенная директива
; display_errors в "рабочих" сайтах может открыть доступ пользователю к
; секретной информации: например, полному пути к документу, используемой
; базе данных и т. д.
display_errors=On
; Даже если display_errors включена, ошибки, возникающие во время старта
; PHP, не отображаются. Рекомендуется устанавливать следующую директиву
; в выключенное состояние, за исключением случая, когда вы применяете
; ее при отладке.
display_startup_errors=On
; Сохранять ли сообщения об ошибках в файле журнала. Журнал может
; определяться настройками сервера, быть связанным с потоком stderr
; или же задаваться директивой error_log, описанной ниже. Как уже было
; сказано, в коммерческих проектах желательно использовать именно
; журнализацию, а не отображать ошибки в браузер.
log_errors=Off
; Сохранять ли последнее сообщение об ошибке или предупреждение в
; переменной $php_errormsg
track_errors=On
; Строка, которая выводится перед сообщением об ошибке.
;error_prepend_string=""
; Строка, которая отображается после сообщения.
;error_append_string=""
; Раскомментируйте, чтобы вести журнал в указанном файле.
;error_log=filename;
; Раскройте, чтобы использовать системный журнал.
;error_log=syslog
; Предупреждать, когда оператор + применяется к строкам.

;;;;;;;;;;;;;;;;;;;;
; Обработка данных;
;;;;;;;;;;;;;;;;;;;;

; Замечание: track_vars всегда включена, начиная с PHP 4.0.3.
; Следующая директива определяет, в каком порядке PHP будет
; регистрировать данные, полученные методами GET, POST, а также
; переменные окружения и встроенные переменные (соответственно, значение
; задается буквами G, P, C, E и S, например, EGPCS или GPC). Регистрация
; производится на основе чтения этой строки слева направо, новые значения
; переопределяют старые.
variables_order="EGPCS"
; Должен ли PHP регистрировать EGPCS-переменные как глобальные
; переменные. Возможно, вы захотите отключить эту возможность, если не
; хотите "засорять" глобальную область видимости сценария. Это имеет
; смысл, если вы используете директиву track_vars - в этом случае вы
; можете получить доступ к GPC-данным через массив $HTTP_???_VARS.
; Желательно так писать сценарии, чтобы они по возможности
; старались обходиться без директивы register_globals. Использование
; данных, поступивших из формы, как глобальных переменных, потенциально
; может породить проблемы в защите сценария, если программист не особенно
; позаботится об их устранении.
register_globals=On
; Следующая директива указывает PHP, обязан ли он создавать переменные
; $argv и $argc на основе информации, поступившей методом GET. Если вы не
; используете эти переменные, отключите директиву register_argc_argv для
; небольшого убыстрения работы PHP.
register_argc_argv=On
; Максимальный размер данных POST, который PHP сможет принять.
post_max_size=8M
; Следующая директива устарела - используйте variables_order.
gpc_order="GPC"
; Автоматическая обработка кавычек и апострофов:
; использовать ли автокавычки для входящих GET/POST/Cookie данных
magic_quotes_gpc=Off
; заключать ли данные в автокавычки во время выполнения, например,
; для данных из SQL, exec() и т. д.
magic_quotes_runtime=Off
; Нужно ли PHP оформлять автокавычки в стиле Sybase-style (заменять "
; на "", а не на \")
magic_quotes_sybase=Off
; Следующие директивы указывают PHP, содержимое каких файлов он должен
; обрабатывать до и после вывода сценария.
auto_prepend_file=
auto_append_file=
; Начиная с версии 4.0b4, PHP всегда сообщает браузеру об используемой
; кодировке в заголовке Content-type. Для того чтобы запретить это,
; просто установите следующую директиву пустой. По умолчанию
; используется text/html без указания кодировки.
default_mimetype="text/html"
;default_charset="iso-8859-1"

;;;;;;;;;;;;;;;;;;;
; Пути и каталоги;
;;;;;;;;;;;;;;;;;;;

; Для UNIX: "/path1:/path2".
; Для Windows: "\path1;\path2"
include_path=
; Корневой каталог для PHP-сценариев.
; Игнорируется, если значение равно пустому "".
doc_root=
; Каталог, который PHP использует при открытии сценария вида
; /~username. Не оказывает действия, если значение равно "".
user_dir=
; Каталог, в котором хранятся динамически загружаемые расширения.
extension_dir=C:/Program Files/PHP4/extensions
; Следующая директива разрешает или запрещает использование функции dl().
; Функция dl() работает неправильно в многопоточных Web-серверах,
; например, в IIS или Zeus, и автоматически отключается для них.
enable_dl=On

;;;;;;;;;;;;;;;;;;
; Закачка файлов;
;;;;;;;;;;;;;;;;;;

; Разрешает PHP обрабатывать закачку файлов
file_uploads=On
; Каталог для временных файлов, в который PHP помещает закачанные
; файлы (используется системный временный каталог, если в директиве
; указана пустая строка)
;upload_tmp_dir=
; Максимальный размер закачанного файла
upload_max_filesize=2M


; Динамически загружаемые расширения;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Если вы хотите, чтобы какие-то модули загружались автоматически,
; задавайте директиву extension в формате:
; extension=modulename.extension
; Например, для Windows:
; extension=msql.dll
; или для UNIX:
; extension=msql.so
; Должно быть указано только имя, без пути. Чтобы задать
; каталог, в котором расположены расширения, используйте директиву
; extension_dir, описанную выше.
; Модули для Windows
; Замечание: поддержка MySQL и ODBC теперь включена в ядро PHP, так что
; для нее уже не нужны никакие библиотеки DLL.
;extension=php_cpdf.dll
;extension=php_cybercash.dll
;extension=php_db.dll
;extension=php_dbase.dll
;extension=php_domxml.dll
;extension=php_dotnet.dll
;extension=php_exif.dll
;extension=php_fdf.dll
;extension=php_gd.dll
;extension=php_gettext.dll
;extension=php_ifx.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_java.dll
;extension=php_ldap.dll
;extension=php_mhash.dll
;extension=php_mssql65.dll
;extension=php_mssql70.dll
;extension=php_oci8.dll
;extension=php_oracle.dll
;extension=php_pdf.dll
;extension=php_pgsql.dll
;extension=php_sablot.dll
;extension=php_swf.dll
;extension=php_sybase_ct.dll
;extension=php_zlib.dll

;;;;;;;;;;;;;;;;;;;;;;;;;
; Установки для модулей;
;;;;;;;;;;;;;;;;;;;;;;;;;

; Нужно или нет определять различные переменные Syslog, такие как
; $LOG_PID, $LOG_CRON и т. д. Для ускорения работы рекомендуется
; выключать следующую директиву. Во время выполнения сценария вы
; можете включить или выключить директиву путем вызова
; функции define_syslog_variables().
define_syslog_variables=Off

; Только для Win32 - используемый SMTP-сервер.
SMTP=mail.mail.zz
; Только для Win32 - поле From: по умолчанию.
sendmail_from= [email protected]
; Только для UNIX - задает путь и аргументы программы sendmail (по
; умолчанию - "sendmail -t -i").
;sendmail_path=

;debugger.host=localhost
;debugger.port=7869
;debugger.enabled=False

; Следующие директивы используются сценарием-примером.
; При потребности в детальном описании см. examples/README.logging.
;logging.method=db
;logging.directory=/path/to/log/directory

;java.class.path=.\php_java.jar
;java.home=c:\jdk
;java.library=c:\jdk\jre\bin\hotspot\jvm.dll
;java.library.path=.\

sql.safe_mode=Off

;uodbc.default_db=Not yet implemented
;uodbc.default_user=Not yet implemented
;uodbc.default_pw=Not yet implemented
; Разрешает или запрещает устойчивые соединения
uodbc.allow_persistent=On
; Проверка доступности соединения перед его использованием.
uodbc.check_persistent=On
; Макс. число устойчивых соединений. -1 означает, что ограничений нет.
uodbc.max_persistent=-1
; Макс. число соединений (устойчивых + неустойчивых).
uodbc.max_links=-1
; Установки для LONG-полей.
uodbc.defaultlrl=4096
; Установки для бинарных данных. 0 означает режим passthru, 1 – режим
; as is, 2 – преобразование в символы.
uodbc.defaultbinmode=1
; См. документацию по odbc_binmode и odbc_longreadlen для более
; детального разъяснения смысла директив uodbc.defaultlrl и
; uodbc.defaultbinmode.

mysql.allow_persistent=On
mysql.max_persistent=-1
mysql.max_links=-1
; Порт по умолчанию для функции mysql_connect(). Если не задан, функция
; попытается использовать переменную $MYSQL_TCP_PORT или запись mysql-tcp
; в /etc/services, а также заданную во время компиляции PHP константу
; MYSQL_PORT (именно в таком порядке). К PHP для Win32 применимо только
; последнее.
mysql.default_port=
; Определяет имя сокета для локальных соединений MySQL. Если он не задан,
; использует встроенное значение по умолчанию.
mysql.default_socket=
; Хост по умолчанию для mysql_connect() (не работает в безопасном
режиме).
mysql.default_host=
; Пользователь по умолчанию (не работает в безопасном режиме).
mysql.default_user=
; Пароль по умолчанию (не работает в безопасном режиме).
; Замечание: идея хранить пароль в этом файле просто отвратительна. Любой
; пользователь, который может запускать PHP, сможет узнать пароль путем
; выполнения:
; echo cfg_get_var("mysql.default_password")
; Конечно, узнать пароль сможет также и пользователь, который имеет права
; на чтение для файла php.ini.
mysql.default_password=

msql.allow_persistent=On
msql.max_persistent=-1
msql.max_links=-1

pgsql.allow_persistent=On
pgsql.max_persistent=-1
pgsql.max_links=-1

sybase.allow_persistent=On
sybase.max_persistent=-1
sybase.max_links=-1
;sybase.interface_file="/usr/sybase/interfaces"
; Максимальный уровень серьезности отображаемых ошибок.
sybase.min_error_severity=10
; Минимальный уровень серьезности отображаемых ошибок.
sybase.min_message_severity=10

; Если следующая директива установлена в On, PHP будет автоматически
; присваивать тип результату на основе его типа в Sybase, вместо того,
; чтобы преобразовывать полученные значения в строки. Этот режим
; совместимости, возможно, в будущем не будет поддерживаться, так что
; лучше исправьте свои сценарии, если вам он нужен.
sybase.compatability_mode=Off

sybct.allow_persistent=On
sybct.max_persistent=-1
sybct.max_links=-1
sybct.min_server_severity=10
sybct.min_client_severity=10

; Число десятичных цифр для всех bcmath-функций.
bcmath.scale=0

; browscap=extra/browscap.ini

ifx.default_host=
ifx.default_user=
ifx.default_password=
ifx.allow_persistent=On
ifx.max_persistent=-1
ifx.max_links=-1
; Если следующая директива установлена в On, выражение select возвращает
; содержимое поля типа text blob вместо его идентификатора.
ifx.textasvarchar=0
; Заставляет команду select возвращать значение поля типа byte blob
; вместо его идентификатора.
ifx.byteasvarchar=0
; Принуждает PHP удалять завершающие пробелы из колонок с типом char
; фиксированного размера. Может помочь пользователям Informix SE.
ifx.charasvarchar=0
; Если установлена, содержимое полей text и byte сохраняется в файле,
; вместо того, чтобы храниться в памяти.
ifx.blobinfile=0
; Если установлена в 0, значения NULL возвращаются как пустые строки,
; иначе они возвращаются как строки "NULL".
ifx.nullformat=0

; Определяет режим хранения данных сессий.
session.save_handler=files
; Следующая директива задает аргумент, передаваемый save_handler-у.
; В случае режима сохранения в файлах здесь должен указываться каталог,
; в который будут помещены файлы сессий.
session.save_path=C:\Program Files\PHP4\sessiondata
; Должен ли PHP использовать Cookies.
session.use_cookies=1
session.name=PHPSESSID
; Инициализировать ли сессии при старте.
session.auto_start=0
; Время жизни Cookie для сессии. Если до закрытия браузера, то 0.
session.cookie_lifetime=0
; Путь для Cookie с идентификатором сессии.
session.cookie_path=/
; Домен для Cookie с идентификатором сессии.
session.cookie_domain=
; Функция, используемая для сериализации данных. Значение php задает
; стандартную функцию.
session.serialize_handler=php
; Вероятность того, что при очередном запуске сценария, работающего с
; сессиями, будет вызвана функция "сборки мусора" для очистки сессий,
; которые пользователь уже покинул.
session.gc_probability=1
; После указанного здесь промежутка времени сохраненные
; данные будут удалены автоматически сборщиком мусора.
session.gc_maxlifetime=1440
; Проверять ли HTTP Referer на предмет того, не является ли ID сессии
; "фальшивым".
session.referer_check=
; Указывает, сколько байтов читать из файла.
session.entropy_length=0
;session.entropy_length=16
; Файл, используемый для генерации идентификаторов сессии.
session.entropy_file=
;session.entropy_file=/dev/urandom
; Установите одно из значений nocache, private, public для определения
; аспектов кэширования HTTP.
session.cache_limiter=nocache
; Документ будет считаться устаревшим по истечении заданного
; здесь количества минут
session.cache_expire=180
; Использовать ли поддержку "переходящих" SID. Действует, если PHP был
; скомпилирован с включенной опцией --enable-trans-sid.
session.use_trans_sid=1

;extension=php_mssql.dll
mssql.allow_persistent=On
mssql.max_persistent=-1
mssql.max_links=-1
mssql.min_error_severity=10
mssql.min_message_severity=10
; Режим совместимости со старыми версиями PHP 3.0.
mssql.compatability_mode=Off

;assert.active=On
; Генерирует предупреждения PHP для каждых неудавшихся проверок
; выражений.
;assert.warning=On
; По умолчанию не завершать программу в случае неудачи.
;assert.bail=Off
; Пользовательская функция, которая будет вызвана при неудаче проверки.
;assert.callback=0
; Вычислять выражения в eval с использованием текущих установок
; error_reporting. Установите в true, если вы хотите, чтобы действие
; режима error_reporting(0) было сохранено и при переходе через
; границу eval().
;assert.quiet_eval=0

ingres.allow_persistent=On
ingres.max_persistent=-1
ingres.max_links=-1
; База данных по умолчанию (формат: dbname
ingres.default_database=
ingres.default_user=
ingres.default_password=

pfpro.defaulthost="test.signio.com"
pfpro.defaultport=443
pfpro.defaulttimeout=30
; IP-адрес proxy-сервера по умолчанию (если требуется).
; pfpro.proxyaddress=
; Порт proxy-сервера по умолчанию
; pfpro.proxyport=
; Логин для proxy-сервера по умолчанию
; pfpro.proxylogon=
; Пароль для proxy-сервера по умолчанию
; pfpro.proxypassword=

Данное описание подходит для любой редакции Windows 7/8/8.1.

Установка веб-сервера Apache

Первым делом скачаем дистрибутив Apache с сайта: http://www.apachelounge.com/download/ . В списке дистрибутивов Apache 2.4 binaries VC11 , нам нужно скачать «httpd-2.4.7-win64-VC11.zip».

После того как скачали, открываем архив httpd-2.4.7-win64-VC11.zip

Извлекаем из него папку Apache24 в раздел диска C:\

Теперь нам необходимо немного поправить конфиг, прежде чем устанавливать Apache. Открываем файл httpd.conf (находится здесь: C:\Apache24\conf) желательно через удобный редактор, например notepad++. Находим строку (217) ServerName www.example.com:80 и меняем на ServerName localhost:80

Здесь нам необходимо указать полный путь к файлу httpd.exe, который находится в папке Apache. В нашем случае это C:\Apache24\bin\httpd.exe. Набираем команду C:\Apache24\bin\httpd.exe -k install и жмем Enter.

Если при выполнении программы у вас возникает следующая ошибка: failed to open the winnt service manager perhaps you forgot to log in as administrator, заходим в следующую папку: C:\Users\Здесь_имя_вашего_пользователя\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\System Tools, запускаем командную строку от имени администратора

И повторяем команду установки.

Установка завершена. Откройте директорию bin (полный путь: C:\Apache24\bin\) и запустите файл: ApacheMonitor.exe. В системном трее появится значок Apache, с помощью которого можно быстро запускать/останавливать службу Apache, жмем start (запуск):

Теперь проверим работоспособность. Открываем браузер, и в адресной строке пишем http://localhost/ (можно просто localhost). Если установка выполнилась успешно, должна открыться страница с надписью It works!

Установка PHP (ручная)

Нужен ли нам Apache без PHP ? Конечно нет, это нонсенс! Поэтому далее мы рассмотрим ручную (без использования инсталлятора) установку PHP.

Скачиваем PHP (Zip архив) с сайта: http://windows.php.net/download/ . Нам нужна версия: VC11 x64 Thread Safe .

Содержимое архива распаковываем в директорию C:\PHP (папку PHP создаём сами). Далее в папке C:\PHP находим два файла php.ini-development и php.ini-production. Эти файлы содержат базовые настройки. Первый файл оптимизирован для разработчиков, второй для рабочих систем. Основная разница в настройках: для разработчиков разрешен вывод на экран ошибок, тогда как для рабочих систем вывод ошибок запрещен из соображений безопасности.

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

Продолжаем установку. И так, выбираем нужный вам файл (я выбрал php.ini-development). Выбранный файл нужно будет просто немного переименовать. Правый клик по файлу → Переименовать → стираем «-development», оставляя только php.ini

Теперь открываем php.ini, нам необходимо внести несколько изменений (будьте внимательны при внесении изменений, если в начале строки стоит точка с запятой, ее надо будет убрать):

  • Найти опцию extension_dir (строка 721) и изменить путь к папке ext в соответствии с путем установки PHP. У меня это выглядит так:
    extension_dir = "C:\PHP\ext"
  • Найти опцию upload_tmp_dir (строка 791). Здесь надо указать путь к временной папке. Я выбрал c:\windows\temp. Всё вместе:
    upload_tmp_dir = "C:\Windows\Temp"
  • Найти опцию session.save_path (строка 1369). Здесь также требуется указать путь к временной папке:
    session.save_path = "C:\Windows\Temp"
  • В разделе Dynamic Extensions необходимо раскомментировать несколько строк (убрать точку с запятой в начале), соответствующих модулям PHP, которые могут понадобиться для работы: 866, 873, 874, 876, 886, 895, 900
  • Сохраняем изменения и закрываем.

    Теперь вернемся к настройкам Apache. Нам придется немного отредактировать конфиг Apache. Заходим в папку C:\Apache24\conf и открываем файл httpd.conf.

    Переходим в конец файла и в самом низу добавляем следующие строчки:

    # Charset AddDefaultCharset utf-8 # PHP LoadModule php5_module "C:/PHP/php5apache2_4.dll" PHPIniDir "C:/PHP" AddType application/x-httpd-php .php

    Путь к папке php указываете тот, который вы выбрали в процессе установки (если вы устанавливали в другую директорию).

    В этом же файле находим следующие строки (строки примерно 274-276):

    DirectoryIndex index.html

    Перед index.html дописываем через пробел index.php. В итоге получается:

    DirectoryIndex index.php index.html

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

    Чтобы нам убедиться в работоспособности PHP, откройте папку C:\Apache24\htdocs (здесь содержатся файлы веб-сайта по умолчанию). Создайте в этой папке файл index.php со следующим содержанием:

    Теперь откройте в браузере http://localhost/ (или просто localhost). Если все прошло нормально, вы увидите похожую страницу:

    Если у вас вместо страницы с инфомацией о php открылась страница с надписью «It works!», тогда просто нажмите обновить страницу.

    Установка MySQL

    Открываем страницу загрузки дистрибутива: http://dev.mysql.com/downloads/installer/5.6.html и скачиваем Windows (x86, 32-bit), MSI Installer 5.6.16 250.8M. После нажатия на кнопку Download вы увидите форму для регистрации, ее можно пропустить нажав на ссылку внизу (» No thanks, just start my download!).

    Запускаем установщик, после небольшой загрузки видим следующее окно:

    Нажимаем Install MySQL Products, появляется следующее окно, в котором мы принимаем лицензионное соглашение (ставим галочку) и жмем Next >

    Следующее окно нам предлагает проверить, есть ли более новая версия MySQL, ставим галочку Skip... (пропустить) и нажимаем Next >

    В следующем окне нам предлагают выбрать тип установки, выбираем Custom и жмем Next >:

    В следующем окне нам предоставляется возможность выбратьнеобходимые компоненты: убираем галочку с MySQL Connectors, в Application убираем галочку с MySQL Workbench CE 6.0.8 и MySQL Notifier 1.1.5, в MySQL Server 5.6.16 убираем галочки с Development Components и Client C API library (shared) и жмем Next >

    Следующее окно нам сообщает что именно будет установлено, просто нажимаем Execute

    После успешной установки жмем Next >

    Вследующем окно нам сообщается о том, что далее мы немного настроим наш сервер, жмем Next >

    В первом окне настрокйки, устанавливаем галочку Show Advanced Options, остальное оставляем как есть и жмем Next >

    В следующем окне нам предлагается установить пароль администратора (root). Этот пароль лучше не терять! Устанавливаем пароль и жмем Next >

    В следующем окне стираем в поле ввода цифры 56, остальное оставляем как есть и жмем Next >

    Жмем Next >

    Жмем Next >

    Осталось проверить успешно ли прошла установка. (win 8): Заходим в меню пуск → переходим к приложениям (стрелочка вниз) → находим MySQL5.6 Command Line Client (терминал для работы с MySQL в командной строке) → открываем его. Далее вводим пароль администратора (root). Если пароль правильный, вы попадете в командную строку (mysql>). Введите команду: show databases; (точка с запятой на конце обязательна). В результате вы должны увидеть список баз данных (как минимум две - information_schema и mysql). Это означает, что сервер работает правильно. Закрываем командную строку выполнив команду exit.

    Добавьте в файл C:\Windows\System32\drivers\etc\hosts строчку: 127.0.0.1 localhost. В этом же файле удалите или закомментируйте (поставить знак # в начале строки) строку::1 localhost (если она изначально закомментирована, то не надо ничего с ней делать).

    Установка и базовая настройка phpMyAdmin

    Открываем страницу загрузки http://www.phpmyadmin.net/home_page/downloads.php и выбираем для скачивания архив оканчивающийся на *all-languages.7z или *all-languages.zip (на момент написания статьи последняя версия была phpMyAdmin 4.1.9). Создаем папку phpmyadmin в C:\Apache24\htdocs и извлекаем туда файлы скаченного архива.

    Проверим как оно работает. Открываем браузер и переходим по адресу http://localhost/phpmyadmin/ . Должно открыться такое окно:

    Теперь нам необходимо создать конфигурационный файл для MySQL. Заходим в папку phpmyadmin и создаем там папку config. Открываем в браузере следующий адрес: http://localhost/phpmyadmin/setup/

    Теперь, чтобы настроить параметры подключения к MySQL, нажимаем на кнопку «Новый сервер», нам открывается новое окно, в графе «Хост сервера» localhost необходимо заменить на 127.0.0.1:

    Сохраняем настройки (жмем Apply) и нас автоматически вернут на предыдущую страницу. Выбираем язык по умолчанию - Русский, сервер по умолчанию - 127.0.0.1, конец строки - Windows. Внизу нажимаем Сохранить и затем Скачать.

    Полученный файл (config.inc.php) сохраняем в корень установки phpMyAdmin (C:\Apache24\htdocs\phpmyadmin). Закрываем страницу, она нам больше не понадобится.

    На этом все. Возвращаемся на страницу http://localhost/phpmyadmin/. Теперь можно авторизоваться в системе под пользователем root (пароль вводите тот, который указывали при настройке MySQL для пользователя root). Тестируем подключение к MySQL. Если все прошло успешно (вы смогли войти в phpMyAdmin), папку config из папки phpmyadmin удаляем.