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


  • Категория

  • Поддерживаемость


  • Теги

  • апач
  • эп.