Skip to main content

Установка apache і php на Debian



Певні системи управління контентом не працюють зі зв'язкою nginx і php-fpm , і вимагають саме веб-сервера apache з модулем php. Найчастіше причина цього - необхідність використання модуля rewrite для роботи сайту.



Однією командою встановіть базові компоненти. Залежно будуть встановлені автоматично.

  # Aptitude install apache2-mpm-itk libapache2-mod-php5 php5-curl php5-mysqlnd php5-gd 

Зміст статті:

налаштовуємо apache

Насамперед включите mod_rewrite. Він обов'язково знадобиться, якщо ваш сайт буде використовувати ЧПУ.

  # A2enmod rewrite 

Включати mod_php не буде потрібно, оскільки при установці він буде включений автоматично.



Також я рекомендую відключити наступні модулі, якщо вони вам не потрібні:

  # A2dismod -f autoindex deflate setenvif status 

Це дозволить вам скоротити витрату пам'яті.

Відкрийте файл /etc/apache2/conf-available/charset.conf і розкоментуйте наступний рядок:


  AddDefaultCharset UTF-8 

Дана директива вказує, що кодуванням за замовчуванням буде UTF-8. Якщо ваші сайти використовують іншу систему кодування, наприклад, CP-1251, то необхідно вказати її або відразу, або в параметрах віртуального хоста.

Збережіть зміни.

Відкрийте файл /etc/apache2/conf-available/security.conf і перетворіть рядок ServerTokens OS в ServerTokens Prod . Це приховає версію apache для клієнтів.

Рядок ServerSignature On перетворіть в ServerSignature Off .

Збережіть зміни.

Відкрийте для редагування файл /etc/apache2/apache2.conf і знайдіть параметр KeepAlive On . Якщо після налаштування apache ви встановите nginx і будете проксіровать від нього запити, то цей параметр потрібно перетворити в KeepAlive Off , оскільки цю функцію (підтримка з'єднання з клієнтом) буде виконувати nginx. Якщо ви плануєте використовувати apache в якості основного веб-сервера, цю функцію слід налаштувати.

MaxKeepAliveRequests - максимальна кількість запитів на підтримку постійного з'єднання. Для більшої продуктивності рекомендується задати більшу. Для початку підійде значення за замовчуванням - 100.

KeepAliveTimeout - час в секундах для очікування наступного запиту від того ж самого клієнта.

Збережіть зміни і запустіть apache.

Відкрийте файл /etc/apache2/mods-available/mpm_prefork.conf.

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

Наведіть значення за умовчанням до такого виду:

  StartServers 2
 MinSpareServers 2
 MaxSpareServers 6
 MaxRequestWorkers 32
 MaxConnectionsPerChild 0

StartServers - кількість дочірніх процесів сервера, що створюються при запуску.

MinSpareServers - мінімальна кількість простоюють процесів.

MaxSpareServers - максимальна кількість простоюють процесів.

MaxRequestWorkers - максимальна кількість з'єднань, які будуть оброблятися одночасно.

MaxConnectionsPerChild - максимальна кількість з'єднань, обробивши які, дочірній процес буде завершений. Може бути корисний в боротьбі з витоками пам'яті.

Також збережіть зміни і перезапустити apache: service apache2 restart.

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

Віртуальним хостом називається група конфігураційних параметрів для певного сайту. Вона включає в себе допустимий домен, email адміністратора, шляхи до лог-файлів, підключення оброблювачів php і т.д.

Мені подобається розміщувати конфігурації віртуальних хостів в одному файлі - apache2.conf. Якщо буде потрібно масово замінити якесь значення для всіх сайтів, то не потрібно буде відкривати по черзі всі конфігураційні файли віртуальних хостів.

В першу чергу вимкніть default site.

  # A2dissite 000-default 

В кінці файлу /etc/apache2/apache2.conf пропишіть наступну директиву:

  <VirtualHost *: 80>

 </ VirtualHost> 

У цій директиві групуються всі параметри сайту. Саме вона є віртуальним хостом. Наступні параметри прописуємо всередині цієї директиви.

ServerName - ваш домен без www. (Наприклад, example.com.)

ServerAlias - домен з www (www.example.com)

DocumentRoot - каталог, де розташовуються файли вашого сайту. Наприклад, / var / www /.

ServerAdmin - email адміністратора сайту.

ErrorLog - місце розташування лог-файлу помилок. Як правило, вони розташовуються в каталозі / var / log / apache2 /. Для нього служить алиас $ {APACHE_LOG_DIR}. приклад:

  ErrorLog $ {APACHE_LOG_DIR} / example.com .error.log 

LogLevel warn . Нічого не змінюємо, прописуємо так. Задає рівень логування помилок.

CustomLog - Розташування і тип access-балки сайту. За замовчуванням тип - combined. Хоча існують і інші типи. приклад:

  CustomLog $ {APACHE_LOG_DIR} /example.com.access.log combined 

В обох прикладах example.com замінюємо на ваш домен без www.

Додаємо настройки для mpm-itk, оскільки справили установку саме цього модуля. Що він дає? Дозволяє обробляти php-скрипти від імені користувача - власника сайту.

  <IfModule mpm_itk_module>
 AssignUserId user group
 </ IfModule> 

Тут потрібно замінити user на ім'я користувача і group на ім'я групи, в чиїй домашній папці розміщені сайти.

Визначаємо настройки для директорій.

  <Directory />
 Options + FollowSymLinks
 AllowOverride None
 Require all granted
 </ Directory>
 <Directory / var / www>
 Options -Indexes + FollowSymLinks 
 AllowOverride All
 Order allow, deny
 allow from all
 </ Directory> 

Директорію / var / www замініть на ту, де розміщені ваші сайти.

Підключаємо обробник php-скриптів.

  <IfModule mod_php5.c>
 php_admin_flag engine on
 php_admin_value open_basedir "/ var / www: / tmp / sessions: / tmp / upload_tmp"
 php_admin_value upload_tmp_dir / tmp / sessions
 php_admin_value session.safe_path / tmp / upload_tmp
 php_admin_value sendmail_path "/ usr / sbin / sendmail -t -i -fmail@example.com"
 </ IfModule> 

open_basedir як значення вказуємо через двокрапку каталоги, куди php матиме доступ: каталог з сайтом, каталог для зберігання файлів сесій, каталог для завантаження тимчасових файлів.

upload_tmp_dir - каталог для зберігання тимчасових файлів. Коли ви завантажуєте картинку (або щось ще) на сайт, долучення спочатку поміщається в цей каталог, а потім в кінцеве місце розташування.

session.safe_path - каталог для зберігання сесій.

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

sendmail_path - шлях до sendmail і параметри. Як правило, sendmail розташовується в каталозі / usr / sbin. Після параметра -f слід вказати email, не розділяючи пробілом.

Зберігаємо конфігураційний файл apache2.conf, перезапускаємо apache:

  service apache2 restart 

Тестування налаштованої зв'язки

В каталозі сайту створіть файл index.php. Пропишіть в ньому код:

  <? Php phpinfo ();  ?> 

Після чого відкрийте ваш сайт в браузері і подивіться, чи відображається інформація про php. Якщо так, то сервер успішно налаштований і можна розмістити сайт в призначеному для нього каталозі.

В іншому випадку слід проаналізувати логи помилок, перевірити настройки в конфігураційних файлах.



Як ви оціните статтю?
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (2 оцінок, середнє: 5,00 з 5)
Завантаження ...

” 2 Коментарі "Установка apache і php на Debian"

  1. Дякуємо. Мене звати Сергій. 65 років. уч. лікар. СПб. Завів VDS хостинг. На ньому встановився сайт: egmontgroup.ru
    За Вашої статті: php7. Також postgreSQL 9.4 і Apache 2.4
    В принципі нормально. На локальному комп'ютері Debian 8.6 jessey (на VDS те ж саме). Встановив все таке ж. Але вже дні і ночі не можу запустити Apache. В логах незрозуміло мені, на VDS нічого такого не було.
    А як з VDS хостингу (там тільки ssh (я користуюся putty).) Скопіювати які - то конфіги, та й взагалі. ?
    З повагою. Дякуємо. Мій мейл sergeygsd@yandex.ru
    ще сподобалася перемикання роботи між версіями php.

Додати коментар

Ваш e-mail не буде опублікований.