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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) NetRay VPS. Аренда надежных виртуальных серверов
Виртуальные сервера
4 NetRay 1146 26.3.2024, 14:16
автор: NetRay
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыКомплексное продвижение в соцсетях: аудит, оформление, ведение и настройка рекламных кампаний.
Качественно и по вкусным ценам.
91 WildWeb8 62574 17.1.2024, 13:04
автор: WildWeb8
Открытая тема (нет новых ответов) Сardly.store - онлайн магазин виртуальных зарубежных карт VISA 💳
1 CardlyStore 1019 17.1.2024, 10:31
автор: Antarez
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыНастройка яндекс директ рекламы БЕЗ РАСХОДОВ БЮДЖЕТА
Количество продаж будет ОГРАНИЧЕННО!
21 ITstaf 4214 7.11.2022, 16:31
автор: ITstaf
Открытая тема (нет новых ответов) Профессиональная настройка Яндекс Директ и Google Ads
1 Irina090 1223 24.9.2022, 22:44
автор: alex2211


 



RSS Текстовая версия Сейчас: 29.3.2024, 15:45
Дизайн