X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

11 страниц V   1 2 3 4 5 6 7 8 9 10 11 >
Открыть тему
Тема закрыта
> ЛП: Настройка виртуальных хостов в nginx
fedornabilkin
fedornabilkin
Topic Starter сообщение 29.1.2018, 12:19; Ответить: fedornabilkin
Сообщение #1


Для начала в файле .hosts пропишем доменное имя и привяжем его к локальному айпи. Обычно этот файл располагается по следующему пути: C:\Windows\System32\drivers\etc\hosts
Некоторые антивирусные программы могут ругаться на то, что вы пытаетесь изменить этот файл, поэтому необходимо разрешить внести изменения в файл. После этого по адресу site.dev наш браузер будет искать сайт на локальном хосте, а т.к. мы настроили виртуальную машину и пробросили порты, то запрос отправиться на ubuntu-server и поищет там.

127.0.0.1 site.dev

Но на сервере nginx мы не сконфигурировали виртуальный хост с именем site.dev, поэтому результата не получим. Перед конфигурированием создадим директорию, в которой будут лежать файлы сайта. Директорию создаем по рутом, поэтому предварительно пишем команду sudo, которая попросит пароль.

sudo mkdir /var/www/site.dev

Проверим наличие новой директории.

ll /var/www/

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


Т.к. веб-сервер (nginx) будет работать с этой директорией (отображать, загружать, создавать различные файлы), то необходимо выставить права на эту директорию. В целях безопасности мы не можем разрешить доступ кому угодно, поэтому сделаем владельцем этой директории наш веб-сервер (www-data) и посмотрим, что получилось.

sudo chown -R www-data:www-data /var/www/site.dev

Прикрепленное изображение


Половина пути пройдена, мы подготовили все для виртуального хоста и наконец-то создадим конфиг. Конфиги виртуальных хостов лежат в /etc/nginx/sites-available/, хотя в главном конфиге nginx указано, что читать конфиги в/хостов необходимо из /etc/nginx/sites-enabled/
Для этого мы создадим символьную (или символическую) ссылку на наш будущий файл конфигурации, а если надо будет отключить в/хост, то достаточно будет удалить симлинк, оставив при этом файл конфигурации целым и невредимым.

Создаем файл конфигурации. Когда откроется редактор vim, переходим в режим редактирования (клавиша insert), вставляем скопированный код конфигурации (shift+insert), выходим из режима редактирования (esc), пишем изменения в файл и выходим (:wq)

sudo vim /etc/nginx/sites-available/site.dev

Развернуть/Свернуть
server {

charset utf-8;
server_name site.dev;
set $yii_bootstrap "index.php";

access_log /var/log/nginx/site.dev-access.log;
error_log /var/log/nginx/site.dev-error.log;
root /var/www/site.dev;
index $yii_bootstrap;

set $htdocs /var/www/site.dev;

location / {

# Redirect everything that isn't real file to yii bootstrap file including arguments.
try_files $uri $uri/ /$yii_bootstrap?$args;
}

include /etc/nginx/_location_php;

}


Кто хитрый, тот заметил вставочку include /etc/nginx/_location_php;
В этом файле будет находиться конфигурация взаимодействия nginx с php. Попробуйте самостоятельно создать этот файл и добавить в него код из спойлера ниже.
Развернуть/Свернуть
location ~ \.php$ {
try_files $fastcgi_script_name =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $htdocs$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
fastcgi_read_timeout 6000;
}


Далее проверяем правильность наших конфигов sudo nginx -t и, если все нормально, то делаем reload (перечитываем конфиги) sudo service nginx reload
В случае ошибки в конфиге, будет отображен файл с ошибкой и номер строки.

Теперь в корне сайт создаем файл index.pnp с помощью редактора vim (также, как создавали файлы конфигурации) и добавляем элементарное содержимое.

<?php echo 'ok';?>

Когда запросим в браузере адрес site.dev, то получим страницу с текстом "ok" или ошибку 502. В любом случае мы на правильном пути. Кстати, с недавнего времени браузер хром не хочет работать с доменными зонами .dev, поэтому я пользую ФФ или Ябраузером. Кому очень сильно надо использовать хром, можно везде изменить site.dev на site.local

502 ошибку чуть позже исправим. Если кто-то исправит самостоятельно, просьба написать коммент, где и как в php.ini указать нужные строки взаимодействия nginx с php.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ixman
ixman
сообщение 29.1.2018, 19:30; Ответить: ixman
Сообщение #2


Чёт два раза проделал и не выдало ни надписи, ни ошибки. Просто пустая страница
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
fedornabilkin
fedornabilkin
Topic Starter сообщение 29.1.2018, 22:32; Ответить: fedornabilkin
Сообщение #3


Ixman, правильно, я же забыл про симлинку. Упомянул, но не показал как это сделать.
Надо сделать так, чтобы по /etc/nginx/sites-enabled/site.dev открывался /etc/nginx/sites-available/site.dev

ln -s /etc/nginx/sites-available/site.dev /etc/nginx/sites-enabled/site.dev

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

ll /etc/nginx/sites-enabled/

После всех подобных манипуляций делаем релоад, чтобы nginx перечитал конфиги. sudo service nginx reload

Если вдруг нам надо отключить сайт на время (ддос атака и лежит весь сервер с другими сайтами), то просто надо грохнуть симлинку как обычный файл

rm /etc/nginx/sites-enabled/site.dev


Сообщение отредактировал fedornabilkin - 29.1.2018, 22:35
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ixman
ixman
сообщение 29.1.2018, 22:35; Ответить: ixman
Сообщение #4


fedornabilkin, ок попробую завтра уже. С консолью мало работал, мало понимаю что и как. 
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
fedornabilkin
fedornabilkin
Topic Starter сообщение 29.1.2018, 22:54; Ответить: fedornabilkin
Сообщение #5


Если возникает 502 ошибка, то лезем в файл /etc/php/7.0/fpm/pool.d/www.conf (открываем сразу с возможностью редактирования). Там много всего, но нам надо найти следующие параметры и присвоить им значения

user = www-data
group = www-data

listen = 127.0.0.1:9000

Ничего не удаляем, лучше закомментировать, поставив в начале строки точку с запятой ( ; ).
В listen скорее всего будет что-то про сокеты, поэтому коментируем и пишем свою строку из примера выше.
 
После редактирования сервис php-fpm надо перегрузить (наверно тоже, чтоб перечитал конфиги)

/etc/init.d/php7.0-fpm reload
Ixman, старайся все команды писать вручную, а не копировать. Быстрее привыкнешь и запомнишь где что располагается на сервере. Не зря говорят, что в консоли работать быстрее.


Сообщение отредактировал fedornabilkin - 29.1.2018, 22:57
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ixman
ixman
сообщение 3.2.2018, 12:27; Ответить: ixman
Сообщение #6


fedornabilkin, перепроверил все шаги и всё равно ничего не выходит. Страница пуста. Или я где-то шаг какой-то пропустил или фиг его знает
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ixman
ixman
сообщение 3.2.2018, 13:46; Ответить: ixman
Сообщение #7


Кстати в заголовках сервер apache
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
fedornabilkin
fedornabilkin
Topic Starter сообщение 4.2.2018, 15:12; Ответить: fedornabilkin
Сообщение #8


Ixman, значит надо проверить все поэтапно:
  1. Запись в файле hosts

  2. Конфигурационный файл в /etc/nginx/sites-available/site.dev (куда указывает root)

  3. Наличие символической ссылки /etc/nginx/sites-enabled/site.dev на файл /etc/nginx/sites-available/site.dev

  4. Отсутствие ошибок в конфигурационных файлах nginx -t

  5. В файле /etc/nginx/_location_php должна быть такая строчка fastcgi_pass   127.0.0.1:9000;

  6. В файле /etc/php/7.0/fpm/pool.d/www.conf строка listen = 127.0.0.1:9000 (сокеты надо закомментировать)

  7. Перезапустить nginx (sudo service nginx reload) и php (sudo /etc/init.d/php7.0-fpm reload)

  8. Проверить состояние sudo systemctl status nginx и sudo systemctl status php7.0-fpm (должно быть зелененько и без error) Выход ctrl+c

  9. Проверить наличие файла в директории сайта и его содержание.

Если все нормально, но файл в корне сайта не отрабатывает, тогда надо смотреть логи nginx и php.
  1. Список файлов с логами ll /var/log/nginx/

  2. Посмотреть содержимое файла можно так cat /var/log/nginx/site.dev.error.log

  3. Логи php смотрим тут sudo cat /var/log/php7.0-fpm.log

Если в логах ошибки и не разберешься, то скидывай сюда, будем разбираться.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ixman
ixman
сообщение 4.2.2018, 21:48; Ответить: ixman
Сообщение #9


fedornabilkin, всё по пунктам везде всё отлично. Содержимое лога nginx 

2018/01/29 10:15:34 [notice] 8051#8051: signal process started
2018/01/29 10:33:09 [notice] 8080#8080: signal process started
2018/01/29 10:33:27 [notice] 8094#8094: signal process started
2018/02/03 02:58:27 [notice] 1449#1449: signal process started
2018/02/03 03:00:12 [notice] 1468#1468: signal process started
2018/02/03 03:22:09 [notice] 1519#1519: signal process started
2018/02/03 03:25:14 [notice] 1535#1535: signal process started
2018/02/03 04:41:38 [notice] 1405#1405: signal process started
2018/02/04 12:36:35 [notice] 1593#1593: signal process started
 

лог php скопировал за сегодня, а то там много и оно всё повторяется

[04-Feb-2018 12:01:58] NOTICE: fpm is running, pid 1097
[04-Feb-2018 12:01:58] NOTICE: ready to handle connections
[04-Feb-2018 12:01:58] NOTICE: systemd monitor interval set to 10000ms
[04-Feb-2018 12:36:45] NOTICE: configuration file /etc/php/7.0/fpm/php-fpm.conf test is successful

[04-Feb-2018 12:36:45] NOTICE: Reloading in progress ...
[04-Feb-2018 12:36:45] NOTICE: reloading: execvp("/usr/sbin/php-fpm7.0", {"/usr/sbin/php-fpm7.0", "--nodaemonize", "--fpm-config", "/etc/php/7.0/fpm/php-fpm.conf"})
[04-Feb-2018 12:36:45] NOTICE: using inherited socket fd=8, "127.0.0.1:9000"
[04-Feb-2018 12:36:45] NOTICE: using inherited socket fd=8, "127.0.0.1:9000"
[04-Feb-2018 12:36:45] NOTICE: fpm is running, pid 1097
[04-Feb-2018 12:36:45] NOTICE: ready to handle connections
[04-Feb-2018 12:36:45] NOTICE: systemd monitor interval set to 10000ms 

Кстати по этому пункту

(fedornabilkin @ 4.2.2018, 18:12) *
Перезапустить nginx (sudo service nginx reload) и php (sudo /etc/init.d/php7.0-fpm reload)
 

если на команду для php выдало

[ ok ] Reloading php7.0-fpm configuration (via systemctl): php7.0-fpm.service.

то на команду для перезапуска nginx никаких ответов нет
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
fedornabilkin
fedornabilkin
Topic Starter сообщение 5.2.2018, 11:38; Ответить: fedornabilkin
Сообщение #10


Ixman, странно. У меня логи такие же. Скинь содержание файла index.php и какие заголовки сервер возвращает. 
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
11 страниц V   1 2 3 4 5 6 7 8 9 10 11 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыНастройка яндекс директ рекламы БЕЗ РАСХОДОВ БЮДЖЕТА
Количество продаж будет ОГРАНИЧЕННО!
22 ITstaf 4402 Вчера, 21:00
автор: 100ftd
Открытая тема (нет новых ответов) NetRay VPS. Аренда надежных виртуальных серверов
Виртуальные сервера
8 NetRay 1711 Вчера, 17:38
автор: NetRay
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыКомплексное продвижение в соцсетях: аудит, оформление, ведение и настройка рекламных кампаний.
Качественно и по вкусным ценам.
91 WildWeb8 62756 17.1.2024, 13:04
автор: WildWeb8
Открытая тема (нет новых ответов) Сardly.store - онлайн магазин виртуальных зарубежных карт VISA 💳
1 CardlyStore 1049 17.1.2024, 10:31
автор: Antarez
Открытая тема (нет новых ответов) Профессиональная настройка Яндекс Директ и Google Ads
1 Irina090 1249 24.9.2022, 22:44
автор: alex2211


 



RSS Текстовая версия Сейчас: 24.4.2024, 6:56
Дизайн