Цей розділ містить замітки та підказки призначені для встановлення
Apache 2.x з PHP на Unix системах.
В даний момент є дві версії Apache 2.x - це 2.0 та 2.2.
Хоча є певні причини для вибору однієї чи іншої версії, але 2.2 є зараз
самою останньою, та вона є рекомендованою. Тим не менше, наведені тут
інструкції мають працювати для обох версій.
-
Скачавши HTTP-сервер Apache, розпаковуємо його:
gzip -d httpd-2_x_NN.tar.gz
tar -xf httpd-2_x_NN.tar
-
Аналогічно, розпаковуємо сирці PHP:
gunzip php-NN.tar.gz
tar -xf php-NN.tar
-
Далі збираємо та встановлюємо Apache. Детальніші рекоментації читайте
на сайті Apache.
cd httpd-2_x_NN
./configure --enable-so
make
make install
-
Тепер ви маєте Apache 2.x.NN доступний за адресою /usr/local/apache2,
зі встановленим стандартним модулем MPM prefork та конфігурацією, яка
дозволяє додавати інші потрібні модулі. Щоб перевірити інсталяцію,
використовуйте звичайну процедуру для старта сервера Apache, наприклад таку:
/usr/local/apache2/bin/apachectl start
та зупиніть сервер, щоб перейти до встановлення PHP:
/usr/local/apache2/bin/apachectl stop
-
Тепер конфігуруємо та збираємо PHP. Наприклад, визначаємо які саме розширення
будуть включені в PHP. Запустіть ./configure --help щоб
побачити список доступних параметрів. В нашому прикладі, ми робимо просту
конфігурацію Apache 2 додаючи підтримку MySQL.
Якщо ви збираєте Apache із сирців, як описано вище, в наступному прикладі шлях
буде відповідати розташуванню apxs, але якщо ви ставили Apache по іншому, вам
потрібно відповідно змінити шлях до apxs. Зауважте, що деякі дистрибутиви
можуть перейменувати apxs в apxs2.
cd ../php-NN
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql
make
make install
Якщо ви вирішете змінити конфігурацію після інсталяції, вам потрібно
запустити заново кроки: configure, make, та make install. Але після
цього не забудьте перезапустити Apache, щоб зміни були задіяні.
Перекомпільовувати Apache не потрібно.
Зверніть увагу, що якщо не сказано іншого, то 'make install' буде також
встановлювати PEAR, PHP CLI, певні сервіси PHP, такі як phpize, та інше.
-
Встановлення php.ini
cp php.ini-development /usr/local/lib/php.ini
Ви можете редагувати файл .ini додаючи потрібні опції PHP. Якщо схочете
щоб php.ini розташовувався в іншому місці, використовуйте
--with-config-file-path=/some/path на 5 кроці.
Якщо ви змінете свій вибір на php.ini-production, краще прочитати список
відмінностей, між файлами .ini, щоб розуміти як це вплине на
поведінку PHP.
-
Відредагуйте httpd.conf, щоб завантажувався модуль PHP. Шлях, який зазначено
праворуч від запису LoadModule, повинен вказувати на розташування модуля PHP
у вашій системі. Команда make install, про яку тут
згадувалось раніше, повинна вже була зробити це, але краще перевірити ще раз.
LoadModule php5_module modules/libphp5.so
-
Скажіть Apache, щоб обробляв розширення .php через PHP. Замість того, щоб
використовувати лише директиву Apache AddType, ми хочемо
уникнути потенційної небезпеки завантаження та створення файлів, таких як
exploit.php.jpg, які будуть оброблятись через PHP. Використовуючи цей приклад,
ви можете додати будь-яке розширення (можна й не одне), яке буде оброблятись
через PHP. Ми вказали .php лише в якості приклада.
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
Або ж, якщо ми хочемо дозволити щоб файли .php, .php2, .php3, .php4, .php5,
.php6, та .phtml оброблялись через PHP, але ніякі інші, ми напишемо таке:
<FilesMatch "\.ph(p[2-6]?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
Або щоб дозволити файли .phps обробляти через php source filter, та
показувати їх вміст з підсвідкою синтаксиса, використовуйте таке:
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
Можна використовувати модуль mod_rewrite, щоб дозволити показувати сирцевий
код з підсвідкою синтаксиса в файлах з розширенням .php, без
необхідності їх переіменовувати чи копіювати до файлів .phps:
RewriteEngine On
RewriteRule (.*\.php)s$ $1 [H=application/x-httpd-php-source]
Не слід включати php source filter на промислових системах, де він може
розкрити конфіденційну або іншу важливу інформацію розміщену в сирцевому коді.
-
Використовуйте стандартну процедуру щоб запустити сервер Apache, наприклад так:
/usr/local/apache2/bin/apachectl start
АБО так:
Дотримуючись зазначених вище кроків, ви запустите веб-сервер Apache2 з
підтримкою PHP як модуля SAPI. Звичайно, є значно більше
параметрів доступних для Apache та PHP. Більше інформації можна отримати
ввівши в консолі ./configure --help в їх кореневих каталогах.
Не варто бездумно використовувати цю опцію, використовуйте її лише якщо
розумієте всі наслідки такого рішення. В документації для Apache
стосовно » Молулів MPM
значно детальніше розкрита ця тема.