Home » Linux » CentOS » Настройка web сервера в CentOS 7

Настройка web сервера в CentOS 7

Сегодня займемся поднятием одной из наиболее востребованных ролей любого linux сервера, которые занимают в этом функциональном сегменте лидирующую роль. Настройка web сервера CentOS 7 на базе связки популярного http сервера apache, интерпретатора php и сервера баз данных mysql, или коротко — установка lamp. Данная связка является самой популярной конфигурацией на сегодняшний день среди веб хостинга. Хотя последнее время ей на пятки наступает та же компания, но на базе nginx, возможно уже и опередила, точных данных у меня нет на этот счет.

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужно пройти .

Если вам нужен высокопроизводительный web сервер на базе последних версий nginx и php-fpm, то читайте отдельную статью по этой теме — установка и настройка nginx и php-fpm7 на centos.

Данная статья является частью единого цикла статьей про сервер Centos.

Web сервер на CentOS 7

Итак, наш веб сервер centos будет состоять из трех основных компонентов — http сервера apache, интерпретатора языка программирования php и сервера баз данных mysql. Познакомимся немного с каждым из них:

  1. Apache — http сервер или просто веб сервер апач. Является кросплатформенным ПО, поддерживающим практически все популярные операционные системы, в том числе и Windows. Ценится прежде всего за свою надежность и гибкость конфигурации, которую можно существенно расширить благодаря подключаемым модулям, которых существует великое множество. Из недостатков отмечают большую требовательность к ресурсам, по сравнению с другими серверами. Держать такую же нагрузку, как, к примеру, nginx, apache не сможет при схожих параметрах железа.
  2. PHP — язык программирования общего назначения, который чаще всего применяется в веб разработке. На сегодняшний день это самый популярный язык в этой области применения. Поддерживается практически всеми хостинг-провайдерами.
  3. Mysql — система управления базами данных. Завоевала свою популярность в среде малых и средних приложений, которых очень много в вебе. Так что, как и php, на сегодняшний день является самой популярной бд, использующейся на веб сайтах. Поддерживается большинством хостингов. В CentOS вместо mysql устанавливается mariadb — ответвление mysql. Они полностью совместимы, возможен в любой момент переход с одной субд на другую и обратно. Последнее время я встречал информацию, что mariadb пошустрее работает mysql и люди потихоньку перебираются на нее. На практике мне не довелось это наблюдать, так как никогда не работал с нагруженными базами данных. А в обычных условиях разница не заметна.

Подопытным сервером будет выступать виртуальная машина от ihor, характеристики следующие:

Процессор2 ядра
Память8 Gb
Диск150 Gb SSD

Это кастомная настройка параметров. Они не оптимальны по цене, но мне были нужны именно такие.

Хочу сразу уточнить, что разбираю базовую дефолтную настройку. Для улучшения быстродействия, повышения надежности и удобства пользования нужно установить еще несколько инструментов, о чем я расскажу отдельно. В общем случае для организации веб сервера будет достаточно того, что есть в этой статье.

Если у вас еще нет сервера, то вам надо выполнить установку CentOS 7. А если сервер уже установлен, то не забудьте его настроить. Рекомендую обратить внимание именно на настройку, так как там много полезной информации, которую в рамках этой статьи я не даю — обновление системы, настройка фаервола, установка редактора и многое другое.

Настройка apache в CentOS 7

В CentOS служба apache называется httpd. Когда я только знакомился с этим дистрибутивом, мне было непривычно. В Freebsd и Debian, с которыми я до этого работал служба веб сервера называлась apache, хотя где-то я замечал, кажется во фрюхе, что файл конфигурации имеет имя httpd.conf. До сих пор я не знаю, почему распространились оба эти названия. Был бы рад, если бы со мной кто-то поделился информацией на этот счет в комментариях.

Теперь приступим к установке apache. В CentOS 7 это делается очень просто:

# yum install -y httpd

Добавляем apache в автозагрузку:

# systemctl enable httpd

Запускаем apache в CentOS 7:

# systemctl start httpd

Проверяем, запустился ли сервер:

# netstat -tulnp | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      21586/httpd

Все в порядке, повис на 80-м порту, как и положено. Уже сейчас можно зайти по адресу http://ip-address и увидеть картинку:

установка apache на centos 7

Теперь займемся настройкой apache. Я предпочитаю следующую структуру веб хостинга:

/webраздел для размещения сайтов
/web/site1.ru/wwwдиректория для содержимого сайта
/web/site1.ru/logsдиректория для логов сайта

Создаем подобную структуру:

# mkdir /web && mkdir /web/site1.ru && mkdir /web/site1.ru/www && mkdir /web/site1.ru/logs
# chown -R apache. /web

Дальше редактируем файл конфигурации apache — httpd.conf по адресу /etc/httpd/conf. Первым делом проверим, раскомментированна ли строчка в самом конце:

IncludeOptional conf.d/*.conf

Если нет, раскомментируем и идем в каталог /etc/httpd/conf.d. Создаем там файл site1.ru.conf:

# mcedit /etc/httpd/conf.d/site1.ru.conf
<VirtualHost *:80>
 ServerName site1.ru
 ServerAlias www.site1.ru
 DocumentRoot /web/site1.ru/www
 <Directory /web/site1.ru/www>
 Options FollowSymLinks
 AllowOverride All
 Require all granted
 </Directory>
 ErrorLog /web/site1.ru/logs/error.log
 CustomLog /web/site1.ru/logs/access.log common
</VirtualHost>

Перезапуск apache в centos

Теперь делаем restart apache:

# systemctl restart httpd

Если возникли какие-то ошибки — смотрим лог apache /var/log/httpd/error_log. Если все в порядке, то проверим, нормально ли настроен наш виртуальный хост. Для этого создадим в папке /web/site1.ru/www файл index.html следующего содержания:

# mcedit /web/site1.ru/www/index.html
<h1>Апач настроен!</h1>
# chown apache. /web/site1.ru/www/index.html

Дальше в винде правим файл hosts, чтобы обратиться к нашему виртуальному хосту. Добавляем туда строчку:

192.168.1.25 site1.ru

где 192.168.1.25 ip адрес нашего веб сервера.

Теперь в браузере набираем адрес http://site1.ru. Если видим картинку:

Проверка apache в centos 7

значит все правильно настроили. Если какие-то ошибки, то идем смотреть логи. Причем в данном случае не общий лог httpd, а лог ошибок конкретного виртуального хоста по адресу /web/site1.ru/logs/error.log.

Сразу же обращу ваше внимание на настройку ротации логов виртуальных хостов. Частенько бывает, что если сразу не настроишь, потом забываешь. Но если сайт с хорошей посещаемостью, то логи будут расти стремительно и могут занять очень много места. Лучше настроить ротацию логов веб сервера сразу же после создания. Сделать это не сложно.

Чтобы настроить ротацию логов виртуальных хостов, необходимо отредактировать файл /etc/logrotate.d/httpd. Он создается во время установки apache и включает в себя настройку ротации стандартного расположения логов. А так как мы перенесли логи каждого виртуального хоста в индивидуальную папку, необходимо добавить эти папки в этот файл:

# mcedit /etc/logrotate.d/httpd
/web/*/logs/*.log
/var/log/httpd/*log {
 missingok
 notifempty
 sharedscripts
 delaycompress
 postrotate
 /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true
 endscript
}

Мы добавили одну строку в самое начала файла. Теперь логи всех виртуальных хостов в папке /web будут ротироваться по общему правилу.

В принципе, простейший веб сервер уже готов и им можно пользоваться. Но вряд ли сейчас найдутся сайты со статическим содержимым, которым достаточно поддержки только html. Так что продолжим нашу настройку.

Если вам необходимо организовать работу сайта по протоколу https, то воспользуйтесь руководством по настройке ssl в apache.

Установка php в CentOS 7

Для поддержки динамического содержимого сайтов выполним следующий шаг. Установим php в CentOS 7:

# yum install -y php

И следом еще несколько полезных компонентов. Установим популярные модули для php:

# yum install -y php-mysql php-mbstring php-mcrypt php-devel php-xml php-gd

Выполним перезапуск apache:

# systemctl restart httpd

Создадим файл в директории виртуального хоста и проверим работу php:

# mcedit /web/site1.ru/www/index.php
<?php phpinfo(); ?>
# chown apache. /web/site1.ru/www/index.php

Заходим по адресу http://site1.ru/index.php

centos php

Вы должны увидеть вывод информации о php. Если что-то не так, возникли какие-то ошибки, смотрите лог ошибок виртуального хоста, php ошибки будут тоже там.

Где лежит php.ini

После установки часто возникает вопрос, а где хранятся настройки php? Традиционно они находятся в едином файле настроек. В CentOS php.ini лежит в /etc, прямо в корне. Там можно редактировать глобальные настройки для все виртуальных хостов. Персональные настройки каждого сайта можно сделать отдельно в файле конфигурации виртуального хоста, который мы сделали раньше. Давайте добавим туда несколько полезных настроек:

# mcedit /etc/httpd/conf.d/site1.ru.conf

Добавляем в самый конец, перед </VirtualHost>

php_admin_value date.timezone 'Europe/Moscow'
php_admin_value max_execution_time 60
php_admin_value upload_max_filesize 30M

Для применения настроек нужно сделать restart apache. Теперь в выводе phpinfo можно увидеть изменение настроек.

Обновление до php 5.6 в CentOS 7

В нашем примере мы установили на CentOS 7 php 5.4 из стандартного репозитория. А что делать, если нам нужна более новая версия, например php 5.6? В таком случае нужно выполнить обновление php.

Для этого подключим remi репозиторий:

# wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm
# rpm -Uvh remi-release-7*.rpm

Теперь обновляем php 5.4 до php 5.6:

# yum --enablerepo=remi,remi-php56 install php php-common php-mysql php-mbstring php-mcrypt php-devel php-xml php-gd

Перезапускаем apache:

# systemctl restart httpd

И идем смотреть вывод phpinfo — http://site1.ru/index.php

centos 7 php 5.6

Отлично, мы обновили php до версии 5.6.

Установка MySQL в CentOS 7

Как я уже писал ранее, сейчас все большее распространение получает форк mysql — mariadb. Она имеет полную совместимость с mysql, так что можно смело пользоваться. Я предпочитаю использовать именно ее.

Устанавливаем mariadb на CentOS 7:

# yum install -y mariadb mariadb-server

Добавляем mariadb в автозапуск:

# systemctl enable mariadb.service

Запускаем mariadb:

# systemctl start mariadb

Проверяем, запустилась или нет:

# netstat -tulnp | grep mysqld
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      22276/mysqld

Обращаю внимание, что она даже в системе отображается как сервис mysqld. Теперь запускаем стандартный скрипт настройки безопасности:

# /usr/bin/mysql_secure_installation

Не буду приводить весь вывод работы этого скрипта, там все достаточно просто и понятно. Сначала задаем пароль для root (текущий пароль после установки пустой), потом удаляем анонимных пользователей, отключаем возможность подключаться root удаленно, удаляем тестового пользователя и базу.

Файл настроек mysql/mariadb лежит в /etc/my.cnf. Для обычной работы достаточно настроек по-умолчанию. Но если вы решите изменить их, не забудьте перезапустить службу баз данных.

Перезапуск mariadb/mysql в CentOS 7:

# systemctl restart mariadb

На этом все. Базовый функционал web сервера на CentOS 7 настроен.

Если вам нужен phpmyadmin воспользуйтесь моим подробным руководством по установке и настройке phpmyadmin на centos 7.

Буду рад замечаниям и комментариям по теме статьи. Напоминаю, что данная статья является частью единого цикла статьей про сервер Centos.

Онлайн курс Основы сетевых технологий

Теоретический курс с самыми базовыми знаниями по сетям. Курс подходит и начинающим, и людям с опытом. Практикующим системным администраторам курс поможет упорядочить знания и восполнить пробелы. А те, кто только входит в профессию, получат на курсе базовые знания и навыки, без воды и избыточной теории. После обучения вы сможете ответить на вопросы:
  • На каком уровне модели OSI могут работать коммутаторы;
  • Как лучше организовать работу сети организации с множеством отделов;
  • Для чего и как использовать технологию VLAN;
  • Для чего сервера стоит выносить в DMZ;
  • Как организовать объединение филиалов и удаленный доступ сотрудников по vpn;
  • и многое другое.
Уже знаете ответы на вопросы выше? Или сомневаетесь? Попробуйте пройти тест по основам сетевых технологий. Всего 53 вопроса, в один цикл теста входит 10 вопросов в случайном порядке. Поэтому тест можно проходить несколько раз без потери интереса. Бесплатно и без регистрации. Все подробности на странице .

Помогла статья? Есть возможность отблагодарить автора

Автор Zerox

Zerox
Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству.

75 комментариев

  1. Аватар

    Очень полезная статья. Прям все по шагам получилось сделать. Большое спасибо!

  2. Аватар

    Здравствуйте! Хорошая статья. Вот только не работает. Selinux упорно блокирует апач. После шага mcedit /etc/httpd/conf.d/site1.ru.conf и перезапуска апача.

    • Zerox

      В этой статье подразумевается, что selinux отключен. Его настройка отдельная история. У меня так и не дошли руки ее описать.

      • Аватар

        То есть сначала нужно отключить его полностью, а потом уже ставить и настраивать web server по инструкции выше, правильно я понял. А отключить его можно вот так да:
        # This file controls the state of SELinux on the system.
        # SELINUX= can take one of these three values:
        # enforcing — SELinux security policy is enforced.
        # permissive — SELinux prints warnings instead of enforcing.
        # disabled — No SELinux policy is loaded.
        SELINUX=disable
        # SELINUXTYPE= can take one of three values:
        # targeted — Targeted processes are protected,
        # minimum — Modification of targeted policy. Only selected processes are protected.
        # mls — Multi Level Security protection.
        SELINUXTYPE=targeted

  3. Аватар
    Алексей

    Добрый день.
    Подскажите, пожалуйста, в чем может быть проблема или где ковырять.
    У меня сервак CentOS 7 с ip 192.168.7.1. По вашей инструкции поставил apache. Страница Testing 123 отобразилась.
    Далее создал html «Апач работает» и поправил hosts. IP-шник тот же — 192.168.7.1! Картинка вылазит таже.
    Подозреваю, что где-то нужно было присвоить ip сайту1, отличный от IP сервака. Может нужно Linux на один IP, apache на второй, сайт site1 на третий?
    В Linuxs-е новичек. Только обучаюсь.

    • Аватар
      Алексей

      вот такой у меня лог в «лог ошибок конкретного виртуального хоста по адресу /web/site1.ru/logs/error.log»:
      -rw-r—r— 1 root root 0 июн 29 15:24 /web/site1.ru/logs/error.log

      • Аватар
        Алексей

        Нашел ошибку. «» Тут каким-то чудным образом порт 80 не вписал! :D
        Zerox, спасибо за статьи. Изучаю Linux по ним =)

  4. Аватар

    Вот лог из /var/log/httpd
    [Mon Oct 08 14:25:14.297124 2018] [mpm_prefork:notice] [pid 3923] AH00170: caught SIGWINCH, shutting down gracefully
    [Mon Oct 08 14:25:14.385539 2018] [suexec:notice] [pid 4089] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
    [Mon Oct 08 14:25:14.424370 2018] [auth_digest:notice] [pid 4090] AH01757: generating secret for digest authentication …
    [Mon Oct 08 14:25:14.425280 2018] [lbmethod_heartbeat:notice] [pid 4090] AH02282: No slotmem from mod_heartmonitor
    [Mon Oct 08 14:25:14.427915 2018] [mpm_prefork:notice] [pid 4090] AH00163: Apache/2.4.6 (CentOS) configured — resuming normal operations
    [Mon Oct 08 14:25:14.427952 2018] [core:notice] [pid 4090] AH00094: Command line: ‘/usr/sbin/httpd’
    [Mon Oct 08 14:25:47.587920 2018] [mpm_prefork:notice] [pid 4090] AH00170: caught SIGWINCH, shutting down gracefully
    [Mon Oct 08 14:25:47.667801 2018] [suexec:notice] [pid 4123] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
    [Mon Oct 08 14:25:47.703020 2018] [auth_digest:notice] [pid 4124] AH01757: generating secret for digest authentication …
    [Mon Oct 08 14:25:47.703907 2018] [lbmethod_heartbeat:notice] [pid 4124] AH02282: No slotmem from mod_heartmonitor
    [Mon Oct 08 14:25:47.706538 2018] [mpm_prefork:notice] [pid 4124] AH00163: Apache/2.4.6 (CentOS) configured — resuming normal operations
    [Mon Oct 08 14:25:47.706571 2018] [core:notice] [pid 4124] AH00094: Command line: ‘/usr/sbin/httpd’

    • Zerox

      Какая ошибка в браузере?

      • Аватар

        На локальном при подключению по адресу: «Сервер не найден» на на компе в сети не удаётся: «получить доступ к сайту»

    • Zerox

      Сама служба httpd запущена? В списке процессов есть? 80-й порт слушает? Судя по логу, он таки запускается. Возможно firewall блокирует подключение к web серверу.

      • Аватар

        Ага, Iptables отключил и заработало, хотя вроде настраивал по вашей же статье)

  5. Аватар

    Сделал всё по инструкции, но апач открывает только по ip адресу и то только на локальной машине, по адресу выдаёт ошибку

    • Zerox

      Дальше логично посмотреть, что за ошибка и подумать, с чем она связана. Заодно посмотреть логи.

  6. Аватар

    [Был бы рад, если бы со мной кто-то поделился информацией на этот счет в комментариях.]
    Если ещё интересно, то зайдите на https://projects.apache.org/projects.html

  7. Аватар
    Константин

    На ступени: Перезапуск apache в centos
    Ошибка:
    [root@localhost ~]# systemctl restart httpd.service
    ● httpd.service — The Apache HTTP Server
    Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
    Active: failed (Result: exit-code) since Пт 2018-03-16 15:50:38 MSK; 7min ago
    Docs: man:httpd(8)
    man:apachectl(8)
    Process: 34132 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
    Process: 34131 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
    Main PID: 34131 (code=exited, status=1/FAILURE)

    мар 16 15:50:38 localhost.localdomain systemd[1]: Starting The Apache HTTP Server…
    мар 16 15:50:38 localhost.localdomain httpd[34131]: AH00558: httpd: Could not reliably determine the …age
    мар 16 15:50:38 localhost.localdomain systemd[1]: httpd.service: main process exited, code=exited, st…URE
    мар 16 15:50:38 localhost.localdomain kill[34132]: kill: cannot find process «»
    мар 16 15:50:38 localhost.localdomain systemd[1]: httpd.service: control process exited, code=exited …s=1
    мар 16 15:50:38 localhost.localdomain systemd[1]: Failed to start The Apache HTTP Server.
    мар 16 15:50:38 localhost.localdomain systemd[1]: Unit httpd.service entered failed state.
    мар 16 15:50:38 localhost.localdomain systemd[1]: httpd.service failed.
    Hint: Some lines were ellipsized, use -l to show in full.

    Вроде всё просто и centos 7 minimal читый.
    Помогите новичку.

  8. Аватар

    Здравствуйте, у меня не устанавливается httpd, не может подключится к зеркалам

  9. Аватар

    Спасибо! Весьма удобное руководство, всё прошло как по маслу. Правда я устанавливал PHP 7.1, наверное, уже есть смысл отредактировать это руководство для установки современной версии PHP.

  10. Аватар

    Мне тут стала любопытна тема Антивируса на веб-сервере. Linux’у в большинстве плевать на вирусню, но вот веб сервису в частности не очень…Что посоветуете?

    • Zerox

      Таких антивирусов не существует. Есть некоторые средства для ручной проверки файлов сайта на наличие вирусов, но это не полноценный антивирус. Пример такого скрипта — ai-bolit. Защита веб сервера это комплекс мер. У меня есть в планах написание статьи по настройке максимально защищенного веб сервера, но пока это только планы, даже черновика нет.

  11. Аватар
    Владимир

    Для начала огромное СПАСИБО за статьи! Много полезного и интересного для начинающих линуксоидов. Уже на основе этой статьи запустил чат Mattermost, а также Zabbix. Все работает, но теперь воюю с Nextcloud’ом. Вроде запустился и работает, но хочеться что бы пользователи были не локальные, а Active Directory. Поставил компонент php-ldap и обновил его до версии 5.6. Но Nextcloud’у все равно чего то не хватает, AD видет, а группы и пользователей нет:( говорит чего-то ему не хватает, а чего ХЗ…

    • Аватар

      К слову, я успешно прикрутил Nexcloud к AD

      • Zerox

        Это стабильный продукт, его можно в продакшене использовать?

        • Аватар

          А это предстоит еще проверить)) Он у меня готов к использованию, но пака что я его не запускал в массы.

        • Аватар

          На этапе настроек и знакомства в основном функционале глюков не заметил. Есть куча дополнений которые можно установить, но их функционал это отдельная история. А так гонять под нагрузкой нужно в несколько пользователей, а не в одно лицо.

  12. Аватар

    Добрый день.
    Подскажите в чём может быть проблема, установил nginx, но когда захожу, то пишет что:

    Not Found

    The requested URL /nginx was not found on this server.

  13. Аватар

    создал файл index.php с содержимым phpinfo.
    Если обратиться в корень сайта, то отображается информация phpinfo, но если например index.php переименовать в phpinfo.php, то при обращении по http://адрессервера/phpinfo.php открывается просто белая страница. Мне кажется апач не отрабатывает *.php кроме index.php, т.к переношу сайт с ubuntu где php 5.3 на Centos 7 где php 5.4 — и страница сайта index.php — отображается с кучей ошибок, и так же если обращаться напрямую к страницам *.php в корне сайта, то получаем белый экран.

    • Аватар

      Сам нашел ответ на свой вопрос.
      В CentOS 7 по умолчанию в php.ini прописано short_open_tag=Off, нужно было переключить в «on» чтоб заработал php код.

  14. Аватар
    Скромный

    Стесняюсь спросить, какая версия MariaDB у Вас устанавливается представленным способом — бета 10.3 или стабильная 10.2?

  15. Аватар

    Добрый день! Прописал новый путь к сайту, создал файлик site1.conf, но после перезапуска апаче выдаёт ошибку
    Job for httpd.service failed because the control process exited with error code. See «systemctl status httpd.service» and «journalctl -xe» for details.
    В логах написанно:
    ah00170 caught sigwinch, shutting down gracefully.
    Подскажите в чём может быть проблема

    • Zerox

      Гугл выдает много вариантов решения этой проблемы. Предлагаю им воспользоваться. Заочно я все равно ничем не помогу.

      • Аватар

        Да, спасибо я разобрался, но теперь возникла другая проблема, я добавил сайт в новую дерикторию, создал для него файл — конфиг, но выбивает тестовая страница апаче

  16. Аватар

    А есть у вас на сайте как это сделать?

    • Zerox

      Так в этой же статье и рассказано. Но нужно хоть какое-то понимание происходящего. Если совсем ничего не понятно, то лучше freepbx и сайты разнести по разным серверам. Тут все же нужен некоторый опыт и навык, чтобы все аккуратно сделать, и чтобы работало :)

      • Аватар

        Значит будем разбираться. Все таки первую неделю работаю с линуксом. Раз смог поднять два сервера в разных городах и настроить между ними атс, то и с этим разбирусь. А за сайт спасибо. Очень много почерпнул от сюда.

  17. Аватар

    Здравствуйте. Установил я сначала FreePBX, все у меня заработало. Потом решил установить веб сервер. И получается загвоздка. Теперь через ip я захожу на apache, а на freepbx не могу зайти. Я так понимаю это из-за того, что они находятся на одном порту (*:80).
    Как мне теперь настроить, что бы работал и apache и freepbx? Ну это относится и к другим сайтам (Если я создам еще несколько сайтов, то нужно наверное прописывать отдельно каждый сайт). Подскажите пожалуйста

    • Zerox

      Нужно настраивать виртуальные хосты, каждый сайт, в том числе и freepbx — отдельный виртуальный хост.

  18. Аватар
    Владимир

    Здравствуйте! У Вас статья по установке LAMP на базе CentOS.. Почему выбор пал на данный дистрибутив, почему не Debian?

  19. Аватар
    Дмитрий

    Здравствуйте! Подскажите пожалуйста, столкнулся с такой проблемой, при установке httpd и создания site1.ru.conf сразу стартует SELINUX и ни как эту заразу не отключить. То есть до создания этого конфига httpd сразу ложится. 80 порт в iptables прописан.
    Вопрос вот в чем, как это можно вылечить?
    Заранее спасибо.

    • Аватар
      Дмитрий

      Я ошибся, сразу после перезапуска службы httpd все ложится и стартует SELINUX

    • Zerox

      Если не получается настроить selinux, то его как минимум можно отключить:
      https://serveradmin.ru/centos-7-nastroyka-servera/

      • Аватар
        Дмитрий

        Спасибо! Я до сих пор не понимаю, как он включался, как раз по этому гайду и делал.
        Selinux включался после того как создавал конфиг site1.ru.conf, данная ошибка была на протяжении 4 дней. Пытался найти разобраться, потом плюнул и заново все накатил. Ошибка пропала. Делалось все один в один.
        Поэтому вообще ни чего не понимаю.
        А За статью огромное спасибо!

  20. Аватар

    Установил на виртуальную машину. Настроил вебсервер. Все работает отлично. С хоста на гостевую заходит через веб. Но с локалки зайти не получается ни по ip ни по адресу. Пинг есть и по ip и по site.tt в обе стороны(пробовал с нескольких компов).
    В файрволе удалил все правила, оставил только все разрешено во овсе стороны.
    Подозреваю что все таки что то блокирует входящий трафик на http.
    На виртуалке сетевое соедиенние работает как мост

  21. Аватар

    Там на этапе когда у вас уже можно открыть тестовую страницу апача с 123, нужно было еще открыть 80 порт в iptables, т.к. по умолчанию в 7 centos врядли он будет открыт.
    команда:
    iptables -I INPUT -p tcp —dport 80 -j ACCEPT
    и команда:
    iptables-save>/etc/sysconfig/iptables

    • Zerox

      Я в самом начале дал ссылку на статью с настройкой сервера и сделал акцент, что настройка firewall рассматривается там. А так конечно верно, если не открыть 80-й порт, ничего не заработает.

  22. Аватар

    Здравствуйте, можете мне помочь?
    У меня следующая проблема: создал несколько Виртуальных хостов, но при обращение на любой из них открывается дефолтовый сайт bиз этого каталога /var/www/html.
    с DNS настройками все правильно.

    • Zerox

      А чем тут заочно поможешь? Где-то ошибка, виртуальные хосты не работают. Надо внимательно проверить все конфиги.

    • Аватар

      Тут не нужна никакая заочная помощь.
      В этом полезном мануале не указан ряд важных дополнений (как и это), без которых работать не будет.
      Так,
      /etc/httpd/conf нужно обязательно раскомментировать строчку NameVirtualHost *:80, включающую разрешение по именам, иначе при добавлении в conf.d/ файлов конфигурации виртуальный сайтов, висящих на одном порту, апач будет предупреждать, что они перекрываются по портам и что будет открываться только первый доступный.

  23. Аватар

    Здравствуйте,

    Подскажите новичку: я установил апач и создал на нем свой сайт — как настроить доступ к нему с других пк в локальной сети без редактирования по отдельности на каждом пк файла hosts?

    • Zerox

      Только настройкой dns сервера, который обслуживает эти компьютеры. В него надо добавить запись о вашем сайте.

  24. Аватар
    Дмитрий

    Не подскажете,что делать со следующей проблемкой. По дури решил переустановить mariadb, с удалением каталога /var/lib/mysql В итоге выдается ошибка при запуске,что mkdir не может создать каталог /var/lib/mysql, нет доступа. запускаю от рута. На другом сервере смотрел права, каталог создан группой mysql, пользователь mysql, я вручную создал каталог с такими же правами. В итоге та же ошибка.

    • Zerox

      Пробовать надо разные варианты. С правами где-то ошибка. Либо на самом каталоге, либо по пути к нему. Создай сам пустой каталог с нужными правами.

      • Аватар
        Дмитрий

        Да, разобрался в итоге, там в итоге была проблема не в самом каталоге,а в сокет файле мускула. Теперь вот проблема с виртуальными хостами. Я поставил GLPI и все работает по ссылке типа http://x.x.x.x/glpi. Но стоит только добавить в conf.d конфиг странички, загружается только она, а gpli выдает 404 ошибку. Я так понимаю это из-за параметра DocumentRoot, указанного в моем конфиге для сайта?На этом моменте я туплю.

  25. Аватар

    при выполнении
    # systemctl restart httpd
    выдает ошибку could not open error log file /web/site1.ru/logs/error.log
    сам файл в папке есть

    • Аватар
      Добрячок

      Я не Ванга, но возможно нужно отключить Selinux
      sestatus
      setenforce 0
      vi /etc/selinux/config -> SELINUX=disabled
      shutdown -r now
      Проверяем статус sestatus
      systemctl restart httpd

  26. Аватар

    В самом начале можно заменить вот эту строчку создания папок:
    mkdir /web && mkdir /web/site1.ru && mkdir /web/site1.ru/www && mkdir /web/site1.ru/logs

    На вот такую:
    mkdir -p /web/site1.ru/{www,logs}/

    А так за мануал спасибо :)

    • Zerox

      Да, спасибо за подсказку. Так можно сделать и я знаю об этом. В статьях стараюсь использовать конструкции как можно проще, чтобы было всем понятно, что я делаю.

    • Аватар

      Можно вообще сократить мануал и сделать немного поудобнее привязки:

      Часть до вывода страницы TEST 123 обязательна НО!!! тут забыли указать что еще нужно на firwalld открыть эти порты , иначе все увидят Фигу с маслом, делается это так:
      # firewall-cmd —zone=public —add-port=80/tcp —permanent
      #firewall-cmd —reload
      Только после этого вы увидите заветную страницу TEST 123
      —————————————————————————————————————————————————————————
      Далее отключаем присловутый Selinux : /etc/sysconfig/selinux выглядеть должно так:
      ————————————————————————————————————-
      # This file controls the state of SELinux on the system.
      # SELINUX= can take one of these three values:
      # enforcing — SELinux security policy is enforced.
      # permissive — SELinux prints warnings instead of enforcing.
      # disabled — No SELinux policy is loaded.
      SELINUX=disable
      # SELINUXTYPE= can take one of three values:
      # targeted — Targeted processes are protected,
      # minimum — Modification of targeted policy. Only selected processes are protected.
      # mls — Multi Level Security protection.
      SELINUXTYPE=targeted

      —————————————————————————————————————————————————————————
      Далее По установке PHP:

      Установка php в CentOS 7
      Для поддержки динамического содержимого сайтов выполним следующий шаг. Установим php в CentOS 7:

      # yum install -y php
      И следом еще несколько полезных компонентов. Установим популярные модули для php:

      # yum install -y php-mysql php-mbstring php-mcrypt php-devel php-xml php-gd
      Выполним перезапуск apache:

      # systemctl restart httpd
      Создадим файл в директории виртуального хоста и проверим работу php:

      # vim /var/www/index.php — тут создаём файлик в который добавим строку
      # chown apache. /var/www/index.php — тут указываем куда смотреть Апачу НО!!! Он не выведет вам ничего Ибо отсюда начинается Кастом настроек.
      Чтобы всё это работало надо поправить файлик httpd.conf что лежит в /etc/httpd/conf/httpd.conf следующим образом:
      ———————————————————————————————————————————————————
      Будьте внимательны если будите копировать!!!
      ————————————————————-
      —————————————————————————————————————————————————————————
      В итоге у вас получится что Апач смотрит в /var/www/index.php и когда вы зададите команду http://ip-адрес сервера, то он выведет вам версию PHP, обновлять PHP или нет зависит от ПО что вы ставите, т.е есть ПО не работающее на современных версиях php7.0/7.1/7.2/7.3 и наоборот.
      ——————————————————————————————————————————————————————————

      • Zerox

        Отредактировал комментарий. Убрал конфиг, так как из него часть символов не перенеслись во время копирования. В комментариях не получится вставить конфиги со стрелками, в которые параметры директории указываются в конфигах apache.

        • Аватар

          Тогда лучше все убрать, таким сокращением вы убрали важные детали , что указаны в конфиге

Добавить комментарий

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

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.