Centos 7 apache: НАСТРОЙКА APACHE В CENTOS 7
Содержание
Как установить веб-сервер Apache на Linux CentOS 7?
Устанавливаем и запускаем httpd
yum install httpd #устанавливаем systemctl enable httpd #разрешаем запуск веб-сервера после перезагрузки операционной системы systemctl start httpd #запускаем веб-сервер Apache
В браузере вводим IP-адрес или домен нашего сервера и проверяем, что Apache работает. Если ничего не отображается, проверяем запущен ли веб-сервер командой
ps ax | grep httpd. Проверяем открыт ли доступ к веб-серверу в файрволл. Разрешаем сервис httpd и должно работать.
Добавляем и конфигурируем наш сайт
Пусть доменное имя сайта будет puzzle.itsoft.ru. Сайты будем хранить в папке /site.
Логи мы положим рядом с публичным контентом сайта, но так, что обращаясь к сайту логи прочитать нельзя.
Аналогичным образом рекомендуется хранить защищённый контент сайта, к которому не должно быть прямого доступа у посетителей сайта.
mkdir /site #создаём папки, где будет расположен веб-сайт mkdir /site/puzzle mkdir /site/puzzle/public mkdir /site/puzzle/logs chown -R apache. /site/ /site/puzzle/public/index.html #создаём файлик и записываем туда просто одно слово Hi! vi /etc/httpd/conf.d/puzzle.itsoft.ru.conf #и вставляем следующий контент <VirtualHost *:80> ServerName puzzle.itsoft.ru ServerAlias www.puzzle.itsoft.ru DocumentRoot /site/puzzle/public <Directory /site/puzzle/public> Options FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog /site/puzzle/logs/error.log CustomLog /site/puzzle/logs/access.log common </VirtualHost>
Теперь перезагружаем веб-сервер.
systemctl restart httpd # и Apache не запустился Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details. systemctl status httpd.service #ничего толкового не показывает, т.к. всё обрезано systemctl status httpd.service -l #запускаем с ключом -l, но и там ничего непонятно ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd. service; enabled; vendor preset: disabled) Active: failed (Result: exit-code) since Tue 2020-04-07 19:10:11 MSK; 2min 24s ago Docs: man:httpd(8) man:apachectl(8) Process: 10192 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE) Process: 10191 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE) Main PID: 10191 (code=exited, status=1/FAILURE) Apr 07 19:10:10 localhost.localdomain systemd[1]: Starting The Apache HTTP Server... Apr 07 19:10:11 localhost.localdomain systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE Apr 07 19:10:11 localhost.localdomain kill[10192]: kill: cannot find process "" Apr 07 19:10:11 localhost.localdomain systemd[1]: httpd.service: control process exited, code=exited status=1 Apr 07 19:10:11 localhost.localdomain systemd[1]: Failed to start The Apache HTTP Server. Apr 07 19:10:11 localhost.localdomain systemd[1]: Unit httpd.service entered failed state. Apr 07 19:10:11 localhost. localdomain systemd[1]: httpd.service failed. journalctl -xe #пробуем так и тоже пока прчина не ясна Apr 07 19:14:20 localhost.localdomain sshd[10273]: Received disconnect from 118. Apr 07 19:14:20 localhost.localdomain sshd[10273]: Disconnected from 118.126.90. Apr 07 19:14:31 localhost.localdomain sshd[10276]: Invalid user deploy from 138. Apr 07 19:14:31 localhost.localdomain sshd[10276]: input_userauth_request: inval Apr 07 19:14:31 localhost.localdomain sshd[10276]: pam_unix(sshd:auth): check pa tail /var/log/httpd/error_log #на самом деле нужно смотреть сюда и тут мы видим (13)Permission denied: AH00091: httpd: could not open error log file /site/puzzle/logs/error.log.
Смотрим права ls -la и по-прежнему ничего не понимаем.
ls -la /site/puzzle/logs/ total 8 drwxr-xr-x. 2 apache apache 41 Apr 4 19:43 . drwxr-xr-x. 4 apache apache 32 Apr 4 19:11 .. -rw-r--r--. 1 apache apache 585 Apr 4 19:44 access.log -rw-r--r--. 1 apache apache 260 Apr 4 19:44 error.log
Проблема в дополнительных настройках прав доступа к файлам SELinux. Самый простой и неверный путь отключить этот модуль.
Но это создаст потенциальную угрозу безопасности. Поэтому верный путь — разобраться с настройками.
getenforce #проверяем, что он действительно работает Enforcing yum install -y policycoreutils-python #устанавливаем утилиты для управления правами доступа к файлам и папкам semanage fcontext -a -t httpd_sys_content_t '/site(/.*)?' #разрешаем доступ на чтение веб-серверу ко всем папкам всех сайтов semanage fcontext -a -t httpd_log_t '/site/puzzle/logs(/.*)?' #разрешаем веб-серверу писать логи restorecon -Rv /site #активируем правила доступа systemctl restart httpd #запускаем веб-сервер
Проверяем в браузере. Ура! Заработало!
Есть ещё две опции, которые могут вам понадобится httpd_sys_rw_content_t для папок куда веб-сервер имеет право писать данные. Это может быть папка для загрузки файлов.
И httpd_cache_t для директории с кешами файлов, если вы используете mod_cache.
Настраиваем доступ к сайту для веб-мастера
Ранее мы создали папки для сайта под пользователем root. Но к сайту нужен отдельный доступ веб-мастеру. Для этого смотри статью как добавить пользователя в Unix.
Смотрите также
Как установить SSL-сертификат на веб-сервер Apache под Linux?
httpd 2.4.6 update to httpd 2.4.39 on CentOS 7 and ISPManager
14 апреля, 2019
Eduard Yamaltdinov
Внимание!
Переустановка Apache из не официального репозитория может повредить работу панели управления и как следствие работу всех сайтов сервера.
Поскольку новая версия Apache, не работает с http/2
cd /etc/yum.repos.d
| cd /etc/yum.repos.d |
wget https://repo.codeit.guru/codeit.el`rpm -q —qf «%{VERSION}» $(rpm -q —whatprovides redhat-release)`.repo
| wget https://repo.codeit.guru/codeit. el`rpm -q —qf «%{VERSION}» $(rpm -q —whatprovides redhat-release)`.repo |
yum install httpd -y
| yum install httpd -y |
После обновления возникает ошибка:
httpd[19737]: [Thu Mar 21 20:26:52.399803 2019] [:crit] [pid 19737:tid 139652219635904] Apache is running a threaded MPM, but your PHP Module is not compiled to b…recompile PHP.
| httpd[19737]: [Thu Mar 21 20:26:52.399803 2019] [:crit] [pid 19737:tid 139652219635904] Apache is running a threaded MPM, but your PHP Module is not compiled to b…recompile PHP. |
редактируем файл
nano /etc/httpd/conf.modules.d/00-mpm.conf
| nano /etc/httpd/conf.modules.d/00-mpm.conf |
change to
Убираем комментарий с
LoadModule mpm_prefork_module modules/mod_mpm_prefork. so
| LoadModule mpm_prefork_module modules/mod_mpm_prefork.so |
и комментируем
#LoadModule mpm_event_module modules/mod_mpm_event.so
| #LoadModule mpm_event_module modules/mod_mpm_event.so |
Но при учете, что в ISPmanager в разделе Политики у вас выбран режим
Режим работы web-сервера Apache: Prefork Далее перезагрузите httpd
systemctl restart httpd
| systemctl restart httpd |
source: https://crosp.net/blog/administration/install-latest-apache-server-centos-7/ https://community.centminmod.com/threads/vestacp-ouch-no-http-2-and-outdated-apache.10114/
NEW
yum install https://centos7.iuscommunity.org/ius-release. rpm
| yum install https://centos7.iuscommunity.org/ius-release.rpm |
yum —enablerepo=ius install httpd
| yum —enablerepo=ius install httpd |
Tags: httpd
Веб-сервер Apache на CentOS 7
Apache — это бесплатный популярный HTTP-сервер с открытым исходным кодом, который работает в Unix-подобных операционных системах, включая Linux, а также в ОС Windows. Его легко установить и настроить для размещения одного или нескольких веб-сайтов на одном сервере.
— Установка
После обновления пакетов установите пакет Apache:
# yum -y update # yum -y установить httpd
После установки веб-сервера Apache вы можете запустить его в первый раз и включить автоматический запуск при загрузке системы.
# запуск systemctl httpd # systemctl включить httpd # статус systemctl httpd
Выходные данные
— Настройте брандмауэр для разрешения трафика
Чтобы разрешить трафик HTTP и HTTPS, обновите правила системного брандмауэра, чтобы разрешить входящий трафик, используя приведенные ниже команды.
# firewall-cmd --zone=public --permanent --add-service=http # firewall-cmd --zone=public --permanent --add-service=https # брандмауэр-cmd --reload
— Проверка веб-сервера
Убедитесь, что служба работает, с помощью следующей команды:
# sudo systemctl status httpd
Вы увидите активный статус, когда служба запущена.
Теперь вы можете проверить сервер Apache, перейдя по следующему URL-адресу, будет показана страница Apache по умолчанию.
Введите это в командной строке вашего сервера, чтобы узнать IP-адрес вашего сервера:
# hostname -I
Когда у вас есть IP-адрес вашего сервера, введите его в адресную строку браузера:
http://SERVER_DOMAIN_NAME_OR_IP или curl [IP_адрес]:80
Система должна отобразить тестовую страницу HTTP-сервера Apache, как показано на изображении ниже:
— Настройка виртуальных хостов
Этот раздел полезен только в том случае, если вы хотите разместить более одного домена (виртуального хоста) на одном Веб-сервер Apache. Есть много способов настроить виртуальный хост, но здесь мы объясним один из самых простых.
Сначала создайте структуру каталогов для вашего_домена следующим образом, используя флаг -p для хранения файлов журнала и любой необходимой html-страницы или другого контента:
# sudo mkdir -p /var/www/sites/domain1/page # sudo mkdir -p /var/www/sites/domain1/log
Затем назначьте владельца каталога страниц с помощью переменной среды $USER:
# sudo chown -R $USER:$USER /var/www/sites/domain1/page
Убедитесь, что для вашего веб-корня установлены разрешения по умолчанию:
sudo chmod -R 755 /var/www
Затем создайте образец страницы index.html
# echo "Добро пожаловать на мой сайт виртуального хоста" > /var/www/sites/domain1/index.html
Имея каталог вашего сайта и образец индексного файла, вы почти готовы к созданию файлов виртуального хоста.
# vi /etc/httpd/conf.d/vhost.conf
Вы можете добавить сколько угодно доменов в файл vhost.conf , просто скопируйте блок VirtualHost выше и измените значения для каждого добавляемого домена.
### ВХ 01 ### <Виртуальный хост *:80> имя_сервера domain1.local Псевдоним сервера www.domain1.local DocumentRoot /var/www/sites/domain1/page Журнал ошибок /var/www/sites/domain1/log/error.log CustomLog /var/www/sites/domain1/log/requests.log вместе виртуальный хост> ### ВХ 02 ### <Виртуальный хост *:80> имя_сервера domain2.local Псевдоним сервера www.domain2.local DocumentRoot /var/www/sites/domain2/page Журнал ошибок /var/www/sites/domain2/log/error.log CustomLog /var/www/sites/domain2/log/requests.log вместе виртуальный хост>
Сохраните и закройте файл, нажав ESC , введя :wq и нажав ENTER.
Если Apache не может сопоставить запрошенный домен ни с одним из виртуальных хостов, будет загружен первый (в алфавитном порядке) сайт виртуального хоста. Если вы хотите иметь больше контроля над этим, вы можете создать выделенный виртуальный хост (например, 00_default), который будет загружаться только тогда, когда не существует соответствующего виртуального хоста.
Редактировать httpd.conf
Редактировать основной файл конфигурации Apache /etc/httpd/conf/httpd.conf в соответствии с вашими требованиями.
Установить основной корень документа:
DocumentRoot "/var/www/sites"
Настроить основной корень документа:
<Каталог "/var/www/sites"> Разрешить переопределить все Параметры Каталог>
AllowOverride All — требуется, если вы собираетесь использовать файлы .htaccess для настройки на уровне каталога. По умолчанию установлено значение «Нет», и в этом случае переопределения .htaccess будут игнорироваться.
Параметры -Индексы — запрещает отображение каталога.
Наконец, перезапустите службу Apache, чтобы вышеуказанные изменения вступили в силу.
# перезапуск systemctl httpd.service
Редактировать файл hosts
Правильный способ протестировать несколько виртуальных хостов на локальном компьютере — просто сопоставить этот домен
# sudo vi /etc/hosts
Добавьте эту строку:
127.0.0.1 domain1.local ...
Чтобы изменения вступили в силу, нам нужно перезапустить Apache:
# перезапуск systemctl httpd.service
Теперь вы можете посетить domain1.local , чтобы протестировать индексную страницу, созданную выше.
— Управление процессом
Теперь, когда ваш веб-сервер запущен и работает, давайте рассмотрим некоторые основные команды управления.
Чтобы остановить веб-сервер, введите:
sudo systemctl stop httpd
Чтобы запустить веб-сервер, когда он остановлен, введите:
sudo systemctl start httpd
Чтобы остановить и снова запустить службу, введите: 9#’ httpd. conf | sudo тройник httpd.conf
Версии Apache HTTPD, поддерживаемые Red Hat
Среда
- Red Hat Enterprise Linux (RHEL)
- Коллекции программного обеспечения Red Hat (RHSCL)
- Веб-сервер Red Hat JBoss (JWS/EWS)
- Основные службы Red Hat JBoss (JBCS)
- Платформа корпоративных приложений Red Hat JBoss (EAP)
- Окна
- Веб-сервер Apache (HTTPD)
Выпуск
- Какая версия httpd поддерживается в RHEL?
- Поддерживается ли общедоступная версия Apache httpd?
- Какие версии Apache httpd поддерживаются?
- Как установить Apache 2.4/2.5? Поддерживается ли Apache httpd 2.4/2.5?
- Поддерживает ли Redhat самостоятельно скомпилированные установки Apache?
- Какие поддерживаются методы установки для Apache 2.4 (например, только rpm и yum и т. д.)?
- Поддержка установки Apache.
- Нам нужно обновить версию httpd с 2. 4.9до 2.4.12. мы не можем найти то же самое на портале. Для этого предоставьте исполняемый файл Apache.
- Последняя версия сервера httpd(Apache), доступная в RHEL.
- Обновление Apache HTTPD/обновление до последней версии
- Мне известно, что версия Apache HTTPD, поставляемая для RHEL7.1, — это версия 2.4.6. Будет ли Redhat обновлять ее до версии 2.5 в будущем для RHEL7?
- У меня также есть ОС RHEL6.6. Планируется ли обновление пакета Apache Httpd в будущем?
- Apache до 2.4.4 и 2.2.24 Множественные уязвимости
- HTTP-сервер Apache до версии 2.2.25 Множественные уязвимости
- httpd на порту 443
- Мы исправили пакеты httpd до последней версии (доступной в репозитории RHEL6), чтобы устранить указанные ниже уязвимости, но, похоже, уязвимость, о которой сообщает Qualys, все еще существует
- Какая последняя версия httpd поддерживается на RHEL
- Похоже, последняя версия 2.2.3, но она довольно старая.
- Поддерживает ли RHEL 7 Apache версии 2.2.31? Кроме того, какую версию Apache поддерживает RHEL 7?
- Какие версии Apache доступны для моей версии Red Hat Enterprise Linux?
- Необходимо установить определенную версию Apache, поддерживает ли ее установленная версия Red Hat Enterprise Linux?
- Нам нужно знать, какая последняя версия Apache (httpd) поддерживается Redhat?
- Поддерживает ли Apache/2.2.31 (Unix) RHEL6 или RHEL7?
- Поддерживает ли Apache/2.4.33 (Unix) Red Hat на RHEL7.5?
- Актуальна ли версия Red Hat Apache 2.4.37? Не удается найти пакет с более высокой версией.
- Какая последняя версия JBCS Apache httpd?
Уязвимость
Разрешение
Версии HTTP-сервера Apache, включенные в поддерживаемые в настоящее время продукты
Red Hat Enterprise Linux (RHEL) 1 —
httpd
об/мин- RHEL 9.1: на основе восходящей версии v2. 4.53
- RHEL 9.0: на основе восходящей версии v2.4.51
- RHEL 8: на основе восходящей версии v2.4.37
- RHEL 7: на основе восходящей версии v2.4.6
- RHEL 6: на основе восходящей версии 2.2.15 (требуется ELS)
- RHEL 5: на основе восходящей версии v2.2.3 (не поддерживается)
Коллекции ПО Red Hat (RHSCL) 2 —
httpd24*
об/мин- RHSCL 3.2/3.3: на основе вышестоящего httpd 2.4.34
- RHSCL 3.0/3.1: на основе вышестоящего httpd 2.4.27 (не поддерживается)
- RHSCL 2.4: на основе вышестоящего httpd 2.4.18 (не поддерживается)
- RHSCL 2.2/2.3: на основе вышестоящего httpd 2.4.18 (не поддерживается)
- RHSCL 2.0/2.1: на основе вышестоящего httpd 2.4.12 (не поддерживается)
Веб-сервер Red Hat JBoss (JWS) 3 HTTP-сервер Apache
- JWS 3.1+: использует HTTP-сервер JBCS Apache (см. ниже)
- JWS 3.0: на основе восходящей версии v2.4.6 (требуется ELS)
- EWS 2.1: на основе восходящей версии 2.2.26 (не поддерживается)
- EWS 1.0.2: на основе восходящей версии 2.2.17 (не поддерживается)
Платформа корпоративных приложений JBoss (EAP) 4 HTTP-сервер Apache
- EAP 7: HTTP-сервер Apache перемещен в отдельный продукт JBCS
- EAP 6.4: на основе восходящей версии v2.2.26 (требуется ELS)
- EAP 5 и более ранние версии: HTTP-сервер Apache не был включен
Red Hat JBoss Core Services (JBCS) 5 HTTP-сервер Apache
- Последняя версия основана на восходящей версии v2.4.51
- Предыдущий выпуск на основе исходной версии v2.4.37 (поддерживается)
- Предыдущие выпуски были основаны на исходной версии v2.4.29 v2.4.23 и v2.4.6 (не поддерживается)
Дополнительные примечания
Обратите внимание, что версии HTTP-сервера Apache, включенные в вышеуказанные продукты, в большинстве случаев сильно отличаются от вышестоящих выпусков сообщества той же версии
- Это объясняется Политикой резервного копирования безопасности Red Hat и является наиболее распространенной причиной того, что администраторы/аудиторы пытаются получить более новую версию Apache
- Например: EWS 2. 1.0 и EAP 6.4.0 включают Apache httpd на основе исходной версии 2.2.26; однако они также включают в себя несколько исправлений безопасности CVE, которых нет в оригинальной версии сообщества Apache httpd 2.2.26 6
.
Выпусков сообщества Apache httpd НЕ поддерживается
Самокомпилированные установки Apache даже с использованием исходного кода, поставляемого Red Hat, НЕ поддерживаются
Apache httpd 2.5 / 2.6 в настоящее время не включен ни в один из продуктов Red Hat.
-
Товар(ы)
- Платформа корпоративных приложений Red Hat JBoss
- Коллекции программного обеспечения Red Hat
- Веб-сервер Red Hat JBoss
- Red Hat Enterprise Linux
-
Компонент
- httpd
-
Категория
- Поддерживаемость
-
Теги
- апач
- эп.