|
|||||||
Установка apache и php на Debian
Время создания: 13.07.2018 15:32
Автор: https://rusadmin.biz/author/rusadmin/
Текстовые метки: linux debian php apache2 install
Раздел: Debian
Запись: Velonski/mytetra-database/master/base/1489468545baxx8hk50q/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
Определённые системы управления контентом не работают со связкой 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. Если да, то сервер успешно настроен и можно разместить сайт в предназначенном для него каталоге. В ином случае следует проанализировать логи ошибок, проверить настройки в конфигурационных файлах. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|