Покрокова інструкція з налаштування 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 - графічна бібліотека для генерації малюнків скриптами; - це бібліотека для роботи з багатобайтовими (у кодуванні Unicode) рядками, настійно раджу підключити, інакше деякі CMS можуть не працювати; extension = php_msql.dll - для роботи з БД mSQL; 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. При встановленні скрипту іноді з'являється така помилка:

Помилковий 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 дозволений розмір для завантажених файлів. 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

Наступних розширень достатньо для повноцінної роботи 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.

Якщо при виконанні програми у вас виникає наступна помилка: Запустимо в наступну папку: 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

  • Знайти опцію 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 shared) і тиснемо Next >

    Наступне вікно нам повідомляє, що саме буде встановлено, просто натискаємо Execute

    Після успішного встановлення тиснемо Next >

    Наступне вікно нам повідомляється про те, що далі ми трохи налаштуємо наш сервер, тиснемо Next >

    У першому вікні налаштування, встановлюємо галочку Show Advanced Options, решту залишаємо як є і тиснемо.

    У наступному вікні пропонується встановити пароль адміністратора (root). Цей пароль краще не втрачати! Встановлюємо пароль і тиснемо Next >

    У наступному вікні стираємо в поле введення цифри 56, решту залишаємо як є і тиснемо.

    Тиснемо 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:Apache24htdocsphpmyadmin). Закриваємо сторінку, вона нам більше не знадобиться.

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