Встановлення Apache, PHP, MySQL. Встановлення та налаштування PHP Підключаємо конфігураційний файл

Здрастуйте, мої дорогі читачі! Дуже сподіваюся, що ця стаття буде корисною не тільки недосвідченим користувачам мережі, але й досвідченим користувачам, які заплуталися в особливостях різних хостингових систем.

Хочу розповісти, як налаштувати php на . Загалом процес налаштування є коригуванням даних у системному файлі php.ini.

Основні поняття

Рhp.ini– файловий документ, в якому знаходяться директиви (конфігурація та налаштування), які визначають поведінку PHP (зокрема конкретного сайту).

Інтерпретатор– програма, яка рядково читає та виконує програмний код. Спочатку шукає налаштування в рhp.ini. А потім переходить до самої директорії, вказаної в текстовій зміною PHP RС.

Після ручного редагування будь-якого php-файлу важливо не забути залишити його назву незмінною, інакше інтерпретатор не зможе її знайти!

Ця інформація суто узагальнена, практично має бути зрозуміліше.

Вибираємо один із варіантів

Варіант №1 для тих, хто використовує як адміністративну панель з Раnel.

Шукайте в меню розділ «Конфігурація», де опубліковані параметри РНР для хостингу.

Тут можна змінити версію РНР. Є провайдери, які дають практично необмежені можливості користувачам для самостійного налагодження, але є й такі, які дуже суворо контролюють будь-які зміни, і без їхнього відома не можна діяти.

Якщо ваш хостинг дозволяє здійснювати налагодження php, тоді ви щасливчик. Якщо ні, тоді переходимо до варіанта №2 – звернутися за допомогою до служби технічної підтримки.

Покрокова інструкція або перевизначаємо рhр.ini на свій лад

Знаходимо оригінальний файл налаштувань.htaccess і прописуємо до нього такі дані:

chmod 755 php5.fcgi

Ну ось і все, користуємось.

До цієї покрокової інструкції є деякі уточнення. При створенні файлу php5.fcgi слід використовувати поточні опції unix (розрив рядка), тобто прописувати у файлі інформацію з тегом /n. І у разі виникнення помилки 500 слід перевірити файл php-error.log, в якому, швидше за все, і знайдете проблему.

Важливими є ще пара налаштувань:

disable_functions– дозволяє блокувати дзвінок кількох функцій у межах безпечного режиму.

Примітка! Список таких функцій користувач вказує самостійно через кому;

memory_limit– дозволяє налаштувати параметри максимального обсягу пам'яті, необхідного для виконання скриптів.

Ну і насамкінець додам: для того щоб подивитися налаштування та дізнатися версію PHP, потрібно створити php-файл (назва не має значення), в якому слід прописати наступний код:

Ось і все, дерзайте! Не забудьте розповісти друзям у соц. мережах про новий, прочитаний вами матеріал, та підписатися на розсилку повідомлень про редакцію наступної статті. До зустрічі!

З повагою! Абдулін Руслан

Далі ми встановимо 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_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.ini) read when PHP starts up. Для сервера module versions of PHP, це happens тільки once коли web server is started. Для CGI і CLI версій, це happens on every invocation.

php.ini searched for в цих місцях (in order):

  • SAPI module specific location ( PHPIniDir directive in Apache 2, -c Command Line Option in CGI and CLI, php_ini parameter in NSAPI, PHP_INI_PATH environment variable in THTTPD)
  • PHPRC природного середовища. Після PHP 5.2.0, це було зроблено після registru key mentioned below.
  • Як PHP 5.2.0, місцезнаходження php.iniфайл може бути вибраний для різних версій PHP. Увімкнути керування керуваннями кнопок на 32- або 64-bitness ОС і PHP. For 32-bit PHP on a 32-bit OS або 64-bit PHP on a 64-bit OS use [(HKEY_LOCAL_MACHINE\SOFTWARE\PHP] for 32-bit version of PHP on a 64-bit OS use ] instead. Для самої bitness installation following registry keys є examined in order: , and , Де x, y і z за допомогою PHP major, minor and release versions. Для 32 біт версій PHP на 64 біт OS наступні клавіатури керування є виявлені в порядку: , and , Де x, y і z за допомогою PHP major, minor and release versions. If there is a value for IniFilePath in any of these keys, the first one found will be used as the location of the php.ini(Windows лише).
  • or , value of IniFilePath(Windows лише).
  • Current working directory (за винятком CLI).
  • Веб-сервери з directory (для SAPI modules), або directory of PHP (іншіwise в Windows).
  • Windows directory (C:\windows або C:\winnt) (for Windows), or --with-config-file-path compile time option.

Якщо php-SAPI.ini exists (який SAPI використовується в SAPI у використанні, так, для прикладу, php-cli.ini або php-apache.ini), він використовується за допомогою php.ini . SAPI name can be determined with php_sapi_name().

Apache веб-сервер змінює directory до root при startup, спричиняючи PHP до того, щоб виконати php.ini від файлу rootsystem if it exists.

За допомогою навколишнього середовища можуть бути використані в php.ini як показано нижче.

Example #1 php.ini Environment Variables

; PHP_MEMORY_LIMIT is taken from environment memory_limit = $(PHP_MEMORY_LIMIT)

php.ini directives handled by extensions є documented на конкретних сторінках extensions themsselves. List of the core directives is available in the appendix. Не всі PHP напрямки необхідно документовані в цьому manual: для повного набору напрямків доступних у вашій PHP версії, щоб скористатися своїми спільними файлами php.ini. Альтернативно, ви можете пройти з Git helpful too.

Example #2 php.ini example

; any text on a line after an unquoted semicolon (;) is ignored ; section markers (text within square brackets) are also ignored ; Boolean values ​​can be set to either: ; true, on, yes; або false, off, no, none register_globals = off track_errors = yes ; Ви можете написати strings у двосторонніх quotes include_path = ".:/usr/local/lib/php" ; backslashes є treated same as any other character include_path = ".;c:\php\lib"

Since PHP 5.1.0, це може бути refer to existing .ini variables from with .ini files. Example: open_basedir = $(open_basedir) ":/new/dir".

Scan directories

Це можливо для configure PHP для scan for .ini files in directory after reading php.ini . This can be done at compile time by setting the --with-config-file-scan-dir option. У PHP 5.2.0 і в останній час, скануючий directory може бути overridden під час виконання PHP_INI_SCAN_DIR environment variable.

Це може бути спричинене скануванням multiple directories при separation them with platform-specific path separator ( ; на Windows, NetWare and RISC OS; : on all other platforms; the value PHP is using is available as the PATH_SEPARATOR constant). Якщо blank directory is given in PHP_INI_SCAN_DIR , PHP буде також сканувати directory given at compile time via --with-config-file-scan-dir .

Within each directory, PHP will scan all files ending in .iniв alphabetical order. List of the files that were loaded, and in what order, is available by calling php_ini_scanned_files(), or by running PHP with the --ini option.

Assuming PHP is configured with --with-config-file-scan-dir=/etc/php.d, і те, що код separator is:... $ php PHP will load all files in /etc/php.d/* .ini як configuration files. $ PHP_INI_SCAN_DIR=/usr/local/etc/php.d php PHP буде load all files в /usr/local/etc/php.d/*.ini як configuration files. $ PHP_INI_SCAN_DIR=:/usr/local/etc/php.d php PHP буде load all files в /etc/php.d/*.ini, then /usr/local/etc/php.d/*.ini як configuration files . $ PHP_INI_SCAN_DIR=/usr/local/etc/php.d: php PHP буде load all files в /usr/local/etc/php.d/*.ini, then /etc/php.d/*.ini як configuration files .

Changelog

Version Description
7.0.0 Hash marks ( # ) are no longer recognized as comments.
5.3.0 Hash marks ( # ) should no longer be used as comments and will throw a deprecation warning if used.
5.2.0 PHP_INI_SCAN_DIR навколишнє середовище може бути вибрано для сканування сканера directory set через configure script.
5.1.0 Це може бути refer to existing .ini variables from within .ini files.

А сьогодні ми поговоримо про установці PHP. Як і у випадку з Apache, тут немає нічого складного. Якщо ви вперше займаєтесь встановленням та налаштуванням PHPна локальній машині, то вам буде корисно прочитати цей посібник з картинками. Якщо ви вже затятий зубр у цих справах, то можете сміливо пропустити цю нотатку.

Отже, якщо ви читаєте цей пост, то ви вперше встановлюєте PHP, або у вас виникли питання/проблеми в процесі встановлення або налаштування PHP. Я постараюся якнайдокладніше описати цей процес.

Для початку нам потрібен дистрибутив із найсвіжішою версією PHP. Його можна завантажити з офіційного сайту - www.php.net (9.5 Mb).

Завантажуємо дистрибутив на комп'ютер, вибираючи дзеркало, яке географічно найближче до вас перебувати

Виймаємо вміст архіву в папку C:/php5. Знову ж таки, якщо ви вперше встановлюєте зв'язку Apache -PHP- MySQL рекомендую встановлювати за вказаними мною шляхами.

Отже, у C:/php5у вас має бути таке:

Налаштування PHP завершено, тепер займемося його налаштуванням.

Перейменуйте файл php.ini-recommendedв php.ini:

  • вибираємо файл
  • натискаємо F2
  • видаляємо -recommended
  • натискаємо Enter.

Тепер відкриємо файл у блокноті та займемося налаштуванням PHP. Файл містить досить багато налаштувань PHP, але нам вони зараз не потрібні. Ми займемося лише базовим налаштуванням, яке дозволить нам запустити PHP на локальній машині.

Небагато про формат опису у файлі налаштувань

Символ ';' означає, що рядки закоментовані (вони не враховуватимуться). Наприклад:

; ignore_user_abort = On

Як ви могли помітити настройки поділені на групи, для зручності пошуку файлу. Наприклад, налаштування керування обмеженням ресурсів:

;;;;;;;;;;;;;;;;;;;;;;
; Resource Limits;
;;;;;;;;;;;;;;;;;;;;;;

max_execution_time = 30; Maximum execution time of each script, in seconds (Максимальний час виконання скрипта).
max_input_time = 60; Maximum amount of time each script маю spend parsing request data
; max_input_nesting_level = 64; Maximum input variable nesting level
memory_limit = 128M; Максимальна кількість пам'яті пам'яті (128MB) (Максимальна кількість виділеної для скрипту пам'яті).

Формат опису параметрів та їх значень:

ім'я_змінної = її_значення

Налаштування модулів PHP.

Знайдіть секцію Dynamic Extensions(Динамічні розширення). Там представлений великий список модулів для PHP:

;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_exif.dll
;extension=php_fdf.dll
;extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_ifx.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_mbstring.dll
;extension=php_mcrypt.dll
;extension=php_mhash.dll

;extension=php_ming.dll
;extension=php_msql.dll
;extension=php_mssql.dll
;extension=php_mysql.dll
;extension=php_mysqli.dll
;extension=php_oci8.dll
;extension=php_openssl.dll
;extension=php_pdo.dll

;extension=php_pdo_mssql.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_oci8.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll

;extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_soap.dll
;extension=php_sockets.dll
;extension=php_sqlite.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll

При підключенні кожного модуля він займає певну кількість операційної пам'яті. Для роботи ми підключимо тільки ті модулі, які нам точно знадобляться, а решту можна буде підключити при необхідності.

Щоб підключити модуль потрібно видалити перед рядком символ ';'. Тим самим ми розкоментуємо рядок і модуль буде використовуватись.

Давайте підключимо розширення PHP для роботи з графікою - php_gd2.dll(воно нам знадобиться у майбутньому).

Щоб PHP зміг знайти, де лежать розширення, вкажемо шлях до них. Додайте наступний рядок до або після підключення розширень. У результаті у вас має вийти таке:

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions;
;;;;;;;;;;;;;;;;;;;;;;
;
; Якщо ви збираєтеся extension loaded automatically, use the following
; syntax:
;
; extension=modulename.extension
;
; For example, on Windows:
;
; extension=msql.dll
;
; … or under UNIX:
;
; extension=msql.so
;
; Note that it should be the name of the module only; no directory information
; needs to go here. Specify location of the extension with the
; extension_dir directive above.

; Windows Extensions
; Зверніть увагу на те, що ODBC підтримка є будовою, тому що dll не потрібна для нього.
; Зауважте, що багато DLL файлів є розташованими в зонах/ (PHP 4) ext/ (PHP 5)
; extension folders як добре як окремий PECL DLL download (PHP 5).
; Будьте належним чином налаштовані на extension_dir directive.

extension_dir="C:/php5/ext"

;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_exif.dll
;extension=php_fdf.dll
extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_ifx.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_mbstring.dll
;extension=php_mcrypt.dll
;extension=php_mhash.dll
;extension=php_mime_magic.dll
;extension=php_ming.dll
;extension=php_msql.dll
;extension=php_mssql.dll
;extension=php_mysql.dll
;extension=php_mysqli.dll
;extension=php_oci8.dll
;extension=php_openssl.dll
;extension=php_pdo.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_oci8.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_soap.dll
;extension=php_sockets.dll
;extension=php_sqlite.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll
;extension=php_zip.dll

Зберігаємо зроблені нами зміни. Щоб зроблені нами застосувалися, необхідно перезавантажити Apache.

Встановлення та налаштування PHPзавершено!

Як бачите – нічого складного. Якщо в процесі роботи вам знадобляться інші розширення, просто розкоментуйте рядок з потрібним вам розширенням (аналогічно до php_gd2.dll) і перезавантажте Apache.

У наступному пості, я розповім як змусити працювати PHP та Apache у зв'язці.

У цій статті ми розглянемо встановлення та налаштування Web-сервера Apache, PHP 5і СУБД MySQLдля використання їх на локальній машині під операційною системою Windows (2000 та XP). Використання локальних серверів може знадобитися з багатьох причин – вам необхідно вивчити PHP або MySQL, а тестування своїх Web-додатків на хостингу або дорого коштує, або такої можливості взагалі немає. В цьому випадку вам знадобиться зв'язка Apache+PHP+MySQL на локальній машині.

Для початку необхідно роздобути дистрибутиви серверів Apache і MySQL, а також архів PHP. Ми будемо встановлювати та налаштовувати Apache 2, MySQL 4 та PHP 5.

Також можете завантажити з нашого сайту файли php.ini для налаштування PHP та httpd.conf для Apache. Однак, робіть це тільки в крайньому випадку - якщо у Вас нічого не вийшло з "рідними" файлами, які з'явилися під час встановлення програм. Але в будь-якому випадку їх потрібно буде налаштувати під конкретну машину. Завантажити php.ini та httpd.conf

Завантажити Apache можна з дзеркал наведених на офіційному сайті http://www.apache.org/dyn/closer.cgi. При пошуку слід пам'ятати, що Apache може називатися httpd, на ім'я його демона в UNIX. На дзеркалах зазвичай багато різних файлів, наприклад:
httpd-2.0.49-win32-src.zip – це архів з вихідними кодами (src) для Windows (win32) Web-сервера Apache (httpd) версії 2.0.49.
httpd-2.0.49.tar.gz - те саме, але для Linux, в якому програми прийнято поширювати у вихідних кодах.
apache_2.0.50-win32-x86-no_ssl.exe – а ось це, відкомпільований під архітектуру (x86) для Windows (win32) без підтримки SSL(no_ssl) сервер Apache (apache) версії 2.0.50 – ось він і потрібен.

Зауваження

Бінарні коди дистрибутивів Apache поширюються в декількох варіантах, як з розширенням *.exe, так і *.msi і мають назву httpd_версія_win32_*_.msi.

Щоб вам не мучиться, ось ресурс, де можна його взяти: http://apache.rinet.ru/dist/httpd/binaries/win32/
Друга та третя цифра у версії можуть відрізнятися від наведених тут – слід вибирати останню версію, оскільки в ній усунуті помилки виявлені в попередніх версіях.

PHP 5 можна завантажити з нашого сайту.

Дистрибутив MySQL можна завантажити зі сторінки нашого сайту.

Повний довідковий посібник російською мовою можна знайти за адресою .

Після того, як ми запаслися всіма необхідними дистрибутивами, можна приступати до установки. Порядок встановлення Apache, PHP та MySQL не має значення. Почнемо з Web-сервера Apache.

Встановлення Web-сервера Apache

Запустіть інсталятор Web Apache. Результатом буде вікно з ліцензійною угодою, після прийняття якої слід перейти до наступного вікна з короткою інформацією про нововведення в другій версії Apache. Наступне вікно, показане на малюнку, дозволяє ввести інформацію про сервер: доменне ім'я сервера, ім'я сервераі адреса електронної пошти адміністратора. Якщо установка відбувається на локальну машину, то в поля для доменного імені та імені сервера слід ввести localhost(Див. малюнок.). У нижній частині вікна пропонується вибрати номер портуза яким сервер прийматиме запити (80 або 8080).


localhost- це ім'я для використання сервера на локальній машині, яке пов'язане з IP-адресою 127.0.0.1, яка зарезервована для локального використання.

Після цього буде запропоновано спосіб встановлення: стандартний ( Typical) або вибірковий ( Custom), що дозволяє вибрати компоненти сервера вручну. Наступне вікно дозволяє вибрати каталог установки сервера, за замовчуванням це C: Program FilesApache Group, але ми рекомендуємо вибрати інший каталог, наприклад, С: www. Після цього майстер установки повідомить про готовність до процесу встановлення та після натискання кнопки Install, буде зроблено копіювання файлів сервера. Якщо інсталяція пройшла успішно, Windows автоматично запустить Apache.

Після успішної інсталяції під час набору у вікні браузера http://localhost/ або http://127.0.0.1/ - має завантажитися сторінка сервера.

Тепер необхідно навчитися керувати Apache, а саме навчиться запускати, зупиняти та перезапускати сервер. Існує багато способів здійснити ці операції: за допомогою утиліти ApacheMonitor, використовуючи консоль керування сервісів Windows, використовуючи пункти меню Пуск, з командного рядка… Ми розглянемо консоль керування сервісів Windows, що дозволяє налаштувати Apache для автоматичного старту під час запуску системи. Для запуску консолі керування виконайте команду
Пуск->Налаштування->Панель управління->Адміністрація->Служби.
У вікні консолі, що з'явилося, на наведеному нижче малюнку, слід вибрати сервіс Apache2. Контекстне меню, що відкривається після натискання на правій кнопці, дозволяє здійснювати запуск, зупинку та перезапуск сервісу.


Служби Windows дозволяють здійснювати запуск фонових програм під час старту системи. Для цього необхідно перейти у вікно Властивості, вибравши пункт меню сервісу пункт Властивостіі у вікні, що з'явилося, у випадаючому списку " Тип запуску" вибрати пункт " Авто".

Конфігурація Apache

Web-сервер - складний програмний продукт, що працює на різних платформах і в різних операційних системах по всьому світу. Тому для коректної роботи на встановленій системі його потрібно налаштувати (конфігурувати).
За промовчанням налаштування Apache розташовані у файлі httpd.conf у директорії conf. Далі будуть описані основні директиви файлу httpd.conf та їх загальновживані значення.

Шляхи до файлів

У конфігураційних файлах Apache та PHP Вам часто доведеться вказувати шляхи до різних директорій та папок. У операційних системах UNIX і Windows застосовуються різні роздільники каталогів. У UNIX використовується пряма коса риса "/", наприклад /usr/bin/perl, у Windows зворотна, наприклад, c:Apachein. Взагалі, у деяких директивах Apache і PHP працюють обидва види роздільників каталогів: прямий (/) і зворотний (), але так як і Apache і PHP спочатку розроблялися під UNIX, то застосовуючи їх "рідний" формат, Ви зможете уникнути низки проблем . Тому шляхи в настроювальних файлах (httpd.conf і php.ini) рекомендується писати через сліш у форматі UNIX - "/". Наприклад:

ScriptAlias ​​"/php_dir/" "c:/php/"

Директиви файлу httpd.conf

Port

Port 80

Встановлює порт TCP, який використовується Apache для встановлення з'єднання. За замовчуванням використовується 80 портів.

Примітка

Єдина причина використання нестандартного порту - відсутність прав використання стандартного порту. При використанні нестандартного порту, наприклад, номер порту 8080 слід вказувати в адресі, наприклад: http://localhost:8080/.

ServerAdmin

ServerAdmin [email protected]

Містить e-mail-адресу адміністратора web-сервера, яка відображатиметься при помилках роботи сервера.

ServerName

ServerName myserver

Містить ім'я комп'ютера для сервера.

ServerRoot

ServerRoot "C:/Apache2"

Вказує на каталог, який містить файли WEB-сервера Apache.

Примітка

Не плутайте директиву ServerRoot із директивою DocumentRoot, яка вказує каталог для файлів WEB-сайту.

DocumentRoot

DocumentRoot "C:/Apache2/htdocs"

Визначає каталог, в якому розміщено файли WEB-сайту.

Контейнер

Сфера дії директив усередині цього контейнера поширюється на всі файли та підкаталоги всередині DocumentRoot.


Options FollowSymLinks Includes Indexes
AllowOverride All

  • Директива AllowOverride встановлена ​​на All дозволяє перевизначати значення головного конфігураційного файлу httpd.conf у файлах.htaccess.
  • Директива Options FollowSymLinks дозволяє Apache слідувати символічним посиланням.
  • Директива Options Includes дозволяє виконувати директиви SSI (Server Side Includes) у коді сторінок веб-сайту.
  • Директива Options Indexes вказує, що потрібно повертати вміст каталогу, якщо відсутній індексний файл.

DirectoryIndex

DirectoryIndex index.html index.phtml index.php

Містить список індексних файлів, які слід відображати під час звернення до директорії без вказівки імені файлу (наприклад, http://localhost/test/).

AddDefaultCharset

AddDefaultCharset windows-1251

Встановлює стандартне кодування, якщо кодування не встановлено в заголовку HTML-документа. Також Вам може знадобитися вказувати значення кодування KOI8-R.

Створення віртуальних хостів

На одному WEB-сервері Apache можна встановити декілька веб-сайтів. Ця функція сервера називається віртуальним хостингом. Нижче розглянемо створення віртуальних вузлів з урахуванням імен. Віртуальні вузли зазвичай розташовані наприкінці файлу httpd.conf.

Спочатку потрібно вказати, яка IP-адреса використовується для віртуальних хостів.



# Директиви віртуального хоста

Файл httpd.conf. Контейнер


ServerAdmin webmaster@may_domain.ru
DocumentRoot c:/www/mysite
ServerName www.mysite.ru
ServerAlias ​​www.site.ru www.host2.ru
ErrorLog logs/mysite-error.log
CustomLog logs/mysite-access.log common

Розглянемо директиви віртуального вузла:

  • DocumentRoot вказує каталог, де розташовані файли (сторінки) даного віртуального вузла (WEB-сайту)
  • ServerName вказує ім'я віртуального вузла, до якого можна звернутися. В даному випадку, за адресою http://www.mysite.ru/.
  • ServerAlias ​​містить псевдоніми імен віртуального вузла. В даному випадку до віртуального вузла можна звернутися, використовуючи імена: http://www.site.ru/ і http://www.host2.ru/.
  • ErrorLog та CustomLog вказує імена логів сервера для цього віртуального хоста.

Контейнери зазвичай розміщують один за одним наприкінці файлу httpd.conf.

Файл httpd.conf. Налаштування віртуальних хостів

NameVirtualHost 127.0.0.1:80

# Директиви віртуального хоста 1


# Директиви віртуального хоста 2


# Директиви віртуального хоста 3

Примітка

Для застосування змін, які вносяться до файлу httpd.conf, Apache слід перезавантажити.

Для того, щоб звертатися до віртуальних вузлів за іменами, їх слід прописати до баз даних DNS-сервера. Якщо ви використовуєте Apache для тестування файлів на локальній машині, імена ваших віртуальних вузлів слід прописати у файлі hosts. Для Windows 2000 і XP він розташований у каталозі C:WindowSystem32Driversets. Файл hosts містить такі записи:

Формат записів файлу hosts

127.0.0.1 www.mysite.ru
127.0.0.1 www.site.ru
127.0.0.1 www.host2.ru

Встановлення та налаштування PHP

Для встановлення PHP слід створити каталог c:/php та розмістити в ньому файли із zip-архіву дистрибутива. Після цього слід перейменувати конфігураційний файл php.ini-dist на php.ini і скопіювати його в директорію Windows.

Встановлення PHP як модуль

Встановлення PHP як модуль трохи підвищує швидкодію, оскільки модуль PHP завантажується один раз при запуску Web-сервера

Зауваження

При встановленні PHP як модуль налаштування з php.ini читаються один раз при запуску Web-сервера. Тому при внесенні змін до php.ini необхідно перевантажити Apache для того, щоб внесені зміни набули чинності.

Для встановлення PHP відкрийте файл головного настроювального файлу Apache httpd.conf на редагування та видаліть символи коментарів з наступних рядків, за потреби змінивши їх:

Файл httpd.conf. Підключення PHP як модуль Apache


LoadModule php5_module c:/php/php5apache2.dll

Примітка

Установка PHP, як CGI-програми

При встановленні PHP, як CGI-програми інтерпретатор PHP буде завантажуватися щоразу при виклику PHP-сценарію. У зв'язку з цим, можливо, деяке погіршення швидкодії. Якщо PHP встановлений як CGI, то при внесенні змін до файлу php.ini Apache перезавантажувати не слід, оскільки установки читаються щоразу при виконанні PHP-сценарію. Встановлення PHP як CGI трохи прискорює внесення змін до конфігурації PHP, так вона не потребує перезавантаження WEB-сервера.

Примітка

При встановленні PHP, як CGI перестануть працювати деякі заголовки, наприклад, Ви не зможете організувати авторизацію користувачів засобами PHP. Авторизації можна буде реалізувати лише засобами Apache за допомогою файлів.htaccess.

Для встановлення PHP відкрийте головний файл налаштування httpd.conf на редагування, знайдіть у ньому закоментовані рядки підключення PHP і змініть їх наступним чином:

Файл httpd.conf. Підключення PHP як CGI

AddType application/x-httpd-php phtml php

Options ExecCGI

ScriptAlias ​​"/php_dir/" "c:/php/"
Action application/x-httpd-php "/php_dir/php-cgi.exe"

Примітка

Замість директорії c:/php підставте Вашу директорію із встановленим PHP.

Конфігурування PHP (файл php.ini)

Так як на локальній машині ви, швидше за все, будете зайняті тестуванням Ваших Web-додатків, необхідно належним чином налаштувати конфігураційний файл php.ini. Знайдіть директиву error_reporting і встановіть для неї таке значення:

Це значення налаштує PHP таким чином, що під час роботи PHP-скриптів будуть відображатися всі помилки, а "зауваження" ігноруватимуться. Також необхідно простежити, щоб директива display_errors, була включена:

Display_errors = On

Якщо ця директива вимкнена (Off), то повідомлення про помилки не будуть виводитись у вікно браузера і у разі виникнення в коді помилки ви будете ворожити перед незайманим білим вікном - що б це означало.
Також необхідно простежити, щоб директива variables_order мала таке значення:

Variables_order = "EGPCS"

Літери тут означають таке:
E - змінними середовища
G - змінними передаються за методом GET (G)
P - змінними передаються за методом POST (P)
C - Cookies
S - сесії
Відсутність будь-якої з букв не дозволить вам працювати з відповідними змінними.

Наступна директива, яка може вимагати налаштування – це register_globals. Якщо ця директива включена

Register_globals = On

то змінні передані метором GET, POST, через cookies та сесії можна використовувати в PHP-скрипті, звертаючись до них просто як звичайним змінним $someone.
Якщо ця директива вимкнена

Register_globals = Off

то до таких змінних можна буде звертатися лише за допомогою суперглобальних масивів ($_POST, $_GET тощо).
Директива register_long_arraysдозволяє використовувати суперглобальні масиви у старому форматі ("довгому" - $HTTP_GET_VARS, $HTTP_POST_VARS і т.д.)

Register_long_arrays = On

Тепер потрібно налаштувати індексний файл. Якщо у вікні браузера набрати рядок http://localhost/, а чи не http://localhost/index.html. Сервер все одно надасть браузеру index.html, тому що цей файл є індексним і шукається в директорії насамперед, якщо не вказано конкретний файл. Тепер необхідно налаштувати http.conf, таким чином, щоб Web-сервер Apache також реагував на файли index.php. Для цього знайдіть у http.conf директиву DirectoryIndex і виправте її так:

DirectoryIndex index.html index.html.var index.php

Після цього необхідно перевантажити сервер Apache, а в кореневому директорії віртуального хоста ("C:/www/scripts") створити пробний файл PHP (index.php):

phpinfo();
?>

У разі успішного налаштування звернення за адресою http://localhost/index.php відобразить фіолетову таблицю з поточними налаштуваннями PHP, яка видається функцією phpinfo().
Таким чином, у нас налаштована зв'язка Apache та PHP і можна переходити до налаштування MySQL. Розпакуйте дистрибутив MySQL у тимчасову директорію та запустіть інсталятор. Контролювати роботу сервера MySQL можна так само, як і Apache, використовуючи консоль управління сервісів Windows.

Підключення MySQL

Детальна методика підключення до PHP розширення MySQL описана у статті за посиланням: .

Якщо сервер MySQL вже встановлено на Вашій машині, наступним кроком буде налаштування PHP для роботи з базами даних MySQL.

Відкрийте на редагування файл php.ini із каталогу Windows. Для підключення бібліотеки розширення MySQL Вам потрібно забрати символ коментаря; (точка з комою) з рядка:

Extension=php_mysql.dll

Також перевірте значення директиви extension_dir

Extension_dir = "c:/php-5.0/ext"

Вона повинна вказувати на каталог, де зберігаються розширення PHP. Розділювачі каталогів рекомендується писати у форматі UNIX (/) - зворотний сліш. Однак, якщо нічого не виходить, просто відкотіть назад значення директиви extension_dir, а бібліотеку php_mysql.dll скопіюйте в корінь C:/php-5.0/ - в більшості випадків це має допомогти.

Якщо PHP Вас підключено як модуль, Вам також необхідно скопіювати бібліотеку libmysql.dll з каталогу з встановленим PHP в системний каталог C:/Windows/System32. Щоб внесені зміни набули чинності, перезавантажте Apache.

Для перевірки роботи MySQL перезапустіть сервер Apache та створіть перевірочний скрипт з наступним кодом:

$dblocation = "127.0.0.1";
$ dbname = " test " ;
$dbuser = "root";
$dbpasswd = "";

$dbcnx = @ mysql_connect ($dblocation, $dbuser, $dbpasswd);
if (! $ dbcnx )
{
echo "

На жаль, недоступний сервер mySQL

" ;
exit();
}
if (! @
mysql_select_db ($dbname, $dbcnx))
{
echo "

На жаль, не доступна база даних

"
;
exit();
}
$ver = mysql_query ("SELECT VERSION()");
if(! $ver )
{
echo "

Помилка у запиті

"
;
exit();
}
echo
mysql_result ($ver, 0);
?>

У разі успішної інтеграції MySQL у зв'язку Apache та PHP, звернення до перевірочного скрипту виведе у вікно браузера версію сервера MySQL.

У нових версіях MySQL (починаючи з 4.1.0) змінився порядок роботи з національними кодуваннями, тому старий код може викликати появу в таблиці бази даних знаків питання "?????????" замість російського тексту. Для того, щоб цього не виникало на початок PHP-скрипту, після встановлення з'єднання з базою даних, слід розмістити наступні рядки:

mysql_query ( "set character_set_client="cp1251"");
mysql_query ( "set character_set_results="cp1251"");
mysql_query ( "set collation_connection="cp1251_general_ci"");
?>

Встановлення розширень PHP

Наостанок вам можливо знадобиться налаштувати деякі розширення PHP, вони налаштовуються так само, як і MySQL.

Так щоб підключити графічну бібліотеку GDLib в php.ini необхідно розкоментувати рядок:

Extension=php_gd2.dll

Перевірте наявність даної бібліотеки в папці c:phpext. Після внесення змін до php.ini перезапустіть сервер. Щоб швидко перевірити: чи підключилася бібліотека - виконайте функцію phpinfo(). Якщо все гаразд, то в таблиці, яка відображається функції phpinfo(), повинен з'явитися розділ " gd

При використанні застарілого імені php.exe, що використовувався в попередніх версіях замість php-cgi.exe також можлива поява помилки:

403 Forbidden You don"t have permission to access /__php_dir__/php.exe/test.php on this server

HTML-файли виконуються, а PHP-скрипти немає

При ненастроєному підключенні PHP при зверненні до файлів з розширенням php, наприклад: http://localohost/index.php відкривається вікно із запитом на завантаження такого файлу. Це говорить про те, що не налаштовано обробку файлів з розширенням php. Перевірте наявність наступного рядка у файлі httpd.conf:

AddType application/x-httpd-php phtml php

Notice: Undefined variable...

На новому, щойно встановленому, PHP можна часто бачити повідомлення виду:

Notice: Undefined variable: msg в C:/Main/addrec.php on line 7

Error_reporting = E_ALL & ~E_NOTICE

Не підключається MySQL

Іноді виникають проблеми із встановленням MySQL. Слід проконтролювати запускається MySQL як сервіс щоразу при старті системи. Для цього відкрийте консоль сервісів:

Пуск | Налаштування | Панель керування | Адміністрація | Служби

знайдіть там MySQL – запустіть. Щоб сервер стартував при кожному завантаженні системи натисніть праву кнопку миші на сервісі і виберіть "Властивості" - у списку "Тип запуску", що відкривається, виберіть пункт "Авто".

Якщо під час запуску Apache та при зверненні до скриптів видається повідомлення про неможливість завантаження бібліотеки php_mysql.dll.

PHP startup: Безкоштовно load dynamic library c:/php/ext/php_mysql.dll
- не знайдено вказаний модуль

То ще раз повірте інструкції з розділу, де описується підключення до PHP бібліотеки для роботи з MySQL. Ви використовуєте "правильну" версію файлу php_mysql.dll (саме для тієї версії PHP, яка встановлена ​​в системі)?
Версії файлу php_mysql.dll розрізняються для різних версій PHP, хоча і мають одну й ту саму назву.

  • Використання роздільників каталогів у форматі Windows (зворотний сліш): c:apache/bin. Для надійної роботи слід використовувати роздільники у форматі UNIX (прямий сліш), наприклад: c:/apache/bin.
  • Існує декілька настроювальних файлів php.ini на машині, або відсутність такого файлу. Потрібний файл php.ini має лежати у директорії Windows. Проведіть пошук по дисках комп'ютера, знайдіть усі зайві версії файлів та видаліть їх.
  • Будь-які питання, що виникають по встановленню зв'язки Apache+PHP+MySQL, ви можете задати на нашому форумі присвяченому встановленню та налаштуванню Apache, PHP і бібліотек розширень .



    Подібні публікації