Apache — Как установить Brotli на CentOS и добавить в Apache


Содержание

Установка и настройка Apache, PHP, MySQL на CentOS (+ PMA и FTP)

И так, к нам в руки попал новый сервер с только что установленной CentOS.

Задача — сделать из него полноценный веб сервер.

Все действия мы выполняем из под пользователя root.

1. Обновляем систему.

2. Устанавливаем любимые редакторы.

Лично я люблю пользоваться mcedit, который встроен в Midnight Commander, по этому его и ставлю:

# yum — y install mc

3. Настройка брэндмауера (iptables).

Чтобы не вдаваться в долгие сложные настройки, просто отключаем его следующей командой
CentOS 6: # service iptables stop & amp ; & amp ; chkconfig iptables off
CentOS 7: # systemctl stop firewalld & amp ; & amp ; systemctl disable firewalld

4. Устаналвиваем Apache, SSL.

# yum — y install httpd mod_ssl

Редактируем конфиг апача
Открываем в любимом редакторе файл /etc/httpd/conf/httpd.conf.
Редактировать можно в mcedit (# mcedit / etc / httpd / conf / httpd . conf ) или, для своего удобства, используйте следующие программы: WinSCP (для windows) или Coda (для MacOS X), которые позволяют работать с файлами на сервере через протокол SFTP (тот-же SSH, только для файлов).

В ServerName пишем ip адрес или имя сервера.

Строчку IncludeOptional conf.d/*.conf переносим в самый конец файла.
А перед ней добавляем главный виртуалхост:

Ещё советую закомментировать строку # CustomLog logs/access_log combined

Прописываем Apache в автозапуск:
CentOS 6: # chkconfig httpd on
CentOS 7: # systemctl enable httpd . service

Запускаем Apache:
CentOS 6: # service httpd start
CentOS 7: # systemctl start httpd . service

Создаем тестовую страницу:

It Works!

Проверяем результат, открыв в браузере с другой машины IP-адрес сервера:

Если надпись It Works! появилась, продолжаем дальше

5. Устанавливаем PHP с некоторыми его доп. компонентами

# yum — y install php php — common php — gd php — xml php — mbstring

Перезагружаем Apache:
CentOS 6: # service httpd restart
CentOS 7: # systemctl restart httpd . service

Проверяем PHP:
Создадим php скрипт выводящий информацию о php:

Смотрим по адресу http://IP-адрес_сервера/inf.php
Если информация отобразилась, продолжаем дальше.

6. Устанавливаем MySQL или MariaDB.

В связи с тем, что MariaDB набирает все большую популярность за свои выдающиеся характеристики и полную совместимость с mysql приложениями, рассмотрим оба варианта:

Ставим MySQL

# yum — y install mysql mysql — server

Прописываем MySQL в автозапуск:
CentOS 6: # chkconfig mysqld on
CentOS 7: # systemctl enable mysqld

Запускаем MySQL:
CentOS 6: # service mysqld start
CentOS 7: # systemctl start mysqld

Устанавливаем root пароль MySQL:
# mysqladmin — u root password ‘new-password’
Где new-password — ваш новый root пароль для MySQL.

Или ставим MariaDB

# yum install — y mariadb — server mariadb

Прописываем MariaDB в автозапуск:
CentOS 6: # chkconfig mysql on
CentOS 7: # systemctl enable mysql

Запускаем MariaDB:
CentOS 6: # service mysql start
CentOS 7: # systemctl start mysql

Затем нужно запустить простой скрипт безопасной установки, который удалит некоторые опасные настройки по умолчанию и усложнит доступ к системе базы данных. Запустите интерактивный скрипт:
# mysql_secure_installation
Система спросит текущий root-пароль. Но поскольку система MySQL только что установлена, такого пароля пока что нет, потому просто нажмите enter. Затем вас спросят, хотите ли вы установит пароль, введите Y и следуйте инструкциям.
На все остальные вопросы просто нажмите enter.

Подключаем и проверяем

Устанавливаем модуль php для работы с БД
# yum — y install php — mysql

Проверяем MySQL (или MariaDB):
Создаём и редактируем проверочный фаил mysqltest.php
# mcedit / var / www / html / mysqltest . php
Копируем в него следующий код:

К сожалению, не доступен сервер mySQL

К сожалению, не доступна база данных

Ошибка в запросе

Сохраняем. Проверяем:
http://IP-адрес_сервера/mysqltest.php (после успешной проверки скрипт желательно удалить)
Если вывелась версия MySQL сервера, то продолжаем.

7. Настраиваем хосты в Apache.


После того, как мы убедились, что все основные веб-службы у нас хорошо работают, можно переходить к созданию директорий сайтов.
Структура у нас будет такая:
/home/ — директория с сайтами
/home/site1.ru/ — директория отдельного сайта
/home/site1.ru/www/ — файлы этого сайта
/home/site1.ru/logs/ — логи этого сайта
/home/site1.ru/tmp/ — временные файлы этого сайта

И так, создаем в /home/ директории сайтов и в каждом из них папки www, logs, tmp.

После этого прописываем наши хосты в конфиг апача:
/etc/httpd/conf.d/ — В эту директорию будем создавать отдельный конфиг фаил для каждого сайта (так удобнее).
Файл site1.conf:

Такой-же фаил надо создать для каждого сайта из директории /home/
После этого, перезапускаем апач:
CentOS 6: # service httpd restart
CentOS 7: # systemctl restart httpd
Если апач вдруг не запустился, лог ошибок всегда можно посмотреть в /var/log/httpd/

Примечание:
Если столкнулись с ошибкой доступа к файлам или директориям, то необходимо убедиться, что в файле /etc/sysconfig/selinux значение SELINUX равно disabled, если нет, то выставить и перезагрузить сервер командой # reboot.

Проверяем:
Для проверки совершенно не обязательно менять NS записи домена, достаточно отредактировать файл hosts на компьютере, с которого вы производите настройку. В windows он обычно лежит в C:\Windows\System32\drivers\etc\, в nix системах в /etc/

Добавляем туда строчку:
192.168.1.5 site1.ru
Где 192.168.1.5 — ip адрес вашего сервера.
Далее, создаем в /home/site1.ru/www/ фаил index.html с каким нибудь текстом.
Октрываем в браузере http://site1.ru/
Если видим там его содержимое, то продолжаем.

8. Установка и настройка PhpMyAdmin (PMA)

Ставить будем вручную. Для этого нам потребуется менеджер загрузок wget.
Если у вас нет, то ставим:
# yum — y install wget
Идем на http://www.phpmyadmin.net/home_page/downloads.php и копируем ссылку на самую последнюю мультиязычную версию PhpMyAdmin со сжатием .zip (На данный момент это — http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/4.2.8/phpMyAdmin-4.2.8-all-languages.zip).
Идем в /var/www/html/:
# cd / var / www / html /
Скачиваем PMA:
# wget http : //sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/4.2.8/phpMyAdmin-4.2.8-all-languages.zip
В директории появится архив phpMyAdmin-4.2.8-all-languages.zip, распаковываем его:
# unzip phpMyAdmin — 4.2.8 — all — languages . zip
Переименуем директорию phpMyAdmin-4.2.8-all-languages в pma:
# mv phpMyAdmin — 4.2.8 — all — languages pma
Удалим архив phpMyAdmin-4.2.8-all-languages.zip т.к. он нам больше не нужен:
# rm phpMyAdmin — 4.2.8 — all — languages . zip

По идее у нас уже полностью рабочий PhpMyAdmin должен быть доступен по адресу — https://IP-адрес_сервера/pma/

9. Установка и настройка FTP клиента

Лично мне нравится использовать ProFTPD.
Как его установить и настроить на CentOS читаем тут — Установка и настройка ProFTPD на CentOS.

linux-notes.org

Установка Apache, PHP с suPHP на CentOS/RedHat/Fedora

suPHP — это инструмент для выполнения скриптов PHP с правами их владельцев, а не пользователя Apache. С помощью suPHP вы также можете использовать PHP4 и PHP5 . В этой теме «Установка Apache, PHP с suPHP на CentOS/RedHat/Fedora» показано, как установить и использовать suPHP с PHP4 и PHP5.

suPHP интегрируется в Apache2 в качестве модуля.

В этой статье «Установка Apache, PHP с suPHP на CentOS/RedHat/Fedora» я расскажу как выполнить установку и настройку:

  1. Apache.
  2. PHP и некоторых нужных пакетов.
  3. suPHP.

Кроме того, я объясню, как:

  • Настроить apache для запуска виртуальных хостов для выбранных существующих пользователей.
  • Настроить PHP для работы c пользователями виртуального хоста (suPHP).

Предустановка.

Если пользователь и группа не существует, мы можете создать их следующим образом:

Далее, выставляем права на файл index.php (пермишены и владельца):

Установка Apache.

1) Установка веб сервера — Apache (httpd):

Параметр «-у» пропускает вопрос на подтверждение установки.

2) Запускаем сервер:

3) Тестируем, работает ли веб-сервер HTTP (одним из методов):

Если ваш апач находится не на localhost, то измените команду.

Настройка конфигурационного файла Apache

Я использовал конфигурацию по умолчанию, и, ничего не правил там.

Установка PHP и его пакетов

Вот некоторые основные PHP пакеты, которые вы возможно захотите установить их:

Затем установите mod_suphp, чтобы иметь возможность работать PHP для каждого пользователя, но для начала, подключите репозиторий RPMForge:

Исключим (выключим) репозиторий RPMForge из стандартного (если вы оставите его включенным, то он может повредить вашу систему).

Установка mod_suphp через yum из rpmforge репозитория:

!! ОЧЕНЬ ВАЖНО !!: Исправьте PHP обработчик:

Если вы не выполните команду что выше (замену с «x-httpd-php=php:/usr/bin/php» на «x-httpd-php=»php:/usr/bin/php-cgi»»), то вы получите следующие ошибки:

Убедитесь, что установлен PHP и загружается с помощью FastCGI, а не через «Apache 2.0 Handler». Вы можете увидеть данную информацию через страницу phpinfo.

После установки, нужно отредактировать конфигурационный файл suphp:

Следующим шагом, стоит внести изменения для обработки PHP и для этого, нужно отредактировать:

И закоментируйте или удалите все, кроме следующего текста ( нужно добавить именно его):

Так же, нужно проверить чтобы небыли прописаны следующие строки:

Закоментируйте их как у меня.

Добавьте следующие изменения в файл /etc/php.ini:

И добавляем, если таких параметров нет:

Добавления виртуального хоста в Apache


Эта конфигурация создает виртуальный хост для пользователя suphp_admin с доменом linux-notes.org и www.linux-notes.org и его группой suphp_group. Настройте имена пользователя и своих доменов по усмотрению.

Открываем/создаем виртуальный хост:

И добавляем виртуальный хост:

Тестируем PHP с suPHP

Отредактируем файл, который расположенный в папке пользователя, в данном примере, пользователь invision:

Наконец, открываем свою страницу для которого создали виртуальный хост Apache, например:

Страница должна вывести имя пользователя от которого запускается данный PHP скрипт:

Если он выводит Apache, то что-то не так с конфигурацией suPHP.

Обработка ошибок и лог-файлы

Вы можете просмотреть подробную информацию о ошибках Apache в лог файле:

Кроме того, вы можете просмотреть логи самого suPHP:

Как правило, suPHP покажет подобное:

На этом, у меня все, тема «Установка Apache, PHP с suPHP на CentOS/RedHat/Fedora» завершена.

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Web-сервер на CentOS 7.1 – установка и настройка Apache, PHP и MySQL

Если у Вас встала задача развернуть Web-сервер на операционной системе Linux CentOS 7.1 с использованием Apache, PHP и MySQL (LAMP), то данный материал в этом Вам поможет, так как сейчас мы пошагово рассмотрим весь процесс установки и настройки веб сервера Apache, языка программирования PHP и СУБД MySQL с подробными комментариями, так как этот сайт для начинающих.

Операционная система Linux и в частности дистрибутив CentOS выбран не случайно, так как он является одним из самых популярных дистрибутивов, которые активно используется в качестве платформы для web-серверов, кстати, говоря о том, что это за дистрибутив и как его установить, мы с Вами подробно разговаривали вот здесь.

И так приступаем и начнем мы с небольшой настройки самой операционной системы, а конкретно откроем необходимые порты на файрволе, для того чтобы иметь возможность обращаться к web-серверу по этим портам.

Примечание! Еще раз обращаю Ваше внимание на то, что все действия мы будем выполнять в CentOS версии 7.1, так как в 6 версии и ниже многое делается по-другому. Также в качестве СУБД в CentOS 7.1 используется полностью бесплатная MariaDB, это ответвление MySQL.

Открытие портов в файрволе на CentOS 7.1

Как уже было сказано выше, для того чтобы наш web сервер был доступен по определенным портам, т.е. обычно это 80 для http и 443 для https, необходимо открыть соответствующие порты на файрволе, делается это достаточно просто, поэтому отключать файрвол, как рекомендуют некоторые web мастера, нет необходимости и я даже больше скажу — это крайне не рекомендуется.

Примечание! Все мы будем делать в терминале (консоли) Linux, поэтому неважно установлена ли графическая оболочка у Вас или нет.

Выполняем от имени суперпользователя следующие команды, 1 для открытия 80 порта, 2 для 443 и 3 для перезапуска файрвола:

Установка и настройка Web-сервера Apache на CentOS 7.1

Теперь устанавливаем HTTP сервер Apache, это также делается очень просто, выполняем еще 3 команды, первая — это непосредственно сама установка http сервера с модулем ssl, вторая — это его запуск, и третья — это включение в автозагрузку.

Примечание! Перед запуском команд проверьте, подключен ли у Вас Интернет. Эти и все остальные команды выполняются от имени суперпользователя (root).

После того как Вы установили, запустили и поместили в автозагрузку Apache, необходимо проверить работу этого http сервера, для этого просто вводим в браузере ip адрес сервера или если у Вас CentOS со средой рабочего стола, то достаточно указать 127.0.0.1, т.е. localhost непосредственно на самом сервере в браузере. В ответ Вы должны получить что-то вроде этого

Цукерберг рекомендует:  Самые громкие кибератаки 21 века

Это заставка означает, что http сервер установлен и по умолчанию отображается страница приветствия.

Убираем страницу заглушку

Теперь нам необходимо настроить наш web сервер Apache, и первое что нужно сделать, это убрать страницу заглушку, для этого редактируем файл welcome.conf (напомню, что все делаем от имени root), например, редактором nano, в этом файле всего лишь нужно закомментировать все не закомментированные строки, знак комментария # (решетка).

Для сохранения нажимаем сочетание клавиш Ctrl+O, затем для подтверждения жмем Enter и для выхода из редактора Ctrl+X.

Проверяем работу, и у нас должно отобразиться вот это

Т.е. список каталогов и файлов, но так как у нас еще нет никаких файлов и папок в корневом каталоге, то, соответственно, ничего и не отображается.

Настраиваем каталоги http сервера

Теперь давайте создадим структуру каталогов и соответственно сами каталоги для наших сайтов, и добавим файл конфигурации хоста, в котором будут храниться настройки нашего первого тестового сайта. Предлагаю следующую структуру, в корневой директории http сервера, т.е. в /var/www/html/ будем создавать отдельные каталоги для каждого сайта, например, для тестового сайта структура следующая:

/var/www/html/testsite/www/ — файлы сайта

/var/www/html/testsite/logs/ — логи сайта

т.е. в домашней директории (html) создаем папку с названием сайта (testsite), в которой создаем папки www и logs, в первой из которых будут располагаться все файлы и папки сайта, а во второй лог обращений и лог ошибок.

Данные каталоги создаем следующими командами:

Настраиваем конфиг для тестового сайта

Давайте создадим конфигурационный файл для сайта, для каждого сайта будем делать отдельный файл, в нашем случае предлагаю назвать его также как и корневой каталог, т.е. testsite, расширение conf, в итоге мы должны создать файл testsite.conf в директории с остальными конфигами (мы туда уже заглядывали) т.е. в /etc/httpd/conf.d/

Открываем его на редактирование тем же самым редактором nano

И вносим следующие настройки (я их прокомментировал)

Сохраняем и закрываем тем же самым способом, как мы это делали чуть ранее.

Теперь нам нужно перезапустить Apache, но если мы попытаемся это сделать, у нас ничего не получится, http сервер остановится, но не запустится и в данном случае это будет связанно с настройками безопасности SELinux, а если говорить конкретно, то веб сервер попытается записать данные в лог, но не сможет, поэтому давайте перейдем к настройкам SELinux.

Настраиваем SELinux в CentOS 7.1 для WEB сервера

SELinux (Linux с улучшенной безопасностью) – это система контроля доступа, которая является частью ядра Linux. В некоторых дистрибутивах Linux данная система безопасности по умолчанию включена, например, как у нас в CentOS. В Интернете можно встретить статьи, где веб мастера рекомендуют вообще выключать систему SELinux, также как и файрвол, но самом деле этого лучше не делать, а просто настроить эти компоненты, файрвол мы уже настроили выше, теперь давайте настроим SELinux.

Первое, что мы сделаем — это разрешим посылать запросы из скриптов к базе данных, это делается вот так:


А затем как раз зададим контекст безопасности для каталога logs, чтобы web-сервер мог писать в него, первой командой мы задаем этот контекст безопасности, а второй переконфигурируем SELinux

Теперь давайте перезагрузимся

Проверяем работу HTTP-сервера, как обычно обращаемся в браузере к нашему серверу по его адресу. В данный момент мы должны получить ответ Forbidden

т.е. отказано в доступе, так как никаких файлов в нашем каталоге еще нет, а листинг директорий мы отключили.

Устанавливаем PHP на CentOS 7.1

Для установки языка программирования PHP на CentOS необходимо выполнить следующую команду, но учтите, что если Вы используете дополнительные расширения PHP, то их необходимо включать в установку, например, мы сразу установим расширение для работы с базой MySQL (указываем название расширения через пробел). Если Вы не знаете, какие расширения Вы будете использовать, то ничего страшного, потом их конечно можно доустановить, итак, команда для установки php и расширения mysql будет выглядеть следующим образом (все от имени root):

Для проверки установился ли PHP, создаем тестовый файл (например, таким же способом как мы создавали конфиг Apache чуть выше), допустим с названием test.php в директории тестового сайта (/var/www/html/testsite/www/), содержание файла следующее (просто информация о PHP)

После создания мы обращаемся к этому файлу из браузера, например ip_адрес/test.php

В ответ мы должны получить вот такую страницу

Как видите, у нас установилась версия PHP 5.4.16.

Устанавливаем MySQL/MariaDB на CentOS 7.1

В операционной системе CentOS 7.1 в качестве сервера баз данных используется не сама СУБД MySQL, а ее ответвление MariaDB. Эти базы полностью совместимы, только MariaDB разрабатывается и поддерживается сообществом (как Вы знаете, MySQL поддерживает компания Oracle) и является полностью бесплатной.

Для установки MariaDB пишем следующую команду

Помещаем в автозагрузку

Задаем пароль для root пользователя

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

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

Проверяем работу MariaDB

Чтобы проверить работу MariaDB исправим немного наш тестовый скрипт (test.php). Пишем следующий код PHP.

Также в браузере вызываем test.php и если все хорошо, то в ответ мы получим версию MariaDB, в моем случае это 5.5.41-MariaDB.

Вот мы с Вами и настроили полноценный WEB-сервер, надеюсь, данный материал был Вам полезен, удачи!

Как установить и настроить Apache Tomcat 9 в CentOS 8/7?

Apache Tomcat (ранее известный как Jakarta Tomcat) — это веб-сервер с открытым исходным кодом, разработанный Apache Foundation для предоставления чистого HTTP-сервера Java, который позволит вам легко запускать файлы Java, что означает, что Tomcat не является обычным сервером, как Apache или Nginx, потому что его главная цель — обеспечить хорошую веб-среду для запуска только приложений Java в отличие от других обычных веб-серверов.

В этой статье мы расскажем вам об установке Apache Tomcat 9 на RHEL/CentOS 8/7/6.

Шаг 1: Установка и настройка Java

Прежде чем приступить к установке Tomcat, убедитесь, что на вашем Linux-компьютере установлена ​​JAVA для запуска Tomcat. Если нет, установите последнюю версию JAVA или используйте следующую команду yum для установки доступных Java из репозиториев по умолчанию:

После установки Java вы можете проверить недавно установленную версию JAVA, выполнив следующую команду в вашей системе:

Пример вывода

Шаг 2: Установка Apache Tomcat 9

После установки JAVA в системе пришло время загрузить последнюю версию Apache Tomcat (т.е. 9.0.26), которая является самой последней стабильной версией на момент написания этой статьи. Если вы хотите выполнить проверку, перейдите на следующую страницу загрузки Apache и проверьте, доступна ли более новая версия:

Теперь загрузите последнюю версию Apache Tomcat 9, используя следующую команду wget, и настройте её, как показано ниже:

Примечание. Замените номер версии Apache Tomcat 9 прописанный в команде выше, на последнюю доступную версиею.

Перед запуском службы Tomcat настройте переменную среды CATALINA_HOME в своей системе с помощью следующей команды:

Теперь все готово для запуска веб-сервера tomcat с использованием сценариев, предоставляемых пакетом tomcat:

Пример вывода

Теперь, чтобы открыть Tomcat из браузера, перейдите к своему IP-адресу или домену с портом 8080 (поскольку Tomcat всегда будет работать на порте 8080), например: mydomain.com:8080, замените mydomain.com вашим IP-адресом или доменом:

Каталог по умолчанию для файлов Tomcat будет находиться в /usr/local/tomcat9, вы можете просматривать файлы конфигурации в папке conf, на главной странице, которую вы видели выше, когда вы открываете свой веб-сайт на порт 8080, в /usr/local/tomcat9/conf.

Шаг 3: Настройка Apache Tomcat 9

По умолчанию вы можете получить доступ только к странице Tomcat по умолчанию, чтобы получить доступ к административным и другим разделам, таким как «Состояние сервера», «Приложение менеджера» и «Диспетчер хостов». Вам необходимо настроить учетные записи пользователей для администраторов и менеджеров.

Для этого вам нужно отредактировать файл ‘tomcat-users.xml‘, расположенный в каталоге /usr/local/tomcat9/conf.

Настройка учетных записей Tomcat

Например, чтобы назначить роль manager-gui пользователю с именем «sedicomm» с паролем «t$cm1n1», добавьте следующую строку кода в файл конфигурации внутри раздела:

Аналогично, вы также можете добавить роль «admin-gui» для администратора с именем «admin» с паролем «adm!N», как показано ниже:

Включить удаленный доступ к Tomcat

По умолчанию доступ к разделу Manager и Host Manager ограничен только локальным узлом, чтобы разрешить доступ к этим страницам, необходимо указать IP-адрес или диапазон сети в файле конфигурации:

Затем найдите следующую строку и замените её на эту, чтобы разрешить tomcat доступ с IP-адреса 192.168.56.10.

Вы также можете разрешить tomcat доступ из локальной сети 192.168.56.0.

После настройки ролей администратора и менеджера перезапустите Tomcat и попробуйте получить доступ к разделу администратора:

Теперь нажмите на вкладку «Состояние сервера», она предложит вам ввести учетные данные пользователя, ввести имя пользователя и пароль, которые вы добавили выше в файле конфигурации:


Как только вы введете учетные данные пользователя, вы увидите страницу, аналогичную приведенной ниже:

Изменение порта Apache Tomcat

Если вы хотите запустить Tomcat на другом порту, скажите 80 порт. Вам нужно будет отредактировать файл ‘server.xml‘ в ‘/usr/local/tomcat9/conf/‘. Перед изменением порта обязательно остановите использование сервера Tomcat.

Теперь откройте файл server.xml с помощью редактора Vi.

Теперь выполните поиск «Connector port» и измените его значение с 8080 на 80 или любой другой порт, который вы хотите, следующим образом.

Чтобы сохранить файл и перезапустить сервер Apache Tomcat, используйте команду ниже:

Вот так, ваш сервер Tomcat будет работать на 80-порт.

Конечно, вы должны запустить все вышеперечисленные команды как root, если вы этого не сделаете, они не будут работать, потому что мы работаем над каталогом /usr/local, который является папкой, принадлежащей только пользователю root, если вы хотите, чтобы вы могли запускать сервер как обычный пользователь, но вам придется использовать папку HOME в качестве рабочей области для загрузки, распаковки и запуска сервера Apache Tomcat.

Чтобы получить некоторую информацию о вашем работающем сервере Tomcat и вашем компьютере, запустите:

Пример вывода

Вот и всё! Теперь вы можете начать развертывание приложений на основе JAVA в Apache Tomcat 9. Для получения дополнительной информации о развертывании приложений и создании виртуальных хостов ознакомьтесь с официальной документацией Tomcat.

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Установка и настройка Apache, MySQL, PHP, Exim, Dovecot, Ruby on Rails и Redmine на CentOS 5.4

Задача

Disclaimer

  • Поскольку я программист, постигаю азы администрирования во время решения поставленной задачи, не имея никакой теоретической базы, лишь опыт, к сожалению;
  • Крайне важным считаю отметить тот факт, что версии устанавливаемого Вами ПО должны совпадать перечисленным выше, особенно это касается mail-составляющей сервера (подробности ниже в п.7);
  • Описание в большей степень создавалось для для себя (руководствуясь правилом №5), тем не менее решил поделиться с общественностью. Может быть, найдутся пожелания и замечания — буду очень рад;
  • С одной стороны, старался сделать пункты независимыми, чтобы можно было не читать все, а обратиться лишь к интересующей информации, если есть такая необходимость. Но, поскольку, все же решается общая задача конфигурирования «от А до Я» то, с другой стороны, и связность пунктов присутствует;
  • Не претендую? ни в коем случае, на истину в последней инстанции, более того, кое-где оставляю вопросы на которые сам не нашел ответа;
  • Вряд ли Вы найдете здесь описание используемой команды или ее параметров, поскольку лучшее описание всегда будет в man.

Благодарности

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

Установка и настройка

0. Общая настройка системы

Установка Вашей timezone, осуществляется достаточно просто. Создается символическая ссылка /etc/localtime на timezone:
# rm -rf /etc/localtime
# ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime

После установки date позволит проверить успешность:
$ date
Thu Dec 5 16:59:03 MSD 2009

Существуют и другие варианты установки timezone, поэтому каждый может найти удобный для себя.

Warning! Варинат с setuptool:
# setup

к сожалению, не сработал. Видимо, не у меня одного — описание причины.

У меня не было файла hosts, что в определенный момент даже вызвало проблему, я добавил его в /etc со следующим содержимым:
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6

(Наверняка его не было так как на VDS минимальная конфигурация ОС, я взял файл с «полной сборки» CentOS 5.5)

Так же мне понадобился mc и screen. Последним рекомендую пользоваться, чтобы не испортить результат работы нескольких часов банальным дисконетом. Здесь можно быстро «научиться» им пользоваться.
Устанавливаем все очень просто:
# yum -y install mc screen

В дальнейшем, любую нехватку пакета можно устранить с помощью yum по аналогии, главное чтобы таковой нашелся в репозиториях. Я использовал: Remi, Atrpms (адаптированно для CentOS) и endpoint RPM repository (для Ruby и Ruby on Rails).

Здесь я выполнил обновление установленных пакетов. Думаю, что это разумно поскольку еще не подключено ни одного стороннего репозитория, поэтому новым версиям, из базовых репов, можно доверять. Для обновления используем:
# yum update

1. Установка Apache

Авторизуемся как root.
Проверяем, что не установлен Apache:
# rpm -qa | grep httpd

Усли команда ниже ничего не вернула — значит нет Apache, тогда ставим его:
# yum install httpd

Цукерберг рекомендует:  Алгоритм - Помогите решить задачку на java

Проверяем, что теперь он установлен:
# rpm -qa | grep -i http
httpd-2.2.3-43.el5.centos.3

При помощи следующей команды, можно добавить Apache в автозагрузку:
# chkconfig httpd on

Удовлетворимся версией из репозитория. Настройка Apache описана ниже.

2. Устанавливаем MySQL

# mkdir remi
# cd remi

Нижеследующие команды позиционируются для RHEL 5, но естественно, прекрасно работают на CentOS
Непосредственно загрузим и установим Remi:
# wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
# wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
# rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm

Нужно включить репозиторий Remi, т.к. по умолчанию он выключен.
Для этого поправим файл /etc/yum.repos.d/remi.repo дабы у [remi] стало enabled=1

Проверяем какая версия MySQL установлена:
# rpm -qa | grep -i mysql

Проверяем какая последняя версия MySQL доступна для установки:
# yum check-update mysql-server

Если нужно, теперь можно обновить:
# yum update mysql-server

3. Установка PHP

# yum install php

Проверяем, был ли установлен PHP:
# rpm -qa | grep -i php

Устанавливаем MySQL модуль для PHP:
# yum search php-mysql
Loaded plugins: refresh-packagekit
=========== Matched: php-mysql =============
php-mysql.i386 : A module for PHP applications that use MySQL databases
# yum install php-mysql

// Дополнительные модули можно установить при помощи команды:
// # yum install php-common php-mbstring php-mcrypt php-devel php-xml php-gd

Аналогично MySQL, обновляем PHP (из Remi).
Проверяем установленную версию PHP.
# rpm -qa | grep -i php

Проверяем последнюю доступную в резозитории версию PHP.
# yum check-update php

Обновляем PHP.
# yum update php

// Обновляем также любые дополнительные php модули, если они были установлены ранее:
// # yum check-update php-common php-mbstring php-mcrypt php-devel php-xml php-gd
// # yum update php-common php-mbstring php-mcrypt php-devel php-xml php-gd

4. Настройка Apache, с виртуальными хостами

Предварительно не мешало бы сделать backup httpd.conf, чтобы можно было в любой момент откатиться:
# cp httpd.conf httpd.conf.original

Это касается и всех других конфигов, которые будут подвергаться изменениям.

Редактируем файл /etc/httpd/conf/httpd.conf удобным для Вас редактором, добавляем следующие строки:
Eсли не было, тогда:
Listen 80

И в любом случае добавляем, заменим на Ваш IP адрес.
NameVirtualHost :80
Include /etc/httpd/conf/domains.conf

После этого создаем domains.conf, со следующим содержимым, учитывая что нужен vhost для домена example.com:

ServerName www.example.com
ServerAlias www.example.com example.com
ServerAdmin admin@example.com
DocumentRoot /var/www/example.com/html
ScriptAlias /cgi-bin/ /var/www/example.com/cgi-bin/
UseCanonicalName OFF
CustomLog /var/log/httpd/example.com.log combined
ErrorLog /var/log/httpd/example.com.error.log
LogLevel info

Options +Includes -Indexes
AllowOverride ALL
php_admin_flag engine ON

Не забудьте изменить на Ваш IP.
Здесь предлагается следующая структура директорий для расположения файлов сайтов, следовательно эти директории должны существовать:
/var/www//html
/var/www//cgi-bin
— Ваш домен.
Запускаем Apache:
# service httpd start

Если в будущем нужно будет его перезапустить, для этого выполните:
# service httpd restart

Проверить работает ли сервис можно так:
# service httpd status

Если возникли проблемы, лучший помощник — логи, посмотреть нужный лог можно так:
# tail -f /var/log/httpd/.error.log

5. Настройка MySQL

/.mysql_history
Думаю, не лишним будет очистка этого файла, или некоторых его строк после выполнения всех административных операций.

6. Настройка PHP

Здесь настройка зависит от задач, которые будут решаться с помощь php.
Путь конфигурационного файла PHP: /etc/php.ini
Скорее всего придется, установить timezone для этого в этом файле найдите строку
;date.timezone =

и замените на
date.timezone = «Europe/Moscow»

Без этой настройки у меня не правильную дату возвращали функции PHP, в частности date().

Понадобилась мне и установка ImageMagick, но он тянул за собой абсолютно не нужные на сервере иксы, поэтому решили совместно с NickLion собрать ImageMagick без иксов. Но ставить gcc и остальные необходимые пакеты на сервере не хотелось, поэтому собрали rpm, на другой машине и ее поставили на сервере.

7. Настройка почтового сервера (MTA и IMAP/POP3 сервера)


Sub disclaimer

Важно понимать тот факт, что настройка связки достаточно сильно зависит от версий, которые Вы выбрали. По крайней мере для меня этот этап был наиболее долгим и проблемным в основном благодаря тому, что версии в статях различались с версиями устанавливаемого ПО. Тут два варианта — либо используются только те версии ПО что указаны выше и все с высокой долей вероятности сразу заработает, либо берутся другие версии и «гарантировать» работоспособность данного мануала уже не получиться.
Очевидный вывод: статья неизбежно в будущем потеряет актуальность, но не стоит впадать в панику, Вы всегда может смело обратиться на Установка и настройка почтовых систем под FreeBSD, там наверняка будет что-то актуальное и полезное. И не страшно, что FreeBSD, обладая минимальными знаниями в nix системах без труда можно руководствоваться приведенными там статьями.

«Слепой» способ. Читаем, как минимум первые комментарии, чтобы устранить некоторые неточности статьи. Наверняка, не самый лучший способ, т.к. вряд ли кто-то станет ставить ПО и конфиги, не понимаю что он делает.

«Полный» способ, которым я и воспользовался, в отличие от других пунктов, описывать полностью не буду, лишь приведу ссылки на статьи взятые за основу конфигурирования и опишу основные изменения, которые вносились.
Кто-то скажет, отвратительный способ описания и, возможно, будет прав. Но с другой стороны, кому нужно разобраться с установкой и конфигурированием (а не скопировать и удовлетвориться тем что есть, такой метод подачи — то что нужно, другим смотреть быстрый способ выше) надеюсь останутся довольны.
Если все же, будет большое число желающих увидеть собранную в одном месте информацию о решении поставленной задачи на CentOS, я буду очень рад и не поленюсь описать полностью, тогда уже и более новой версией Dovecot.

Отмечу, что Exim нужно устанавливать с поддержкой Dovecot и MySQL.
Проверяем, что установленный Exim поддерживает авторизацию через Dovecot
#: exim -bV | grep dovecot
Authenticators: cram_md5 cyrus_sasl dovecot plaintext spa

Такого Exim нет в репах CentOS 5.4, поэтому я просто искал по имени в сети нужные мне rpm и устанавливал их. Очень не хотелось собирать из исходников. Ставил последнюю версию, на текущий момент это 4.72, и MySQL lookup support (exim-mysql-4.72-41.el5.i386.rpm) для него. Нашел здесь как Exim так и MySQL lookup support.
Почему подключенный репозиторий ATrpms не позволяет найти и установить этот Exim с помощью yum?
Кстати, не стоит переживать, что установленный Exim не содержит в информации о себе поддержку MySQL.
Наверное потому что «поддержка» идет отдельно? Уж простите мою темноту.
Я полагаю, что если Exim собрать с поддержкой MySQL по идеи он (mysql) должен быть виден здесь:
# exim -bV | grep Lookups
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmnz dnsdb dsearch ldap ldapdn ldapm nis nis0 nisplus passwd sqlite

Dovecot ставил из репозитория. Кому нужна более новая версия руководствуйтесь официальным Wiki.

Основная статья по установке и настройке Exim + Dovecot.
Warning! Ориентированная на FreeBSD, но никаких трудов не составляет адаптировать под CentOS:

Права на сокеты для аутентификации мне пришлось расширить, иначе сыпались ошибки в логи.

Если Exim не собирался из исходников, следовательно u > Здесь можно почитать как решается проблема с блокировкой в этой ситуации.
В этом пункте присутствует некое недопонимание — зачем нужно менять uid, gid? Почему эти значения используются при получении пользователя из БД и т.п.

Wiki с модификациями, которые обязательно необходимо наложить для указанных версий.

Очень хорошее описание тестирования установленной связки здесь.
После пунктов с установкой Exim и Dovecot. Рекомендую пройти описанные тесты, они могут помочь в решении возникших проблем.
Warning! Статья ориентированна на FreeBSD.

Добавляем установленные и настроенные сервисы в автозагрузку:
# chkconfig exim on
# chkconfig dovecot on

8. Установка Ruby on Rails и Redmine (Passenger)

В качестве альтернативы, встретил пометку о том, что «работоспособной» статей является так же — Installing Rails on CentOS 5.

Установим endpoint RPM repository (для Ruby и Ruby on Rails):
# yum update
# cd /tmp
# wget https://packages.endpoint.com/endpoint-rpmsign.pub
# rpm —import endpoint-rpmsign.pub
# wget https://packages.endpoint.com/rhel/5/os/i386/endpoint-repo-1.0-1.i386.rpm
# yum localinstall endpoint-repo-1.0-1.i386.rpm
# yum clean all

Установим ruby-enterprise и ruby-enterprise-rubygems:
# yum install ruby-enterprise ruby-enterprise-rubygems

Перед началом установки с помощью gem можно создать файл

/.gemrc, если такого нет, и указать в нем:
gem: —no-ri —no-rdoc

Это заставит gem в последующем не устанавливать документацию. Зачем она на сервере!?

Дальше, Ruby on Rails но версии 2.3.5, такую как требует руководство Redmine. Сначала я поставил без указания версии, в следствии чего получил Rails 3.0.3 откуда, по моему возникла проблема с «<>», «<>» и т. п. на страницах Redmine.
Итак, для Redmine ставим версию 2.3.5:
# gem install -v=2.3.5 rails

Если возникла ошибка о том что требуется версия 1.3.6 или выше:
bundler requires RubyGems version >= 1.3.6

Ставим последнюю версию gems:
# wget http://production.cf.rubygems.org/rubygems/rubygems-1.3.7.tgz
# tar -zxvf rubygems-1.3.7.tgz
# cd rubygems-1.3.7
# ruby setup.rb config
# ruby setup.rb setup
# ruby setup.rb install

После чего установка rails отработала, напугав меня лишь последней строкой:
# gem install rails
Successfully installed thor-0.14.6
Successfully installed railties-3.0.3
Successfully installed bundler-1.0.7
Successfully installed rails-3.0.3
4 gems installed
Installing ri documentation for thor-0.14.6.
Installing ri documentation for railties-3.0.3.
Installing ri documentation for bundler-1.0.7.
Installing ri documentation for rails-3.0.3.
File not found: lib

С gems вышла странность: при установке yum говорит что версия 1.3.6 (собственно она так именована в репозитории), а установленный gem говорит иначе:
# gem -v
1.3.5

Видимо в репах ошибка закралась.

Далее выбираем подходящий для себя способ получения Redmine, можно скачать и распаковать архив, кто-то рекомендует получить из svn хранилища или git репозитория. Я выбрал первый вариант:
# cd /var/www
# wget http://rubyforge.org/frs/download.php/73457/redmine-1.0.4.tar.gz
# tar -xvf redmine-1.0.4.tar.gz
# mv redmine-1.0.4 redmine
# cd redmine

Все же не удалось избежать установки компилятора. Явно, мы собирать ничего не будет, но а gem никак не обойдется без gcc и еще нескольких пакетов для дальнейшей установки:
# yum install mysql-devel
# yum install make gcc gcc-c++
# gem install mysql

Создаем БД и пользователя для Redmine, любым удобным для Вас способом:
# mysql -u root -p
mysql> CREATE DATABASE redmine CHARACTER SET UTF8;
mysql> GRANT ALL PRIVILEGES ON redmine.* TO ‘redmine’@’localhost’ IDENTIFIED BY ‘‘ WITH GRANT OPTION;
mysql> quit

Создаем копию конфикурационного файла Redmine
# cp config/database.yml.example config/database.yml

После чего редактируем его, меняя production для вновь созданной БД, подробности на официальной странице.
Далее, все как требует документация Redmine:
# rake generate_session_store
# RAILS_ENV=production rake db:migrate
# RAILS_ENV=production rake redmine:load_default_data
Поскольку все операции проводились под root, а нужно дать apache доступ, выполним:
# chown -R apache:apache files log tmp public/plugin_assets
# chmod -R 755 files log tmp public/plugin_assets

Теперь установим и сконфигурируем Passenger:
# yum install httpd-devel apr-devel
# gem install passenger
# passenger-install-apache2-module

После установки passenger добавил следующие строки в конфиг Apache — /etc/httpd/conf/httpd.conf
LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.0/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.0
PassengerRuby /usr/local/bin/ruby

Перезапустим httpd:
# service httpd restart

Теперь Redmine должен заработать успешно! Если возникли проблемы, читаем логи и мои пометки ниже.
Для справки.
Список загруженных модулей Apache можно увидеть при помощи команды:
# apachectl -t -D DUMP_MODULES

Если у возникнет проблема, что повсеместно на страницах Redmine виден текст «<>», «<>» и подобные, нужно сделать downgrade для i18n до 0.4.2. У меня такая проблема была, думаю из-за того что я изначально поставить rails 3.0.3, а после откатился до требуемой в доках Redmine версии v2.3.5. Решение этой же проблемы.

Спасибо за Ваше внимание и уделенное для прочтения время.
Удачи в настройке и поисках решения проблем!

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

Установка и настройка сервера Apache

Apache — это популярнейший свободный веб-сервер. Состоянием на 2020 год он используется на 33% всех сайтов интернета, а это приблизительно 304 миллиарда сайтов. Этот веб-сервер был разработан в далеком 1995, как замена для популярного того сервера NCSA и исправил множество его проблем. Ходят слухи что его имя походит от a patchy, заплатка, так как он исправлял ошибки NCSA. Сейчас же, это кроссплатформенная программа, поддерживающая Windows, Linux и MacOS и обеспечивающая достаточную гибкость, настраиваемость и функциональность. Программа имеет модульную структуру, что позволяет расширять ее функциональность почти до бесконечности с помощью модулей.

Установить Apache в Linux можно с помощью нескольких команд, но программа предоставляет очень большое количество настроек, которые можно изменить, а также модулей, после включения которых она будет работать лучше. В этой статье будет рассмотрена установка и настройка Apache, в качестве основной системы мы будем использовать Ubuntu, но вы можете повторить эти действия в любом другом дистрибутиве. Будет рассмотрена не только установка самой программы, но и способы ее настройки, настройка виртуальных хостов apache, а также самые полезные модули.

Установка Apache

На данный момент, самая новая версия программы 2.4 поэтому и будет рассмотрена настройка apache 2.4. Как я уже говорил, в Linux программа устанавливается буквально в пару команд. Для установки в Ubuntu сначала обновим систему до самой новой версии:

sudo apt update
$ sudo apt upgrade

Затем установка apache2:

sudo apt install apache2

В других дистрибутивах пакет программы называется либо так, либо httpd и его установка у вас не вызовет трудностей.

После завершения установки нужно добавить веб-сервер в автозагрузку, чтобы не запускать его вручную после включения компьютера:

sudo systemctl enable apache2

Настройка Apache

Уже прошло то время, когда конфигурация Apache хранилась в одном файле. Но оно и правильно, когда все распределено по своим директориям, в конфигурационных файлах легче ориентироваться.

Все настройки содержатся в папке /etc/apache/:

  • Файл /etc/apache2/apache2.conf отвечает за основные настройки
  • /etc/apache2/conf-available/* — дополнительные настройки веб-сервера
  • /etc/apache2/mods-available/* — настройки модулей
  • /etc/apache2/sites-available/* — настойки виртуальных хостов
  • /etc/apache2/ports.conf — порты, на которых работает apache
  • /etc/apache2/envvars

Как вы заметили есть две папки для conf, mods и site. Это available и enabled. При включении модуля или хоста создается символическая ссылка из папки available (доступно) в папку enable (включено). Поэтому настройки лучше выполнять именно в папках available. Вообще говоря, можно было бы обойтись без этих папок, взять все и по старинке свалить в один файл, и все бы работало, но сейчас так никто не делает.

Сначала давайте рассмотрим главный файл конфигурации:

Timeout — указывает как долго сервер будет пытаться продолжить прерванную передачу или прием данных. 160 секунд будет вполне достаточно.

Цукерберг рекомендует:  Как сделать правильное описание для вашего приложения

KeepAlive On — очень полезный параметр, позволяет передавать несколько файлов, за одно соединение, например, не только саму html страницу, но и картинки и css файлы.

MaxKeepAliveRequests 100 — максимальное количество запросов за одно соединение, чем больше, тем лучше.

KeepAliveTimeout 5 — таймаут соединения, обычно для загрузки страницы достаточно 5-10 секунд, так что больше ставить не нужно, но и рвать соединение раньше чем загрузились все данные тоже не нужно.

User, Group — пользователь и группа, от имени которых будет работать программа.

HostnameLookups — записывать в логи вместо ip адресов доменные имена, лучше отключить, чтобы ускорить работу.

LogLevel — уровень логирования ошибок. По умолчанию используется warn, но чтобы логи заполнялись медленнее достаточно включить error

Include — все директивы include отвечают за подключение рассмотренных выше конфигурационных файлов.

Директивы Directory отвечают за настройку прав доступа к той или иной директории в файловой системе. Синтаксис здесь такой:

Здесь доступны такие основные опции:

AllowOverride — указывает нужно ли читать .htaccess файлы из этой директории, это такие же файлы настроек и таким же синтаксисом. All — разрешать все, None — не читать эти файлы.

DocumentRoot — устанавливает из какой папки нужно брать документы для отображенияа пользователю


Options — указывает какие особенности веб-сервера нужно разрешить в этой папке. Например, All — разрешить все, FollowSymLinks — переходить по символическим ссылкам, Indexes — отображать содержимое каталога если нет файла индекса.

Require — устанавливает, какие пользователи имеют доступ к этому каталогу. Require all denied — всем запретить, Require all granted — всем разрешить. можно использовать вместо all директиву user или group чтобы явно указать пользователя.

Order — позволяет управлять доступом к директории. Принимает два значения Allow,Deny — разрешить для всех, кроме указанных или Deny,Allow — запретить для всех, кроме указанных. Теперь мы можем запретить доступ к директории для всех: Deny from all, а затем разрешить только для приложения от losst.ru: Allow from losst.ru.

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

У нас остался файл /etc/apache2/ports.conf:

В нем только одна директива, Listen, которая указывает программе на каком порту нужно работать.

Последний файл /etc/apache2/envvars, его вы вряд ли будете использовать, в нем указанны переменные, которые можно использовать в других конфигурационных файлах.

Дальше поговорим немного о htacess. Совсем немного.

Настройка сервера Apache через htaccess

Файлы .htaccess позволяют настраивать веб-сервер на Ubuntu для поведения в определенной директории. Все инструкции, указанные в этом файле выполняются как бы они были обвернуты в тег если бы находились в основном файле.

Важно заметить, что для того, чтобы сервер читал инструкции из .htaccess настройки для этой папки в основном файле или файле виртуального хоста не должны содержать AllowOverride None, чтобы могли работать все настройки нужно AllowOverride All.

А в остальном, здесь может выполняться любая настройка сервера apache, от включения модулей, до обычного изменения доступа к папке. Поскольку все параметры мы уже рассмотрели просто приведем пару примеров:

Order Deny,Allow
Deny from all

Запрещает всем доступ к этой папке, важно применить, для папок с конфигурацией. Чаще всего .htaccess используется для работы с модулем mod_rewrite, который позволяет изменять запросы на лету:

RewriteEngine on
RewriteRule ^product/([^/\.]+)/?$ product.php? >

Но это очень обширная тема и выходит за рамки этой статьи.

Настройка модулей Apache

Как я уже говорил, Apache — модульная программа, ее функциональность можно расширять с помощью модулей. Все доступные модули загрузчики и конфигурационные файлы модулей находятся в папке /etc/apache/mods-available. А активированные в /etc/apache/mods-enable.

Но вам необязательно анализировать содержимое этих папок. Настройка Apache 2.4 с помощью добавления модулей выполняется с помощью специальных команд. Посмотреть все запущенные модули можно командой:

Включить модуль можно командой:

sudo a2enmod имя_модуля

sudo a2dismod имя_модуля

После включения или отключения модулей нужно перезагрузить apache:

sudo systemctl restart apache2

Во время выполнения одной из этих команд создается или удаляется символическая ссылка на файл модуля с расширением load в директории mods-available. Можете посмотреть содержимое этого файла, там только одна строка. Например:

Это к тому, что активировать модуль можно было просто добавив эту строчку в файл apache2.conf. Но принято делать именно так, чтобы избежать путаницы.

Настройки модулей находятся в той же папке, только в файле с расширением .conf вместо load. Например, посмотрим настройки того же модуля для сжатия deflate:

Файлы в папке conf-available, это такие же модули, только они установлены отдельно от apache, это может быть конфигурационные файлы для включения модуля php или любого другого языка программирования. Здесь работает все точно так же, только команды для включения и отключения этих модулей немного другие:

a2disconf имя модуля

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

sudo a2enmod expires
$ sudo a2enmod headers
$ sudo a2enmod rewrite
$ sudo a2enmod ssl

Модули expires и headers уменьшают нагрузку на сервер. Они возвращают заголовок Not Modified, если документ не изменился с последнего запроса. Модуль expiries позволяет устанавливать время, на которое браузер должен кэшировать полученный документ. Rewrite позволяет изменять запрашиваемые адреса на лету, очень полезно при создании ЧПУ ссылок и т д. А последний для включения поддержки шифрования по SSL. Не забудьте перезагрузить apache2 после завершения настроек.

Настройка виртуальных хостов Apache

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

Настройки хостов Apache расположены в папке /etc/apache2/hosts-available/. Для создания нового хоста достаточно создать файл с любым именем (лучше кончено с именем хоста) и заполнить его нужными данными. Обернуть все эти параметры нужно в директиву VirtualHost. Кроме рассмотренных параметров здесь будут использоваться такие:

  • ServerName — основное имя домена
  • ServerAlias — дополнительное имя, по которому будет доступен сайт
  • ServerAdmin — электронная почта администратора
  • DocumentRoot — папка с документами для этого домена

ServerName test.site
ServerAlias www.test.site
ServerAdmin webmaster@localhost
DocumentRoot /var/www/test.site/public_html
ErrorLog $/error.log
CustomLog $/access.log combined

Виртуальные хосты, как и модули нужно активировать. Для этого есть специальные утилиты. Чтобы активировать наберите:

sudo a2ensite test.site

Здесь test.site — имя файла виртуального хоста. Для отключения тоже есть команда:

sudo a2dissite test.site

Настройка виртуальных хостов Apache завершена и на публичном сервере это все бы уже работало, но если вам нужна настройка Apache на домашней машине, то вы ваш новый сайт не откроется в браузере. Браузер не знает такого сайта. И откуда ему знать? DNS службы не могут ничего сообщить об этом доменном имени. Но в системе Linux мы можем сами указать ip адреса для доменных имен в файле /etc/hosts. Поэтому добавляем в конец файла такие строки:

127.0.0.1 test.site
127.0.0.1 www.test.site

Вот, ну теперь будет работать, открывайте браузер, проверяйте.

Выводы

Вот и все. Установка и настройка Apache linux завершена, вы можете использовать программу для размещения ваших сайтов. Более того, вы не просто настроили ее, вы разобрались со всеми подробностями и теперь знаете чуточку больше. Если у вас остались еще вопросы, пишите в комментариях!

Установка Apache Tomcat 9 и GeoServer на Сentos 7

Установка Apache Tomcat 9 и GeoServer на Сentos 7


Tomcat (в старых версиях — Catalina) — контейнер сервлетов с открытым исходным кодом, разрабатываемый Apache Software Foundation. Реализует спецификацию сервлетов, спецификацию JavaServer Pages (JSP) и JavaServer Faces (JSF). Написан на языке Java.
Tomcat позволяет запускать веб-приложения, содержит ряд программ для самоконфигурирования.
Tomcat используется в качестве самостоятельного веб-сервера, в качестве сервера контента в сочетании с веб-сервером Apache HTTP Server, а также в качестве контейнера сервлетов в серверах приложений JBoss и GlassFish.

Подготовительный этап

Обновляем операционную систему, добавляем репозиторий EPEL

Устанавливаем необходимый софт

Устанавливаем Java 8. Пакет доступен в официальном репозитории

После завершения установки можно проверить установленную версию, используя следующую команду

Установка Apache Tomcat 9

С официального сайта Apache Tomcat скачиваем релиз программного обеспечения и распаковываем его

После распаковки был создан каталог с именем «apache-tomcat-9.0.13». Переименуем его

Выполним следующую команду, чтобы установить переменную среды CATALINA_HOME

Не рекомендуется запускать Apache Tomcat от пользователя root, поэтому мы создадим нового пользователя, который будет запускать сервер Tomcat. Так же изменим права доступа на все файлы каталога /opt/tomcat/

Создадим файл systemd, для запуска сервиса tomcat, со следующим содержимым

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

Настройка Apache Tomcat 9

Сделаем исполняемые скрипты запуска службы Tomcat, иначе он не запустится

Запускаем Tomcat Apache и добавляем его в автозагрузку

Откроем порт 8080 в фаерволле, чтобы можно было подключиться к сервису

Добавление пользователей

Для того, чтобы открыть доступ к Tomcat Manager, необходимо отредактировать файл tomcat-users.xml, добавив в него следующие строки

Не забываем поменять пароль на более защищенный

По умолчанию Tomcat Manager доступен только из браузера, работающего на том же компьютере, что и Tomcat. Если вы хотите удалить это ограничение, вам нужно отредактировать файл context.xml и закомментировать или удалить следующую строку:

Теперь что бы попасть на наш серевер с Tomcat, необходимо в браузере набрать: http://IP_address:8080/manager/html

Установка GeoServer

Для установки GeoServer необходимо скачать его с официального сайта и распаковать

Перенесем необходимый файл geoserver.war в каталог webapps

Что бы попасть на наш GeoServer, необходимо в браузере набрать:
http://IP_address:8080/geoserver/web/

Данные для авторизации по-умолчанию:

Если у вас уже стоял GeoServer, но вы забыли login/password для доступа в админку, файл с паролями располагается тут:
/data/security/usergroup/default/users.xml

Для изменения пароля, надо заменить строку с зашифрованным паролем:

ИТ База знаний

ShareIT — поделись знаниями!

Полезно

Узнать IP — адрес компьютера в интернете

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

Онлайн калькулятор подсетей

Калькулятор инсталляции IP — АТС Asterisk

Руководство администратора FreePBX на русском языке

Руководство администратора Cisco UCM/CME на русском языке

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Похожее и популярное

Пошаговый ввод в домен Windows 10

Apache или IIS – сравнение и преимущества

Погружение в Iptables – теория и настройка

Как восстановить пароль от root в CentOS 7


Полезные команды для управления Apache в Linux

Для работы с веб — приложениями

В этом руководстве мы опишем некоторые из наиболее часто используемых команд управления службами Apache (HTTPD) , которые полезно знать, разработчику или системному администратору, и держать эти команды под рукой. Мы покажем команды для Systemd и SysVinit.

Убедитесь, что следующие команды должны выполняться от имени пользователя root или sudo и работать с любым дистрибутивом Linux, таким как CentOS, RHEL, Fedora, Debian и Ubuntu.

Установка Apache Server

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

Проверка версии Apache

Чтобы проверить установленную версию вашего веб-сервера Apache в вашей системе Linux, выполните следующую команду.

Если вы хотите увидеть номер версии Apache и параметры компиляции, используйте флаг -V, как показано ниже.

Проверка на ошибки синтаксиса конфигурации Apache

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

Запуск сервиса Apache

Чтобы запустить службу Apache, выполните следующую команду.

Включение службы Apache

Предыдущая команда пока только запускает службу Apache, чтобы включить автозапуск при загрузке системы, выполните следующую команду.

Перезапуск службы Apache

Чтобы перезапустить Apache (остановить, а затем запустить службу), выполните следующую команду.

Просмотр состояния сервиса Apache

Чтобы проверить информацию о состоянии времени выполнения службы Apache, выполните следующую команду.

Перезагрузка сервиса Apache

Если вы внесли какие-либо изменения в конфигурацию сервера Apache, вы можете указать службе перезагрузить свою конфигурацию, выполнив следующую команду.

Остановка службы Apache

Чтобы остановить службу Apache, используйте следующую команду.

Показать справку Apache Command

И последнее, но не менее важное: вы можете получить справку о служебных командах Apache в systemd, выполнив следующую команду.

На этом пока все! В этой статье мы объяснили наиболее часто используемые команды управления службами Apache / HTTPD, которые полезно будет знать, включая запуск, включение, перезапуск и остановку Apache.

Полезна ли Вам эта статья?

Пожалуйста, расскажите почему?

Нам жаль, что статья не была полезна для вас :( Пожалуйста, если не затруднит, укажите по какой причине? Мы будем очень благодарны за подробный ответ. Спасибо, что помогаете нам стать лучше!

Подпишитесь на нашу еженедельную рассылку, и мы будем присылать самые интересные публикации :) Просто оставьте свои данные в форме ниже.

установка mod_brotli в Centos Apache

У меня проблемы с установкой brotli на машину Centos. Я проверил документы на brotli и, по-видимому, он доступен в версии 2.4.26 и выше. Я использую Apache/2.4.6 (CentOS 7) .

Я, возможно, неправильно понимаю, что означает доступный, потому что там нет упоминания о mod_brotli в /etc/httpd/modules . Я гуглюсь как полный идиот, и все хиты предлагают установить его из исходных текстов, хотя, согласно документам apache, он available .

Я запустил yum search brotli и нашел пакет php72-php-brotli.x86_64: Brotli Extension for PHP . Однако я не уверен, что PHP имеет отношение к сжатию файлов, так что это может быть неправильный пакет.

Итак, каков предпочтительный способ установки brotli на машину Centos с Apache?

Блог Захарова Андрея

Блог о программировании, установке и настройке WordPress, плагинов, LiveStreet, IPB 3, Nginx, MySql, CentOS

Подпишись! RSS на Email

Установка Apache на CentOS

Иногда спрашивают как устанавить Apache на CentOS и специально для этого случая решил сделать мини-шпаргалку. Установка Apache на CentOS выполняется всего в три команды:

1. Установим Apache

yum install httpd

2. Добавляем Apache в автозагрузку

chkconfig httpd on

3. Запустим Apache

service httpd start

На этом установка завершается и можно производить настройку. Конфиги для каждого сайта будут храниться в директории /etc/httpd/conf.d/

Например, конфиг zaan.conf для сайта zaan.ru (ненастоящий):

Если возникнут какие-либо вопросы, то задавайте их в комментариях. Буду рад помочь с решением проблем.

Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих