Ответ
Базовая настройка Apache для хостинга PHP-приложения включает работу с виртуальными хостами и модулями. Основной конфигурационный файл — httpd.conf (или apache2.conf в Debian/Ubuntu), а настройки для конкретного сайта часто выносят в отдельные файлы в sites-available/.
1. Настройка виртуального хоста:
Создайте файл, например, /etc/apache2/sites-available/myapp.conf.
<VirtualHost *:80>
# Доменное имя или IP
ServerName myapp.local
ServerAlias www.myapp.local
# Корневая директория проекта
DocumentRoot /var/www/myapp/public
<Directory /var/www/myapp/public>
# Разрешаем следование симлинкам
Options FollowSymLinks
# Разрешаем использование .htaccess для переопределения настроек
AllowOverride All
# Определяем, кто имеет доступ
Require all granted
</Directory>
# Логи для этого хоста
ErrorLog ${APACHE_LOG_DIR}/myapp_error.log
CustomLog ${APACHE_LOG_DIR}/myapp_access.log combined
</VirtualHost>
2. Активация сайта и необходимых модулей:
# Включить модуль rewrite для ЧПУ (Clean URLs)
sudo a2enmod rewrite
# Активировать конфигурацию сайта
sudo a2ensite myapp.conf
# Перезагрузить Apache для применения изменений
sudo systemctl reload apache2
3. Базовая настройка безопасности (в основном конфиге):
# Минимизировать информацию в заголовках сервера
ServerTokens Prod
ServerSignature Off
# Ограничить размер и время запроса
LimitRequestBody 10485760 # 10 MB
Timeout 30
4. Настройка для PHP (если используется mod_php):
Убедитесь, что модуль php загружен и корректно настроен в php.ini. В современных связках чаще используется php-fpm с mod_proxy_fcgi.
Проверка синтаксиса: Перед перезагрузкой всегда проверяйте конфигурацию: sudo apachectl configtest.