nginx php установка настройка

1234ru / nginx-php-win.md

Скачиваем отсюда https://nginx.org/ru/download.html и распаковываем куда-нибудь.

Ищем на странице загрузки из п.1 в левой колонке ссылку на VC нужного номера. Скачиваем x64.exe, устанавливаем. После этого возвращаемся на предыдущий пункт. На этот раз команда должна показать версию php.

Конфигурация локального сайта в nginx

В конец файла (каталог nginx)/nginx.conf перед последней закрывающей скобкой добавляем раздел:

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

Налаживание взаимодействия nginx и PHP

В раздел server конфигурации добавляем такие строки:

В консоли переходим в каталог, куда распакован PHP. Даем команду

Закрывать окно консоли нельзя, иначе интерпретатор PHP перестанет работать.

Можно прописать путь к каталогу PHP в системной переменной PATH и запускать его без указания полного пути.

Создаем файл D:\sites\mysite\test.php со следующим содержимым:

PHP: ini-файл и модули расширений

Вторая строчка говорит о том, что ini-файл успешно загрузился.

На первую строчку (про С:\Windows) внимания обращать не следует, т.к. ini-файла по указанном адресу нет.

Найти нужные расширения и раскомментировать строки, где они подключаются. Например, extension=mysqli и т.д.

Все расширения перечислены рядом, и найти нужные среди них несложно. Рекомендуется включить следующие:

PHP загружает расширения при запуске exe-файла интерпретатора. Если нужно подключить новое, следует остановить php-cgi.exe (или php.exe соответственно) и запустить его заново.

Чтобы установить связь между PHP и MySQL, не требуется никаких специальных действий, кроме собственно создания соединения (разумеется, должен быть включен соответствующий модуль, например, mysqli ).

Проверить соединение можно так:

Об установке и минимальной настройке MySQL под Windows см. здесь.

Неудобства работы под Windows

невозможно установить русскую локаль с UTF-8: setlocale(LC_ALL, ‘rus’) всегда приводит к использованию windows-1251, и изменить это никак не получается

Источник

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

Интерпретатор языка программирования PHP может работать в нескольких режимах. Он может быть интегрирован в веб-сервер в виде специального модуля или использоваться как отдельный сервис PHP-FPM. Аббревиатура FPM расшифровывается как FastCGI Process Manager. Это сервис, который запускает несколько процессов, которые могут выполнять PHP скрипты.

PHP-FPM может получать скрипты, которые надо выполнить, с помощью TCP или Unix сокетов. Именно такой способ выполнения скриптов используется в Nginx. В этой статье мы рассмотрим как выполняется установка Nginx с PHP-FPM в Ubuntu.

Установка Nginx на Ubuntu 20.04

Установить Nginx можно двумя способами. Первый способ заключается в установки пакета из официального репозитория Ubuntu. На момент написания статьи (1 августа 2021 года) актуальной версией Nginx присутствующей в репозитории Ubuntu была версия 1.18.0. Данная версия считается устаревшей. Актуальной же версией считается 1.20.1 (по состоянию на 1 августа 2021 года).

1. Официальные репозитории Ubuntu

Если вы хотите установить версию Nginx из репозиториев Ubuntu необходимо выполнить следующие действия. Для начала обновляем списки пакетов при помощи команды:

Для того, чтобы установить Nginx, достаточно выполнить команду:

nginx php установка настройка. Смотреть фото nginx php установка настройка. Смотреть картинку nginx php установка настройка. Картинка про nginx php установка настройка. Фото nginx php установка настройка

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

2. Официальные репозитории Nginx

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

Установите необходимые пакеты:

nginx php установка настройка. Смотреть фото nginx php установка настройка. Смотреть картинку nginx php установка настройка. Картинка про nginx php установка настройка. Фото nginx php установка настройка

Далее у вас на выбор есть два пути – подключить репозиторий со стабильной версией nginx или подключить репозиторий с основной версией. Стабильная версия является более проверенной и работоспособной. Эту версию можно использовать, как и в тестовых средах так и на производственных. Основная версия не такая стабильная и может содержать ошибки. Данную версию не рекомендуется использовать в производственных средах.

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

Для подключения репозитория с основной версией nginx, выполните следующую команду:

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

nginx php установка настройка. Смотреть фото nginx php установка настройка. Смотреть картинку nginx php установка настройка. Картинка про nginx php установка настройка. Фото nginx php установка настройка

Проверьте, верный ли ключ был загружен:

Вывод команды должен содержать полный отпечаток ключа 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62:

nginx php установка настройка. Смотреть фото nginx php установка настройка. Смотреть картинку nginx php установка настройка. Картинка про nginx php установка настройка. Фото nginx php установка настройка

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

sudo mv /tmp/nginx_signing.key /etc/apt/trusted.gpg.d/nginx_signing.asc

Чтобы установить nginx, выполните следующие команды:

Версия Nginx от разработчиков немного отличается от версии из официальных репозиториев. Все дополнительные конфигурационные файлы здесь находятся в папке /etc/nginx/conf.d. Если вы хотите использовать папки sites-available и sites-enabled, то необходимо их создать:

sudo mkdir /etc/nginx/sites-available
sudo mkdir /etc/nginx/sites-enabled

Затем добавьте следующую строчку в конец секции http файла /etc/nginx.conf для того чтобы из папки /etc/nginx/sites-enabled загружалась конфигурация сайтов:

sudo vi /etc/nginx/nginx.conf

Затем перезапустите Nginx:

3. Запуск Nginx

После установки пакета, проверяем что Nginx успешно запустился при помощи команды:

sudo systemctl status nginx

nginx php установка настройка. Смотреть фото nginx php установка настройка. Смотреть картинку nginx php установка настройка. Картинка про nginx php установка настройка. Фото nginx php установка настройка

Если в статусе вместо active будет inactive (dead), то сервис необходимо запустить вручную при помощи команды:

sudo systemctl start nginx

Так же обратите внимание, что вы не можете запускать Apache и Nginx на одном порту. В таком случае вы получите ошибку nginx address already in use 80. Для корректной работы Nginx, необходимо будет отключить веб-сервер Apache (если он у вас используется) или изменить его порт с 80 (который используется по умолчанию) на другой свободный порт.

4. Настройка брандмауэра

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

sudo ufw allow in 80/tcp

5. Проверка работы Nginx

После того, как Nginx будет запущен, он будет доступен по адресу сервера, на который он устанавливался. Вы можете проверить, всё ли работает, просто перейдя по адресу сервера, введя его в браузере. Для примера Nginx был установлен на localhost:

nginx php установка настройка. Смотреть фото nginx php установка настройка. Смотреть картинку nginx php установка настройка. Картинка про nginx php установка настройка. Фото nginx php установка настройка

Если вы увидите приветственное сообщение как на скриншоте выше это означает что Nginx успешно установлен и запущен.

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

Следующим шагом будет установка интерпретатора языка программирования PHP и всех необходимых модулей для работы с PHP-FPM. Для установки всех необходимых модулей выполните команду:

nginx php установка настройка. Смотреть фото nginx php установка настройка. Смотреть картинку nginx php установка настройка. Картинка про nginx php установка настройка. Фото nginx php установка настройка

На момент написания статьи (1 августа 2021) актуальной версией PHP в официальных репозиториях Ubuntu считалась версия 7.4. Самая же последняя официальная версия PHP от разработчиков 8.0.9 (по состоянию на 29 июля 2021 года). После установки всех необходимых пакетов проверяем статус PHP-FPM:

systemctl status php7.4-fpm.service

nginx php установка настройка. Смотреть фото nginx php установка настройка. Смотреть картинку nginx php установка настройка. Картинка про nginx php установка настройка. Фото nginx php установка настройка

Если в статусе вместо active будет inactive (dead), то сервис необходимо запустить вручную при помощи команды:

sudo systemctl start php7.4-fpm.service

nginx php установка настройка. Смотреть фото nginx php установка настройка. Смотреть картинку nginx php установка настройка. Картинка про nginx php установка настройка. Фото nginx php установка настройка

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

Подключение Nginx к PHP-FPM

Чтобы принимать запросы FastCGI от Nginx, PHP-FPM может прослушивать сокет TCP/IP или UNIX сокет. Сокеты UNIX являются средством межпроцессного взаимодействия, которое обеспечивает эффективный обмен данными между процессами, работающими в одной и той же операционной системе, в то время как сокеты TCP/IP позволяют процессам обмениваться данными по сети.

В отличие от сокета TCP/IP, который идентифицирует сервер по IP-адресу и порту (например, 127.0.0.1:9000), вы можете привязать сервер к сокету UNIX, используя путь к файлу (например, /run/php-fpm/www.sock), который виден в файловой системе.

Таким образом, сокет UNIX является безопасным, поскольку его могут использовать только процессы на локальном хосте. Сокет TCP/IP может быть доступен из Интернета, и это может представлять угрозу безопасности, если не будут приняты дополнительные меры безопасности, такие как настройка брандмауэра.

Настройка PHP-FPM для прослушивания на сокете UNIX

Чтобы настроить PHP-FPM на прослушивание сокета UNIX, откройте файл конфигурации пула PHP-FPM по умолчанию, используя свой любимый текстовый редактор при помощи команды:

sudo nano /etc/php/7.4/fpm/pool.d/www.conf

nginx php установка настройка. Смотреть фото nginx php установка настройка. Смотреть картинку nginx php установка настройка. Картинка про nginx php установка настройка. Фото nginx php установка настройка

Если вы используете сокет UNIX, вам также необходимо установить соответствующие разрешения на чтение/запись для файла, чтобы разрешить подключения с веб-сервера NGINX. По умолчанию NGINX работает как пользователь www-data в Ubuntu.

Найдите параметры listen.owner и listen.group и задайте им значение www-data. Также установите режим на 0660, для параметра listen.mode.

nginx php установка настройка. Смотреть фото nginx php установка настройка. Смотреть картинку nginx php установка настройка. Картинка про nginx php установка настройка. Фото nginx php установка настройка

Настройка PHP-FPM для прослушивания через сокет TCP/IP

Хотя сокет UNIX быстрее сокета TCP/IP, он менее масштабируем, поскольку он может поддерживать межпроцессное взаимодействие только в одной и той же ОС. Если NGINX и внутренний сервер приложений (PHP-FPM) работают в разных системах, вам придется настроить PHP-FPM для прослушивания сокетов TCP/IP для удаленного подключения.

В файле конфигурации пула PHP-FPM установите адрес прослушивания, например: 127.0.0.1:9000. Убедитесь, что выбранный вами порт не используется другим процессом или службой в той же системе.

sudo nano /etc/php/7.4/fpm/pool.d/www.conf

nginx php установка настройка. Смотреть фото nginx php установка настройка. Смотреть картинку nginx php установка настройка. Картинка про nginx php установка настройка. Фото nginx php установка настройка

Сохраните изменения и закройте файл. Установка Nginx php fpm практически завершена.

Настройка NGINX для работы PHP-FPM

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

sudo nano /etc/nginx/conf.d/default.conf

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

nginx php установка настройка. Смотреть фото nginx php установка настройка. Смотреть картинку nginx php установка настройка. Картинка про nginx php установка настройка. Фото nginx php установка настройка

Если используется TCP/IP сокет, замените значение в параметре fastcgi_pass на IP-адрес и порт сервера, на котором работает PHP-FPM FastCGI:

\.php$ <
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
>

nginx php установка настройка. Смотреть фото nginx php установка настройка. Смотреть картинку nginx php установка настройка. Картинка про nginx php установка настройка. Фото nginx php установка настройка

После внесения изменений в конфигурации Nginx проверьте правильность синтаксиса при помощи команды:

nginx php установка настройка. Смотреть фото nginx php установка настройка. Смотреть картинку nginx php установка настройка. Картинка про nginx php установка настройка. Фото nginx php установка настройка

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

sudo systemctl restart nginx
sudo systemctl restart php7.4-fpm

После перезапуска служб, подключение считается выполненным успешно. Для дальнейшей настройки PHP-FPM воспользуйтесь статьей по настройке PHP-FPM на Ubuntu 20.04 – Настройка PHP-FPM

Удаление Nginx и PHP-FPM с Ubuntu

Чтобы полностью удалить Nginx и PHP-FPM из системы, достаточно удалить все пакеты, которые вы установили ранее:

Команда purge позволяет удалить не только пакеты, но и их конфигурационные файлы. Если вы хотите оставить конфигурационные файлы, используйте команду remove.

Выводы

В этой статье мы разобрали, как выполняется установка Nginx PHP-FPM в Ubuntu 20.04. Как видите, это не очень сложно и с такой задачей может справиться даже новичок. Если у вас остались вопросы, оставляйте их в комментариях!

Источник

NGINX + Apache + MariaDB (MySQL) + PHP + PHP-FPM (fastCGI) + FTP + PHPMyAdmin + Memcached + Postfix на Ubuntu

Данная инструкция позволит настроить веб-сервер для решения большей части задач по размещению сайтов, порталов или веб-приложений. Она подходит для серверов на Ubuntu и других систем на основе deb-пакетов. Для RPM Linux читайте похожую инструкцию по настройке полноценного веб-сервера на CentOS.

Настройка операционной системы

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

apt-get update && apt-get upgrade

2. Настраиваем время:

apt-get install chrony

timedatectl set-timezone Europe/Moscow

systemctl enable chrony

* первая команда для установки пакета синхронизации времени; вторая задает часовой пояс по московскому времени; третья разрашит автозапуск chrony.

3. По умолчанию, в Ubuntu брандмауэр работает в режиме «разрешить все». Но если мы настроили защиту по максимуму, то для веб-сервера открываем следующие порты:

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

Установка NGINX

apt-get install nginx

Внесем изменение в файл nginx.conf:

http <
.
server_names_hash_bucket_size 64;
.
>

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

systemctl enable nginx

systemctl restart nginx

* в процессе запуска мы можем увидим ошибку — возможно, в системе работает другой веб-сервер и занимает 80 порт. Как правило, это apache. Чтобы его выключить (на данном этапе он нам не нужен) вводим команду systemctl stop apache2.

nginx php установка настройка. Смотреть фото nginx php установка настройка. Смотреть картинку nginx php установка настройка. Картинка про nginx php установка настройка. Фото nginx php установка настройка

Если стартовая страница не загружается, проверяем состояние сервиса:

systemctl status nginx

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

Устанавливаем PHP и PHP-FPM:

apt-get install php php-fpm

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

systemctl enable php7.4-fpm

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

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

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

.
index index.php index.html index.htm;
.

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

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

* где /var/www/html — корневой путь хранения скриптов; /run/php/php7.4-fpm.sock — путь до сокетного файла для взаимодействия с php-fpm. Обратите еще раз внимание, что если в нашей системе будет установлена другая версия php, необходимо внести соответствующую корректировку.

Пример файла default:

server <
listen 80 default_server;
listen [::]:80 default_server;

root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name _;

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

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

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

systemctl restart nginx

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

Проверяем, что путь до сокетного файла такой же, как мы задали в настройках NGINX:

В противном случае меняем его и перезапускаем сервис:

systemctl restart php7.4-fpm

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

Создаем index.php со следующим содержимым:

nginx php установка настройка. Смотреть фото nginx php установка настройка. Смотреть картинку nginx php установка настройка. Картинка про nginx php установка настройка. Фото nginx php установка настройка

* в данном примере используется php версии 7.4.

Установка СУБД

В данной статье мы установим MariaDB. Установка выполняется следующей командой:

apt-get install mariadb-server

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

systemctl enable mariadb

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

Входим в SQL-оболочку:

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

> SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘New_Password’);

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

PHP + MariaDB

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

apt-get install php-mysql php-mysqli

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

systemctl restart php7.4-fpm

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

nginx php установка настройка. Смотреть фото nginx php установка настройка. Смотреть картинку nginx php установка настройка. Картинка про nginx php установка настройка. Фото nginx php установка настройка

* несмотря на то, что мы установили mariadb, в заголовке мы видим mysql. Так и должно быть.

Установка phpMyAdmin

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

apt-get install phpmyadmin

* в процессе установки система может потребовать ввод пароля для пользователя phpmyadmin. Его нужно ввести дважды.

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

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

location / <
index index.php;
>

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

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

systemctl reload nginx

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

Если система вернула ошибку входа из-за неправильного пароля, необходимо задать пароль для учетной записи root@localhost (рассказывается выше в разделе установки MariaDB).

Установка Memcached

Для начала, выполняем установку пакетов:

apt-get install memcached php-memcached

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

systemctl enable memcached

systemctl restart php7.4-fpm

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

nginx php установка настройка. Смотреть фото nginx php установка настройка. Смотреть картинку nginx php установка настройка. Картинка про nginx php установка настройка. Фото nginx php установка настройка

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

Мы настроим ProFTPd, так как он позволит использовать виртуальных пользователей с uid пользователя www-data.

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

apt-get install proftpd

Смотрим uid пользователя www-data:

* в Ubuntu это, как правило, 33.

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

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

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

Снимаем комментарий или редактируем опцию:

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

Создаем дополнительный конфигурационный файл для proftpd:

Со следующим содержимым:

UseIPv6 off
IdentLookups off
PassivePorts 60000 65535

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

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

systemctl enable proftpd

systemctl restart proftpd

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

При необходимости, можно настроить шифрование и хранение пользователей в базе данных. Подробнее в инструкции Установка и настройка ProFTPd на Ubuntu Server.

Apache

Устанавливаем apache и модуль для php:

apt-get install apache2 libapache2-mod-php

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

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

* мы настроили прослушивание на порту 8080, так как на 80 уже работает NGINX. Также мы закомментировали прослушивание по 443, так как и он будет слушаться NGINX.

Теперь открываем настройку следующего модуля:

И добавляем впереди индексных файлов index.php:

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

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

Рядом с опциями Directory дописываем:

AllowOverride All
Options Indexes ExecCGI FollowSymLinks
Require all granted

SetEnvIf X-Forwarded-Proto https HTTPS=on

* этой настройкой мы при получении заголовка X-Forwarded-Proto со значением https задаем переменную $_SERVER[‘HTTPS’] равную on. Данная настройки критична для функционирования некоторых CMS.

* по умолчанию, apache2 может быть установлен с модулем мультипроцессовой обработки mpm_event. Данный модуль не поддерживает php 7 и выше.

Разрешаем модуль мультипроцессовой обработки mpm_prefork:

Разрешаем модуль php:

* в данном примере установлен php версии 7.4.

Разрешаем модуль setenvif:

Разрешаем модуль rewrite:

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

systemctl enable apache2

systemctl restart apache2

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

nginx php установка настройка. Смотреть фото nginx php установка настройка. Смотреть картинку nginx php установка настройка. Картинка про nginx php установка настройка. Фото nginx php установка настройка

* в разделе Server API мы должны увидеть Apache.

NGINX + Apache

Ранее мы настроили связку nginx + php-fpm. Теперь настроим nginx + apache. Открываем конфигурационный файл nginx для сайта по умолчанию:

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

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

systemctl restart nginx

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

nginx php установка настройка. Смотреть фото nginx php установка настройка. Смотреть картинку nginx php установка настройка. Картинка про nginx php установка настройка. Фото nginx php установка настройка

Apache Real IP

Запросы на apache приходят от NGINX, и они воспринимаются первым как от IP-адреса 127.0.0.1. На практике, это может привести к проблемам, так как некоторым сайтам необходимы реальные адреса посетителей. Для решения проблемы будем использовать модуль remoteip.

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

RemoteIPHeader X-Forwarded-For
RemoteIPTrustedProxy 127.0.0.1/8

systemctl restart apache2

Postfix

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

Установка, настройка и запуск

Устанавливаем пакет postfix:

apt-get install postfix

Вносим некоторые изменения в настройки:

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

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

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

Включаем автозапуск почтового сервера и перезапускаем его службу:

systemctl enable postfix

systemctl restart postfix

Корректная отправка

Для того, чтобы сервер мог отправлять сообщения на внешние ящики, необходимо корректно настроить в DNS, как минимум, записи A и PTR.

Для добавления А-записи, необходимо в настройках панели управления нашим доменом создать запись типа. Ее имя и IP-адрес должны соответствовать имени и адресу нашего сервера.

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

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

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

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

post_max_size = 1G
.
upload_max_filesize = 512M
.
short_open_tag = On
.
date.timezone = «Europe/Moscow»

* где post_max_size — максимальный объем отправляемых на сервер данных; upload_max_filesize — максимально допустимый размер одного загружаемого файла; short_open_tag — разрешение использования короткого способа открытия php (
Define root_domain site1.local
Define root_path /var/www/site1.local

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

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

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

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

systemctl reload nginx

systemctl reload apache2

Открываем сайт в браузере по нашему домену site1.local (он должен быть прописан в DNS или можно его задать в локальном файле hosts того компьютера, с которого мы открываем сайт в браузере). Мы должны увидит фразу «Hello from site1».

2. Создание базы данных

Создаем базу данных для сайта командами:

> 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.

3. Создание пользователя FTP

Для возможности подключения к сайту по FTP, создаем отдельного пользователя:

* тут мы создадим пользователя site1.local, который будет иметь доступ к каталогу /var/www/$TMP_SITE.

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *