Apache linux centos 7 настройка

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

Для администрирования своего сайта на локальном сервере требуется установка множества дополнительных компонентов, которые и организуют единую систему, функционирующую слажено и без каких-либо ошибок. Одной из главных составляющих такой структуры можно считать веб-сервер. Пользователи чаще всего предпочитают задействовать именно Apache из-за его простоты и гибкости настройки, а также возможности подключения внешних модулей. Однако инсталляция и основная конфигурация — процесс не быстрый и для некоторых даже сложный, поэтому мы бы хотели рассказать об этом более детально, взяв за пример дистрибутив CentOS 7.

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

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

Шаг 1: Подготовка и инсталляция

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

  1. Запустите «Терминал», например, через значок в разделе «Избранное».

Если ранее на компьютере уже был установлен Apache или же вы случайно удалили один из его компонентов, просто используйте команду sudo yum update httpd , активировав ее нажатием на клавишу Enter.

Это действие выполняется от имени суперпользователя, а значит, придется подтвердить его, указав пароль от данной учетной записи.

Теперь поговорим об инсталляции Apache с нуля. Как мы уже сказали, использовать для этого будем официальные хранилища, следовательно, нужно ввести команду sudo yum install httpd .

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

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

Проверьте текущее состояние через sudo systemctl status httpd .

Уведомление «Active: active (running)» подразумевает, что сейчас Apache корректно функционирует и можно переходить к его дальнейшей настройке.

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

Шаг 2: Управление службой Apache

Веб-сервер в CentOS, как и в других дистрибутивах, функционирует в фоновом режиме в виде службы. По умолчанию она добавляется в автозагрузку, а об активации и проверке состояния мы уже рассказали ранее. Если у вас возникло желание управлять данным инструментом, то осуществляется это так:

    Введите sudo systemctl stop httpd для полной остановки Apache.

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

Перезапуск происходит через команду sudo systemctl restart httpd . Актуальна эта команда в тех ситуациях, когда сервер дает сбои или требуется перезапустить его из-за особенностей взаимодействия с остальными компонентами.

Используйте sudo systemctl reload httpd , если необходимо, чтобы все изменения после настройки вступили в силу, но при этом ни одно из соединений не было разорвано.

Команда sudo systemctl disable httpd убирает Apache из автозагрузки, а sudo systemctl enable httpd возвращает стандартное состояние. Дополнительно при включении этой опции вы будете уведомлены о создании новой символической ссылки, отвечающей за данный параметр.

Как видно, управляют состоянием службы самые стандартные команды. Их будет нетрудно запомнить, если вы часто вынуждены прибегать к подобным мерам во время администрирования сети, отдельного сайта или каких-либо приложений.

Шаг 3: Базовая конфигурация

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

    Начнем с создания каталога, где будут храниться все дочерние файлы виртуального хоста. Делается это через команду sudo mkdir -p /var/www/example.com/html .

Необходима и дополнительная папка, куда будут автоматически сохраняться журналы событий. Для ее добавления введите sudo mkdir -p /var/www/example.com/log .

Задайте стандартные права на директорию через sudo chown -R $USER:$USER /var/www/example.com/html .

Дополнительно установите и привилегии для каждого пользователя, вставив sudo chmod -R 755 /var/www .

Приступим к созданию образца главной страницы, которая будет выводиться на экран при проверке работоспособности хоста. Создайте новый текстовый файл через удобный редактор, например, используя nano, следует ввести sudo nano /var/www/example.com/html/index.html .

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

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

Success! The example.com virtual host is working!

Источник

Установка веб-сервера Apache в CentOS 7

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

Читайте также:  Не удалось запустить центр обеспечения безопасности windows 10 ошибка 5

В этом мануале вы узнаете, как установить веб-сервер Apache на сервер CentOS 7.

Требования

  • Сервер CentOS 7.
  • Пользователь с доступом к sudo (все действия нужно выполнить в сессии этого пользователя). Инструкции можно найти в мануале по начальной настройке сервера.
  • Базовый брандмауэр (читайте мануал Дополнительные рекомендации по настройке сервера CentOS 7).

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

Пакет Apache есть в стандартном репозитории CentOS, потому его можно установить с помощью стандартного пакетного менеджера yum.

Как пользователь с правами sudo, обновите индекс локальных пакетов:

sudo yum update httpd

Затем введите команду:

sudo yum install httpd

Команда установит Apache и его зависимости. Теперь можно запустить сервис.

2: Проверка веб-сервера

В CentOS веб-сервер Apache не запускается автоматически после завершения установки. Вам нужно запустить Apache вручную:

sudo systemctl start httpd

Убедитесь, что сервер запущен:

sudo systemctl status httpd
Redirecting to /bin/systemctl status httpd.service
httpd.service — The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2019-02-20 01:29:08 UTC; 5s ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 1290 (httpd)
Status: «Processing requests. »
CGroup: /system.slice/httpd.service
├─1290 /usr/sbin/httpd -DFOREGROUND
├─1291 /usr/sbin/httpd -DFOREGROUND
├─1292 /usr/sbin/httpd -DFOREGROUND
├─1293 /usr/sbin/httpd -DFOREGROUND
├─1294 /usr/sbin/httpd -DFOREGROUND
└─1295 /usr/sbin/httpd -DFOREGROUND
.

В выводе должен быть статус active.

Согласно выводу сервис работает правильно. Но лучше также запросить страницу Apache, чтобы подтвердить работу веб-сервера.

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

Если у вас нет домена, укажите внешний IP-адрес своего сервера. Если вы не знаете свой IP-адрес, вы можете узнать его с помощью командной строки. Введите:

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

Также вы можете узнать свой IP, запросив его с помощью команды curl:

curl -4 icanhazip.com

Узнав свой внешний адрес, введите в браузер:

Вы увидите стандартную страницу Apache для CentOS 7.

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

3: Управление процессами Apache

Чтобы остановить сервер, введите:

sudo systemctl stop httpd

Запустить сервер может команда:

sudo systemctl start httpd

Для перезапуска используйте:

sudo systemctl restart httpd

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

sudo systemctl reload httpd

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

sudo systemctl disable httpd

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

sudo systemctl enable httpd

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

5: Настройка виртуального хоста (рекомендуется)

На веб-сервере Apache вы можете использовать виртуальные хосты (аналогичные блокам server в Nginx) для изоляции настроек и размещения нескольких доменов на одном сервере. Здесь используется условный домен example.com, но вы должны заменить его собственным доменом.

Apache в CentOS 7 по умолчанию предоставляет один включенный виртуальный хост, который обслуживает каталог /var/www/html. Этого хватит для обслуживания одного сайта, но если вы хотите разместить несколько сайтов, вам нужно создать новые виртуальные хосты. Создайте структуру каталогов в /var/www для сайта example.com, а /var/www/html оставьте как каталог по умолчанию, который будет обслуживаться, если запрос клиента не соответствует другим сайтам.

Создайте каталог example.com, используя флаг -p для создания всех необходимых родительских каталогов:

sudo mkdir -p /var/www/example.com/html

Создайте дополнительный каталог для хранения логов нового сайта:

sudo mkdir -p /var/www/example.com/log

Затем определите права на каталог с помощью переменной $USER:

sudo chown -R $USER:$USER /var/www/example.com/html

sudo chmod -R 755 /var/www

Затем создайте образец страницы index.html с помощью любого редактора:

sudo vi /var/www/example.com/html/index.html

Нажмите i, чтоб перейти в режим INSERT, и вставьте в файл:

Success! The example.com virtual host is working!

Источник

NGINX + Apache (httpd) + MariaDB (MySQL) + PHP + PHP-FPM (fastCGI) + FTP + PHPMyAdmin + Memcached + xCache + Postfix на CentOS 7

Веб-сервер, настроенный по данной инструкции можно будет использовать для размещения собственных сайтов в локальной сети или сети Интернет. Данная инструкция проверена для CentOS 7.

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

Установка пакетов

1. Обновляем CentOS:

2. Устанавливаем репозиторий EPEL и пакет для загрузки:

yum install epel-release wget

Время

1. Устанавливаем часовой пояс:

timedatectl set-timezone Europe/Moscow

* данной командой мы установим часовой пояс по московскому времени.

2. Устанавливаем и запускаем службу для автоматической синхронизации времени:

yum install chrony

systemctl enable chronyd —now

Настройка безопасности

1. Отключаем SELinux:

sed -i «s/SELINUX=enforcing/SELINUX=disabled/» /etc/selinux/config

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

2. Открываем необходимые порты в брандмауэре:

firewall-cmd —permanent —add-port=<80,443,8080>/tcp

firewall-cmd —permanent —add-port=<20,21,60000-65535>/tcp

* 80, 443 и 8080 порты для веб-сервера; 20, 21 порты нужны для работы FTP; 60000-65535 также необходимы для работы FTP (динамические порты для пассивного режима); последняя команда перезапускает firewalld, чтобы применить новые правила. Подробнее про настройку firewalld.

Установка NGINX

yum install nginx

Внесем небольшую корректировку в файл nginx.conf:

http <
.
server_names_hash_bucket_size 64;
.
>

* на практике, может встретиться ошибка could not build server_names_hash, you should increase server_names_hash_bucket_size: 32. Она возникает при большом количестве виртуальных серверов или если один из них будет иметь длинное название. Данная строка в конфиге исправит ситуацию.

Разрешаем автозапуск сервиса и запустим его:

systemctl enable nginx —now

Проверим, что веб-сервер работает. Для этого открываем браузер на другом компьютере, который находится в одной сети и вводим в адресной строке IP-адрес сервера. В итоге мы должны увидеть заголовок «Welcome to nginx!»:

* обратите внимание, что данное приветствие может иметь и другой вид.

Для настройки http/2 читайте соответствующую статью.

Установка PHP и PHP-FPM

Устанавливаем PHP и php-fpm следующей командой:

yum install php php-fpm

* В CentOS 7 будет установлена php версии 5.4. Если необходимо установить PHP 7, читайте статью Как установить PHP 7 на CentOS 7.

Запускаем php-fpm и разрешаем его автозапуск:

systemctl enable php-fpm —now

Настройка связки NGINX + PHP

Открываем файл для настройки виртуального домена по умолчанию. В зависимости от версии CentOS 7 пути могут различаться:

Читайте также:  Mac os только цифровой выход

В секции location редактируем параметр index на следующее значение:

location / <
index index.php index.html index.htm;
>

* добавляем index.php в начало списка. Если параметра index нет, создаем его.

А внутри секции server добавим следующее:

\.php$ <
set $root_path /usr/share/nginx/html;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
include fastcgi_params;
fastcgi_param DOCUMENT_ROOT $root_path;
>

* где /usr/share/nginx/html — корневой путь хранения скриптов; unix:/run/php-fpm/www.sock — файл для взаимодействия с php-fpm.

Открываем настройки php-fpm:

Проверяем, настройки параметров:

listen = /run/php-fpm/www.sock
.
listen.group = nginx

* listen должен иметь значение /run/php-fpm/www.sock (путь до сокетного файла, который мы указали в конфигурационном файле nginx); listen.group указывает, какую группу назначить сокетному файлу.

. иначе, меняем значение. После перезагружаем php-fpm:

systemctl restart php-fpm

* в данном примере мы указываем, что php-fpm будет использовать сокетный файл /run/php-fpm/www.sock для взаимодействия. Этот файл мы указали выше в настройке NGINX.

Проверяем правильность настроек nginx:

И перезагружаем его:

systemctl restart nginx

Создаем index.php в каталоге сайта по умолчанию со следующим содержимым:

Открываем в браузере IP-адрес нашего сервера. Теперь мы должны увидеть сводную информацию по PHP и его настройкам, например:

Установка MariaDB или MySQL

В данной статье мы установим MariaDB, но процедура установки и настройки MySQL аналогичная. Все расхождения будут отмечены явно в инструкции.

Устанавливаем MariaDB следующей командой:

yum install mariadb-server

* будет установлена mariadb версии 5.5. Если нужна другая, то читаем подробнее в инструкции Установка MariaDB на CentOS или Ubuntu.
** для установки mysql выполняем команду yum install mysql

Разрешаем автозапуск и запускаем СУБД:

systemctl enable mariadb —now

* для работы с mysql меняем mariadb на mysql.

Сразу создаем пароль для учетной записи root:

mysqladmin -u root password

PHP + MariaDB (MySQL)

Для возможности подключаться к базе данных скриптами PHP необходимо установить следующие модули:

yum install php-mysqli

Если мы установили php5, также ставим php-mysql:

yum install php-mysql

После перезагружаем php-fpm:

systemctl restart php-fpm

И открываем наш сайт в браузере. В phpinfo появится новая секция MySQL:

* нас не должно смущать, что установили мы mariadb, а заголовок mysql. Если посмотреть в таблицу, можно увидеть ячейку Client API version, в которой указано, что используется именно mariadb.

Установка phpMyAdmin

Для установки phpMyAdmin вводим следующую команду:

yum install phpmyadmin

Однако, если мы устанавливали php версии 7 и выше, необходимо указать репозиторий, который мы использовали для этого, например:

yum —enablerepo=remi-php74 install phpmyadmin

* в данном примере предполагается, что мы использовали репозиторий remi-php74.

Это необходимо для корректной установки расширений PHP.

Теперь создадим для него отдельный виртуальный домен в NGINX:

И добавим в него следующее содержимое:

server <
listen 80;
server_name phpmyadmin.dmosk.local;
set $root_path /usr/share/phpMyAdmin;

location / <
root $root_path;
index index.php;
>

\.php$ <
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
include fastcgi_params;
fastcgi_param DOCUMENT_ROOT $root_path;
fastcgi_read_timeout 300;
>
>

* где phpmyadmin.dmosk.local — адрес для виртуального домена, именно этот адрес должен быть введен в адресную строку браузера, чтобы открылся нужный сайт. Поэтому есть нет возможность зарегистрировать домен и имя узла в DNS, можно воспользоваться локальным файлом hosts. /usr/share/phpMyAdmin — это каталог, в который по умолчанию устанавливается phpMyAdmin.

После перезапускаем NGINX:

systemctl reload nginx

Также нужно перезапустить php-fpm, так как в процессе установки был добавлен модуль mbstring:

systemctl restart php-fpm

И открываем в браузере наш домен, в данном примере, http://phpmyadmin.dmosk.local. Откроется форма для авторизации — вводим логин root и пароль, который мы указали после установки и запуска mariadb.

Установка Memcached

Первым этапом мы установим и настроим сервис memcached. Вторым — модуль php-memcached.

Сервис memcached

Выполняем установку пакетов:

yum install memcached

После разрешаем автозапуск и запускаем сервис кэширования:

systemctl enable memcached —now

Модуль для php

Установить компонент из репозитория:

yum install php-pecl-memcached

После устаноки модуля перезапускаем php-fpm:

systemctl restart php-fpm

Чтобы проверить, что модуль memcached работаем, открываем наш сайт в браузере — в phpinfo должна появиться новая секция:

. или вводим команду:

php -m | grep memcached

Мы должны получить:

Установка xCache

xCache не поддерживается в php7. Если мы установили именно эту версию, пропускаем установку данного пакета.

Запускаем установку xCache следующей командой:

yum install php-xcache

systemctl restart php-fpm

В phpinfo должно появиться следующее:

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

В качестве FTP-сервера будем использовать ProFTPd, так как он позволяет авторизовываться под uid системных учетных записей. Для его установки вводим следующую команду:

yum install proftpd proftpd-utils

Создаем каталог для хранения настроек:

Создаем виртуального пользователя:

ftpasswd —passwd —file=/etc/proftpd.d/ftpd.passwd —name=ftpwww —uid=48 —gid=48 —home=/var/www —shell=/sbin/nologin

* где /etc/proftpd/ftpd.passwd — путь до файла, в котором хранятся пользователи; ftpwww — имя пользователя (логин); uid и gid — идентификаторы пользователя и группы системной учетной записи (apache); /var/www — домашний каталог пользователя; /sbin/nologin — оболочка, запрещающая локальный вход пользователя в систему.

Открываем на редактирование конфигурационный файл proftpd:

И редактируем следующее (комментируем):

В конце файла добавим следующее:

UseIPv6 off
IdentLookups off
PassivePorts 60000 65535

RequireValidShell off
AuthUserFile /etc/proftpd.d/ftpd.passwd
AuthPAM off
LoadModule mod_auth_file.c
AuthOrder mod_auth_file.c

* где 60000 — 65535 — диапазон динамических портов для пассивного режима.

Разрешаем автозапуск FTP-серверу и запускаем его:

systemctl enable proftpd —now

Пробуем подключиться к серверу, использую любые FTP-клиенты, например, FileZilla, Total Commander или тот же браузер.

Это базовая и самая простая настройка ProFTPd, но если необходимо настроить TLS или хранить виртуальных пользователей в базе MySQL, читайте подробнее инструкцию по настройке ProFTPd на CentOS 7.

Apache (httpd)

Несмотря на то, что мы установили и настроили PHP-FPM, Apache нам понадобится, как минимум, по двум причинам. Во-первых, многие сайты используют файл .htaccess, который читает только Apache. Во-вторых, последний включает большое число модулей, которые может использовать портал.

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

И так, устанавливаем httpd:

yum install httpd

Заходим в настройки:

И редактируем следующее:

* наш веб-сервер будет слушать на порту 8080, так как на 80 уже работает NGINX.

DirectoryIndex index.php index.html

* если не указан конкретный скрипт, сначала веб-сервер пытается найти и запустить index.php, затем index.html

AllowOverride All
Options Indexes ExecCGI FollowSymLinks
Require all granted

* где Directory — разрешенные каталоги для запуска из apache; Options — разрешенные опции; Require — с каких IP-адресов можно открывать сайты, определенные в данном каталоге. Итого, мы разрешаем все каталоги в /var/www, но только если следующий каталог будет www; разрешаем опции Indexes (возвращает список файлов, если нет индексного файла, например, index.php), ExecCGI (разрешены сценарии CGI), FollowSymLinks (включены символические ссылки в этом каталоге); доступ для данных каталого разрешен со всех адресов (all granted).

Проверяем синтаксис конфигурационного файла httpd:

Читайте также:  Очистить содержимое директории linux

Разрешаем автозапуск и запускаем службу:

systemctl enable httpd —now

Создаем php-файл со следующим содержимым:

Открываем браузер и вводим в адресную строку IP-адрес нашего сервера и добавляем :8080. Мы должны увидеть привычную страницу:

NGINX + Apache

Ранее нами была настроена связка nginx + php-fpm. Теперь проверяем совместную работу первого с apache.

Открываем конфигурационный файл nginx:

* если при настройке nginx мы редактировали файл /etc/nginx/nginx.conf, то необходимо открыть его.

Находим наш настроенный location для php-fpm:

\.php$ <
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
include fastcgi_params;
fastcgi_param DOCUMENT_ROOT $root_path;
>
.

\.php$ <
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>
.

Проверяем и перезапускаем nginx:

systemctl restart nginx

Пробуем открыть в браузере IP-адрес нашего сервера — должна открыться та же страница, что при проверке Apache (с добавлением 8080):

Apache Real IP

Так как все запросы на httpd приходят от NGINX, они воспринимаются как от IP-адреса 127.0.0.1. На практике, это может привести к проблемам, так как некоторым сайтам необходимы реальные адреса посетителей.

Для решения проблемы будем использовать модуль mod_rpaf. Устанавливаем набор разработчика для apache:

yum install httpd-devel gcc unzip

Переходим в каталог /usr/local/src:

Переходим в распакованный каталог:

Собираем модуль и устанавливаем его:

* при возникновении ошибки ./apxs.sh: line 15: -c: command not found, необходимо поставить which командой yum install which.

Создаем конфигурационный файл со следующим содержимым:

LoadModule rpaf_module modules/mod_rpaf.so
RPAF_Enable On
RPAF_ProxyIPs 127.0.0.1
RPAF_SetHostName On
RPAF_SetHTTPS On
RPAF_SetPort On
RPAF_ForbidIfNotProxy Off

systemctl restart httpd

Для проверки настройки открываем на редактирование созданный index-файл для httpd:

И редактируем содержимое на:

Открываем браузер и вводим в адресную строку IP-адрес нашего сервера. Мы должны увидеть внешний адрес компьютера, с которого обращаемся к серверу.

Postfix

В CentOS postfix уже установлен и запущен. Нам необходимо сделать несколько простых настроек:

myorigin = $mydomain
smtp_generic_maps = hash:/etc/postfix/generic_map

* где myhostname — имя узла для почтового сервера (его он будет использовать в представлениях другим почтовым серверам); mydomain — домен сервера; myorigin — имя домена, которое будет подставляться всем отправляемым сообщениям без явного указания оного; smtp_generic_maps указывает на карту с общими правилами пересылки.

Открываем карту пересылки:

* данной настройкой мы будем подставлять всем отправляемым письмам без поля FROM адрес no-reply@dmosk.local.

Для применения настроек перезагружаем почтовый сервер:

systemctl restart postfix

Тюнинг веб-сервера

Открываем на редактирование следующий файл:

И правим следующее:

upload_max_filesize = 256M
post_max_size = 256M
short_open_tag = On
date.timezone = «Europe/Moscow»

Перезапускаем php-fpm и httpd:

systemctl restart php-fpm

systemctl restart httpd

NGINX

Открываем на редактирование следующий файл:

И правим следующее:

И внутри секции http добавляем:

После перезапускаем nginx:

systemctl restart nginx

Postfix

Чтобы отправляемая почта меньше попадала в СПАМ, необходимо выполнить следующие шаги:

Создание первого сайта

Задаем переменную, значение которой будет домен сайта:

* где site1 — имя домена. Нам будет намного удобнее копировать и вставлять команды с переменной (не придется править после копипасты).

Создаем новый файл виртуального домена NGINX:

* обязательно на конце должен быть .conf, так как только такие файлы веб-сервер подгружает в конфигурацию.

И добавляем следующее содержимое.

server <
listen 80;
server_name site1.local www.site1.local;
set $root_path /var/www/site1/www;

access_log /var/www/site1/log/nginx/access_log;
error_log /var/www/site1/log/nginx/error_log;

gzip on;
gzip_disable «msie6»;
gzip_min_length 1000;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;

location / <
proxy_pass http://127.0.0.1:8080/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>

* ^.+\.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|docx|xls|xlsx|exe|pdf|ppt|tar|wav|bmp|rtf|js)$ <
expires modified +1w;
>
>

* где site1.local — домен, для которого создается виртуальный домен; /var/www/site1 — каталог, в котором будет размещаться сайт.
** все запросы будут переводиться на локальный сервер, порт 8080, на котором работает apache, кроме обращений к статическим файла (jpg, png, css и так далее).
*** обратите внимание на выделения полужирным — здесь нужно подставить свои данные.

server <
listen 80;
server_name site1.local www.site1.local;
location

/.well-known <
root /usr/share/nginx/html;
allow all;
>
if ($uri !

/.well-known) <
return 301 https://$host$request_uri;
>
>

server <
listen 443 ssl;
ssl on;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/cert.key;

server_name site1.local www.site1.local;
set $root_path /var/www/site1/www;

access_log /var/www/site1/log/nginx/access_log;
error_log /var/www/site1/log/nginx/error_log;

gzip on;
gzip_disable «msie6»;
gzip_min_length 1000;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;

/.well-known <
root /usr/share/nginx/html;
allow all;
>

location / <
proxy_pass http://127.0.0.1:8080/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>

* ^.+\.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|docx|xls|xlsx|exe|pdf|ppt|tar|wav|bmp|rtf|js)$ <
expires modified +1w;
>
>

* в первой секции server мы перенаправляем все запросы по незащищенному http на https.
** ssl_certificate и ssl_certificate_key — пути к публичному и приватному ключам соответственно.
*** для получения бесплатного сертификата читайте статью Получение бесплатного SSL сертификата Let’s Encrypt.

Теперь создаем виртуальный домен в Apache:

Define root_domain site1.local
Define root_path /var/www/site1

ErrorLog $/log/apache/error_log
TransferLog $/log/apache/access_log

php_admin_value upload_tmp_dir $/tmp
php_admin_value doc_root $
php_admin_value open_basedir $:/usr/local/share/smarty:/usr/local/share/pear
php_admin_value session.save_path 0;0660;$/tmp

Создаем каталоги для сайта:

mkdir -p /var/www/$TMP_SITE/

mkdir -p /var/www/$TMP_SITE/log/

Создаем индексный файл со следующим содержимым:

Задаем права на папки:

chown -R apache:apache /var/www/$TMP_SITE

chmod -R 775 /var/www/$TMP_SITE

Проверяем корректность настроек конфигурационных файлов:

systemctl reload nginx

systemctl reload httpd

Открываем сайт в браузере.

При необходимости, создаем базу данных.

> CREATE DATABASE site1 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

> GRANT ALL PRIVILEGES ON site1.* TO dbuser@localhost IDENTIFIED BY ‘password’ WITH GRANT OPTION;

* данными sql-командами мы создаем базу данных site1 и предоставляем к ней доступ для учетной записи dbuser с паролем password. При желании сделать соединение более безопасным, можно убрать WITH GRANT OPTION.

Источник

Оцените статью