IPB

Здравствуйте, гость ( Авторизация | Регистрация )


7 страниц V  < 1 2 3 4 > »   
Reply to this topicStart new topicGo to the end of the page
> Делаю сайт, Впервые!
indеx
сообщение 3.07.2017 - 21:32
Сообщение #11


Почетный
*******

Текущее настроение:

Вст. ник | Цитата

Группа: Супер Стар
Сообщений: 3097
Регистрация: 29.12.2009
Пользователь №: 33839

Награды: 15
Подарки: 41

Пол: М


Репутация:   315  

Но была ещё одна причина — это работа с базой данных. А именно, данный виртуальный хостинг во-первых, не давал возможности работать в базе данных MySQL с хранимыми процедурами, а во вторых, не давал возможности создавать в MySQL нескольких пользователей. Для одного аккаунта, видите ли, используется только один пользователь базы данных, а с хранимыми процедурами мы вообще запрещаем работать, говорили представители хостинга. Ну ништяк, чё сказать. Это, конечно же, сильно снижает уровень безопасности базы данных, ибо пароль этого единственного пользователя будет храниться в файлах на хостинге, а пользователь этот имеет право менять данные в таблицах базы. И если кто-то из сотрудников хостинга продаст этот пароль злоумышленникам, то кто-то сможет накручивать себе счётчики в нашей базе данных, и мы этого, скорее всего, не заметим, а значит, будем терять деньги. Но возникает вопрос: Что изменится, если в базе данных можно будет создать нескольких пользователей и если можно будет использовать хранимые процедуры? А вот что... Если мы в базе данных MySQL создаём пользователя с одним единственным правом "Запускать хранимые процедуры", то этот пользователь не сможет менять данные в таблицах базы и накручивать себе счётчики. Он сможет только запускать хранимые процедуры, а внутри каждой из них будет стоять ограничивающее условие, плюс, каждую операцию хранимая процедура будет записывать в историю операций, которая затем будет сравниваться с историей поступления денег, и эта накрутка будет обнаружена довольно быстро, после чего исправлена и приняты меры по обезвреживанию злоумышленника (баном адресов), а также изменён пароль этого пользователя базы. Полный же доступ к базе данных будет у другого пользователя, который не будет использоваться скриптами в основной работе, а значит, его пароль не будет храниться нигде на хостинге. Этот пользователь будет использоваться в администраторских целях, и использоваться удалённо. Удалённо, разумеется, с шифрованием данных. Например, с помощью того же самого SSL-сертификата. Или через туннель SSH, о котором более подробно я расскажу ниже. Такая схема намного повышает безопасность данных в проекте, связанном с деньгами или другой информацией, требующей строгого учёта. Конечно, стопроцентной защиты не бывает в принципе, но для сервера, который физически находится "не у меня", это неплохая защита данных.

Всё это, конечно, хорошо. Но оказывается, на виртуальном хостинге реализовать такое невозможно. Общение с другими хостерами дало мне понять, что для моих требований нужно брать VPS или выделенный сервер. Тем более, что цены на VPS сейчас невысокие — за 350 рублей в месяц можно взять вполне неплохой вариант. Вот там-то у меня и будет полная свобода действий, говорили они. И всё это тоже, конечно, хорошо. Но в нашем мире существует один закон: В придачу к свободе всегда идёт ответственность за ошибки. Тебе дали свободу, ты сделал ошибку — отвечай! А чтобы не совершать ошибки, нужны знания. Вывод: чтобы пользоваться свободой, нужны знания. Это было философское отступление, а для моей ситуации это означает следующее. VPS — это услуга, дающая полный доступ к операционной системе. В данном случае это операционная система Linux, которая вообще не похожа на Windows, и этой операционной системой нужно уметь правильно пользоваться. Чтобы вы понимали, о чём идёт речь, я покажу вам скриншот экрана сервера, на котором мне придётся работать:



То есть, никаких окошек, никакой мышки, никаких браузеров, скайпов и других прелестей современной компьютерной жизни человека. А только лишь чёрная, холодная, бездушная командная строка, которая ждёт от меня с клавиатуры только те команды, которые допустимы. И упаси меня Бог ошибиться в них хоть на один символ! Вот в каких условиях придётся работать мне, если я возьму VPS! При этом, речь здесь идёт уже не об управлении сайтом, а об управлении всем сервером. Мало того, что на одном сервере может находиться несколько сайтов, и корректную работу с ними нужно как-то организовывать, так кроме этого, на сервере должно постоянно работать ещё и множество программ, без которых ни один сайт вообще работать не будет. Эти программы нужно уметь правильно установить, потом правильно настроить и затем правильно ими пользоваться. И всё это нужно делать вот в таком вот неудобном текстовом режиме. При этом одна маленькая ошибка может остановить работу сразу всех сайтов, и это как раз та ответственность, которую я получу в придачу к той самой хвалёной свободе. И чтобы этой свободой пользоваться, мне придётся добыть немалое количество знаний об управлении сервером под операционной системой Linux, что займёт немало времени. Все эти мысли были для меня очень страшны, и какое-то время они останавливали меня перед шагом брать VPS. Но однажды я всё-таки собрался с силами и сделал это!

Продолжение следует...


--------------------


--------------------
Подарки: (Всего подарков: 41 )
Подарок
Подарил(а): льдинка
Подарок
Подарил(а): Фарит
Подарок
Подарил(а): Фарит




Go to the top of the pageGo to the end of the page
 
+Quote Post
indеx
сообщение 4.07.2017 - 14:24
Сообщение #12


Почетный
*******

Текущее настроение:

Вст. ник | Цитата

Группа: Супер Стар
Сообщений: 3097
Регистрация: 29.12.2009
Пользователь №: 33839

Награды: 15
Подарки: 41

Пол: М


Репутация:   315  

Итак, за 350 рублей в месяц я взял VPS. Оказалось, у этой услуги тоже есть панель управления, в которой всего несколько функций, таких как: "Настройка DNS", "Привязка доменов", "Статистика используемых ресурсов", "VNC-консоль", "Переустановка операционной системы", и в общем-то, всё. Остальные функции придётся выполнять самому вручную через текстовую консоль. В разделе "ДНС" всё было уже настроено. Домены привязать один раз, это легко, я их просто добавил. Статистику использования процессора, памяти, диска и сети наблюдать потом во время работы сайтов будет очень удобно. VNC-консоль это как раз тот чёрный жуткий экран, с которым мне придётся подружиться. А переустановка операционной системы (ОС) это ещё более удобно — не нужно устанавливать ОС самому, вводить при этом разные параметры, тратить на это своё время. Просто выбрал название ОС, нажал кнопку "Установить", и через 5-7 минут ОС установлена. Классно. Пароль пользователя root при этом высылается системой автоматически на почту, указанную в панели управления. Я захожу в VNC-консоль, ввожу логин и пароль, и уже можно работать.
Но возникает вопрос: Какую ОС лучше установить?
В списке операционных систем имеются:
Цитата
BitrixVM 5
BitrixVM 7
Centos 6
Centos 7
Debian 7
Debian 8
Ubuntu 14.04 LTS
Ubuntu 16.04 LTS
Что же выбрать? Придётся изучать данный вопрос... В процессе изучения выяснилось, что разработчиками чаще всего обновляется Ubuntu, у неё лучше поддержка, её сейчас используют больше всего, особенно начинающие системные администраторы. Это я что-ли ещё и системный администратор теперь, получается? Ну надо же. Короче говоря, мой выбор был очевиден — это Ubuntu 16.04 LTS. Слово LTS означает "Long Term Support", то есть, данная версия будет поддерживаться в течении 5 лет, а именно до 2021 года. Меня это устраивает, устанавливаю... готово. Но что делать дальше? Куда и как закачивать файлы с моим сайтом?

Продолжение следует...


--------------------


--------------------
Подарки: (Всего подарков: 41 )
Подарок
Подарил(а): льдинка
Подарок
Подарил(а): Фарит
Подарок
Подарил(а): Фарит




Go to the top of the pageGo to the end of the page
 
+Quote Post
indеx
сообщение 5.07.2017 - 18:24
Сообщение #13


Почетный
*******

Текущее настроение:

Вст. ник | Цитата

Группа: Супер Стар
Сообщений: 3097
Регистрация: 29.12.2009
Пользователь №: 33839

Награды: 15
Подарки: 41

Пол: М


Репутация:   315  

Прежде чем закачивать файлы, выяснилось, что в чёрную консоль можно зайти не только через личный кабинет на сайте хостера, но и с помощью программ-клиентов, работающих по протоколу SSH (не путать с SSL, это разные вещи). Самой распространённой из них для Windows является программа PuTTY. Устанавливаем её, вписываем в ней IP-адрес нашего сервера и порт 22 (он уже вписан):


Нажимаем кнопку "Open", и видим, что появилось новое окно:


В котором написано "login as:", значит, нужно вводить логин. А какой у меня логин? Так, нам же было письмо на электронку, смотрим письмо:
Логин (SSH): root
Пароль: irezabakuv

Вводим, появляется какой-то текст и ниже, собственно, приглашение системы:

Это сервер ждёт от меня команды. Кстати, слово "serve" в переводе с английского означает "служить", а "server" получается "служитель"... не-не, "СЛУГА", точно! То есть, передо мной на экране сейчас находится слуга, который послушно ждёт от меня приказаний. А я хозяин! Like a BOSS! vj.gif Ничего так ощущение, приятненькое. Осталось только научиться командовать.

Продолжение следует...


--------------------


--------------------
Подарки: (Всего подарков: 41 )
Подарок
Подарил(а): льдинка
Подарок
Подарил(а): Фарит
Подарок
Подарил(а): Фарит




Go to the top of the pageGo to the end of the page
 
+Quote Post
льдинка
сообщение 15.07.2017 - 7:33
Сообщение #14


Мррр...
**********

Текущее настроение:

Вст. ник | Цитата

Группа: Главный Шериф
Сообщений: 83772
Регистрация: 15.03.2013
Пользователь №: 57743
Из: РФ

Награды: 585
Подарки: 4696

Пол: Ж


Репутация:   12947  

Ты потом покажешь, что получилось?


--------------------
Подарки: (Всего подарков: 4696 )
Подарок
Подарил(а): Мэл
Подарок
Подарил(а): Мэл
Подарок
Подарил(а): Мэл




Go to the top of the pageGo to the end of the page
 
+Quote Post
indеx
сообщение 16.07.2017 - 15:39
Сообщение #15


Почетный
*******

Текущее настроение:

Вст. ник | Цитата

Группа: Супер Стар
Сообщений: 3097
Регистрация: 29.12.2009
Пользователь №: 33839

Награды: 15
Подарки: 41

Пол: М


Репутация:   315  

Цитата(льдинка @ 15.07.2017 - 7:33) *
Ты потом покажешь, что получилось?
Обязательно!


--------------------


--------------------
Подарки: (Всего подарков: 41 )
Подарок
Подарил(а): льдинка
Подарок
Подарил(а): Фарит
Подарок
Подарил(а): Фарит




Go to the top of the pageGo to the end of the page
 
+Quote Post
indеx
сообщение 21.07.2017 - 20:10
Сообщение #16


Почетный
*******

Текущее настроение:

Вст. ник | Цитата

Группа: Супер Стар
Сообщений: 3097
Регистрация: 29.12.2009
Пользователь №: 33839

Награды: 15
Подарки: 41

Пол: М


Репутация:   315  

Итак, продолжаем...

Значит, нам нужно было закачать наши файлы на хостинг. Для передачи файлов по сети традиционно используют протокол ftp. Это означает, что с одного конца (на моём компьютере) одна программа ftp отправляет файлы, а на другом конце (на сервере) другая программа ftp принимает эти файлы. То есть, эта программа должна работать на обоих концах. На моём компьютере в качестве такой программы я могу использовать, например, FileZilla. Но с файлами мне больше нравится работать в программе Total Commander, и выяснилось, что в ней тоже есть поддержка работы с протоколом ftp. Ясно, с одного конца программа есть. Теперь другой конец, сервер. Выясняется, что на сервере для этого можно использовать программу vsftpd или же программу proftp, по желанию на выбор. Я выбрал первую попавшуюся мне на глаза — vsftpd. Устанавливается она следующим образом... В консоли вводятся буквы:
Код
apt install vsftpd
, где:
apt — менеджер установки,
install — команда "установить",
vsftpd — название программы, которую надо установить.
Далее система просит подтвердить установку, мы подтверждаем нажатием на клавиатуре "y" и затем "Enter", что означает "Yes! Погнали!". После этого программа устанавливается, и с ней можно работать. Однако, при дальнейшем изучении вопроса закачки файлов выяснилось, что файлы передаются по сети тоже в открытом виде, без шифрования. И все данные, которые в них содержатся, могут быть доступны злоумышленникам. Далее выяснилось, что шифрование в программе можно настроить, и для этого нужно использовать сертификат SSL. Всё это можно сделать, и файлы будут шифроваться, но ещё чуть позже выяснилось, что для ЛЮБОГО доступа к серверу можно использовать так называемый SSH-туннель. Этот SSH-туннель представляет собой защищённое (зашифрованное) соединение, внутри которого можно передавать любую информацию. То есть, между моим компьютером и сервером, как бы, прокладывается ТРУБА, которую никто не может "прогрызть" и увидеть, что я там передаю. А передавать можно что угодно, например, файлы закачивать (sftp), или с базой данных общаться на нашем красивом языке (MySQL), или даже использовать наш сервер как прокси (http) и заходить на сайты с другого IP. То есть, любой протокол можно впихнуть в эту трубу, в этот SSH-туннель. Для меня это было вообще открытие, такая классная вещь! Соответственно, пропадает надобность в установке на сервер программы vsftpd и создавать для неё сертификат. Меньше разных программ на сервере — меньше проблем и выше безопасность. Один туннель для всего — это очень удобно. И на моё счастье, оказалось, что программа PuTTY как раз умеет делать такие туннели. И вот как это делается...

В списке слева выбираем Connection -> SSH -> Tunnels. В поле Source port вводим любой номер порта выше 1024 и ниже 65535, например, 44444. Чуть ниже выбираем пункт Dynamic, как показано на скрине:
» Кликните сюда для просмотра оффтоп текста.. «

Затем переходим в основную вкладку Session. Вводим как обычно адрес сервера, порт и название нашего подключения, например, SSH-Tunnel:
» Кликните сюда для просмотра оффтоп текста.. «

И нажимаем кнопку Save, чтобы у нас появилась сохранённая запись, и нам не приходилось каждый раз заново всё это вводить:
» Кликните сюда для просмотра оффтоп текста.. «

Теперь после двойного клика на эту запись у нас появится обычная уже известная нам чёрная консоль. Но особенность её будет в том, что после ввода логина и пароля, кроме возможности вводить команды, одновременно будет работать SSH-туннель, через который можно передавать любую информацию. Это будет происходить через указанный нами порт с номером 44444. Например, чтобы пустить через этот туннель http-трафик браузера Mozilla Firefox, в настройках браузера (Дополнительные -> Сеть -> Соединение -> [Настроить]) нужно указать:
» Кликните сюда для просмотра оффтоп текста.. «

И нажать кнопку ОК. После этого, если зайти, например, на yandex.ru и ввести там "ip", то Яндекс покажет, с какого IP-адреса мы заходим на сайты. В данном случае Яндекс покажет нам IP-адрес сервера, а не нашего домашнего компьютера. И если сервер, например, находится не в России, то эту особенность можно использовать для беспрепятственного входа на запрещённые в России сайты, например, на rutracker.org.
И это только один пример, как можно использовать SSH-туннель. Ещё раз повторю, что через туннель можно передавать практически любую информацию, и в дальнейшем я ещё буду говорить об этом.

Продолжение следует...


--------------------


--------------------
Подарки: (Всего подарков: 41 )
Подарок
Подарил(а): льдинка
Подарок
Подарил(а): Фарит
Подарок
Подарил(а): Фарит




Go to the top of the pageGo to the end of the page
 
+Quote Post
indеx
сообщение 21.07.2017 - 21:57
Сообщение #17


Почетный
*******

Текущее настроение:

Вст. ник | Цитата

Группа: Супер Стар
Сообщений: 3097
Регистрация: 29.12.2009
Пользователь №: 33839

Награды: 15
Подарки: 41

Пол: М


Репутация:   315  

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

Прокси это конечно хорошо, но нам нужно было залить файлы на сервер. Для этого мы собирались использовать SSH-туннель, и желательно, чтобы была возможность пользоваться программой Total Commander. Берём поисковую систему, вводим туда соответствующий запрос, и находим ответ. Оказывается, для Тотал Командера есть плагин wfx_sftp, который можно установить, и он будет работать совместно с программой PuTTY. Этот плагин можно скачать, например, отсюда. Установка плагина заключается в следующем:
1. Скачиваем архив, распаковываем его.
2. В настройках программы (Конфигурация -> Настройка -> Плагины) под пунктом "Плагины файловой системы (.WFX)" нажимаем кнопку "Настройка":
» Кликните сюда для просмотра оффтоп текста.. «

3. Появляется окно, в котором нужно нажать кнопку "Добавить", затем найти распакованный плагин и выбрать оттуда файл plugin_sftp.wfx (или файл plugin_sftp.wfx64 в зависимости от того, 32- или 64-битная версия Total Commander у Вас установлена). В результате, в списке должна появиться новая строка, как на скрине:
» Кликните сюда для просмотра оффтоп текста.. «

4. Нажимаете кнопку ОК, затем закрываете основное окно настроек, и всё, плагин установлен.

Теперь как пользоваться:
В Тотал Командере нажимаете кнопку "Сеть / FS-плагины" и выбираете пункт "Secure FTP Connections":
» Кликните сюда для просмотра оффтоп текста.. «

После чего появится список подключений, которые Вы настроили в программе PuTTY, одно из которых мы назвали SSH-Tunnel:
» Кликните сюда для просмотра оффтоп текста.. «

И если Вы два раза кликните на эту строку, а затем в появившихся окошках введёте логин и пароль, что используются при подключении по SSH, то попадёте прямиком в файловую систему сервера. И теперь в нашем любимом Тотал Командере мы можем закачивать файлы на сервер и скачивать файлы с сервера, как будто они у нас на компьютере. Классно! Ниужели нам это удалось? О да, и это оказалось не так уж и сложно. Тем более, что сегодня при помощи Интернета в нашем распоряжении весь мир, где мы можем найти ответы на любые вопросы и удовлетворить любые желания! ca.gif

Продолжение следует...


--------------------


--------------------
Подарки: (Всего подарков: 41 )
Подарок
Подарил(а): льдинка
Подарок
Подарил(а): Фарит
Подарок
Подарил(а): Фарит




Go to the top of the pageGo to the end of the page
 
+Quote Post
indеx
сообщение 22.07.2017 - 3:43
Сообщение #18


Почетный
*******

Текущее настроение:

Вст. ник | Цитата

Группа: Супер Стар
Сообщений: 3097
Регистрация: 29.12.2009
Пользователь №: 33839

Награды: 15
Подарки: 41

Пол: М


Репутация:   315  

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

На данный момент я научился:
— подключаться к консоли через SSH,
— делать SSH-туннель к серверу,
— настраивать Total Commander на работу с файлами сервера через SSH-туннель.
Но этого, конечно же, мало. Если закачать файлы на сервер, то ничего особенного не произойдёт, и сайт не начнёт работать автоматически. Чтобы на сервере начал работать хоть какой-нибудь сайт, нужно установить программу веб-сервер. Но прежде чем начать эту тему, и чтобы закончить про SSH, я расскажу о повышении безопасности при работе через SSH.
Когда я захожу в консоль, то ввожу логин root и пароль, который пришёл мне по почте.
Во-первых, этот пароль нужно сразу сменить, т.к. неизвестно, пришёл он ко мне через защищённое соединение, или нет. Делается это следующей командой в консоли:
Код
passwd root
, после чего система предложит ввести новый пароль, два раза, чтобы избежать ошибки.
Так, пароль сменили. Но и это не гарантирует вероятность взлома злоумышленниками. Дело в том, что протокол SSH по умолчанию использует порт с номером 22, все компьютерщики это знают, в том числе и хакеры. Эти хакеры создают программы-боты, которые буквально ЛОМЯТСЯ на чужие серверы, т.е. многократно и бесконечно пытаются зайти на серверы через SSH, используя порт 22, логин root и тупо перебирая различные варианты пароля. Вероятность угадывания пароля, конечно, невелика, но если через пару лет это произойдёт, то для коммерческого проекта ущерб может быть просто убийственным, поэтому этот вариант нужно считать уязвимостью, и обязательно его исключать. Для этого мы можем поменять номер порта со значения 22 на любое другое в пределах от 1024 до 65535. Делается это просто...
В файле /etc/ssh/sshd_config есть строка:
Код
Port 22
, в которой значение 22 нужно заменить на новое. После чего сохранить файл и перезапустить службу SSH с помощью ввода команды:
Код
systemctl restart ssh
Всё, теперь на нашем сервере SSH работает не на 22-м порту, а на другом, выбранном нами. Это сразу снизит количество попыток взлома от самых тупых программ-ботов. Однако, боты поумнее могут определить, какие порты у сервера открыты, и всё равно найдут номер нашего порта. В этом можно не сомневаться, т.к. есть даже сайты, на которых можно быстро узнать, какие порты открыты на моём сервере. Например, вот на этом сайте http://www.t1shopper.com/tools/port-scan/ можно выбрать диапазон портов, просканировать свой сервер, и найти там порт, который отвечает. Поэтому одним только изменением номера порта здесь не обойтись. Что ещё мы можем изменить? Логин! То есть, нужно создать новую учётную запись пользователя с другим именем, которое никто не знает. Например, с именем kamikadze9705. Для этого вводим в консоли следующую команду:
Код
adduser kamikadze9705
, после чего система предложит ввести пароль, два раза, как обычно, а также предложит ввести полное имя, номер комнаты, рабочий телефон, домашний телефон и "другое". Всё это, кроме пароля, можно не заполнять, оставлять пустым и просто нажимать Enter. Таким образом будет создана новая учётная запись пользователя kamikadze9705, под которым теперь можно зайти через SSH. Но изначально новый пользователь лишён возможности выполнять администрирование сервера, и чтобы дать ему такую возможность, нужно написать в консоли:
Код
usermod -aG sudo kamikadze9705
Это означает, что пользователя kamikadze9705 нужно добавить в группу sudo, которая как раз и даёт право действовать от имени администратора. Всё, теперь наш новый пользователь стал полноценным, и можно пробовать зайти им на сервер через программу PuTTY. Только нужно не забыть, что мы сменили 22-й номер порта на новый, и изменить его в настройках программы, иначе зайти не получится. Меняем порт и заходим с новым логином и паролем. А теперь внимание! Любому другому пользователю, кроме root, перед вводом администраторских команд, нужно писать слово "sudo". То есть, из-под пользователя root мы писали:
Код
apt install vsftpd
, а из-под любого другого пользователя, нужно писать:
Код
sudo apt install vsftpd
И кроме этого, система ещё и попросит ввести пароль (пароль этого пользователя, а не root-а). Это, конечно, неудобно, но так нужно для обеспечения безопасности сервера.
Итак, мы зашли на сервер под новым пользователем. Но ведь старый пользователь, root, никуда не делся, и под ним тоже можно зайти. А мы для безопасности хотели, чтобы было нельзя. Значит, пользователя root нужно как-то удалить. Но удалить его в системе невозможно, а возможно только отключить. Делается это удалением пароля. И если мы выполняем администраторские команды, привыкаем каждый раз в начале строки писать слово sudo, а также вводить свой пароль:
Код
sudo passwd -l root
, вводим пароль, и пользователь root отключен. Чтобы убедиться в этом, пробуем зайти на сервер под root-ом, и странное дело, радуемся, когда у нас это не получается ag.gif Всё, теперь программы-злоумышленники тоже не смогут зайти под стандартным логином root. А смогут зайти только если угадают И логин, И пароль одновременно, что уже практически нереально, а значит, мы с вами можем спать спокойно.
Теперь снова входим под нашим камикадзой и пишем в консоли следующее:
Код
sudo apt update
При этом система обновляет информацию о доступных обновлениях и сообщает нам в ответ, сколько пакетов может быть обновлено. Затем мы пишем:
Код
sudo apt upgrade
При этом система запускает обновление и просит нас подтвердить данную операцию. Подтверждаем нажатием клавиши "Y" и видим, как по экрану побежало много букв. Это началось обновление системы, чтобы на нашем сервере работали самые последние, самые безопасные и самые модные версии программ. Ждём минут 5. Теперь, для упрощения работы на сервере, устанавливаем чудо-программу, которая сделает нашу консоль намного более наглядной и удобной. Эта программа называется Midnight Commander. Ничего не напоминает? ab.gif Устанавливается она как обычно:
Код
sudo apt install mc
, после чего запускается:
Код
mc
В первый раз эту программу нужно запускать именно так и именно от любого другого пользователя, кроме root. После чего можно выходить из неё нажатием клавиши F10 и запускать в администраторском режиме, чтобы были доступны все возможности:
Код
sudo mc
Если Вы уже смирились с тем, что работать на сервере можно только через командную строку, то увидев эту программу Вы будете удивлены. Она похожа на программу Total Commander, только более простую её версию, но всё равно это намного лучше, чем просто командная строка. Здесь можно лазать по каталогам файловой системы, смотреть, какие файлы там лежат, открывать их для просмотра клавишей F3, открывать их для редактирования клавишей F4, копировать клавишей F5, перемещать F6, создавать новые каталоги F7, удалять F8, и радоваться, радоваться, радоваться, как легко и быстро мы поменяли, поперемещали и поудаляли много разных файлов, которые были нужны для работы нашего сервера! ai.gif Что ещё раз подтверждает общий закон нашей жизни: больше свободы — больше ответственности.

Продолжение следует...


--------------------


--------------------
Подарки: (Всего подарков: 41 )
Подарок
Подарил(а): льдинка
Подарок
Подарил(а): Фарит
Подарок
Подарил(а): Фарит




Go to the top of the pageGo to the end of the page
 
+Quote Post
indеx
сообщение 23.07.2017 - 0:06
Сообщение #19


Почетный
*******

Текущее настроение:

Вст. ник | Цитата

Группа: Супер Стар
Сообщений: 3097
Регистрация: 29.12.2009
Пользователь №: 33839

Награды: 15
Подарки: 41

Пол: М


Репутация:   315  

Поэтому, если поначалу Вы не уверены в своих действиях, то можно запускать программу Midnight Commander (MC) в обычном режиме, без префикса "sudo". В таком режиме ничего страшного натворить не удастся — система не позволит. Я же в дальнейшем буду использовать администраторский режим. Это удобнее тем, что не нужно перед каждой командой писать слово "sudo". Написал один раз перед запуском MC, и больше это слово тебя не беспокоит. Очень удобно. Только в программе MC командная строка представляет из себя не весь чёрный экран, как обычно, а действительно одну строчку внизу экрана. Это неудобно, т.к. мы не видим на экране результаты введённых команд. И чтобы их увидеть, а точнее, увидеть весь чёрный экран полностью, не выходя из программы MC, достаточно нажать сочетание клавиш Ctrl+O. Вернуться в программу MC можно будет таким же нажатием. Вот как выглядит программа MC:
» Кликните сюда для просмотра оффтоп текста.. «


Итак, теперь нам нужно установить на сервер программу веб-сервер. Две самых распространённых программы веб-сервера называются: Apache и Nginx. Какую же выбрать? Почитаем, что люди пишут... Оказывается, программа Apache легче в настройке и использовании, и она рекомендуется для начинающих админов. Nginx, соответственно, сложнее в настройке, но у неё есть одно очень важное для меня преимущество: в ней можно настроить защиту от разного рода спамов, в том числе и от простейшего спама кнопкой F5, о котором я писал выше. Вот, это как раз то, что мне нужно. Кроме того, пишут, что Nginx быстрее работает и чаще используется на сайтах с высокой посещаемостью. Это тоже то, что надо. В общем, берём Nginx! Берём и устанавливаем. Для установки необходимо ввести в консоли следующую команду:
Код
apt install nginx
, после чего, как обычно, спросят подтверждение, и побегут по экрану буквы, означающие, что программа устанавливается.
После завершения установки, веб-сервер сразу же начинает работать. И на наш сайт сразу же можно зайти из браузера. Допустим, адрес нашего сайта: example.com. Вводим в браузере этот адрес и видим страницу, которая всегда появляется после установки программы. То есть, это не наш сайт, а просто "страница-заглушка", назначение которой просто показать, что сайт работает:
» Кликните сюда для просмотра оффтоп текста.. «

Однако, этот веб-сервер Nginx, в отличие от Apache, не умеет работать с файлами PHP. Поэтому нам нужно установить ещё одну программу, которая это умеет. Называется она php-fpm, и устанавливается обычным уже для нас способом:
Код
apt install php7.0-fpm
Вот теперь наш веб-сервер сможет работать с файлами PHP. Но нам и этого мало. Нужна же ещё база данных, а точнее, сервер баз данных, а ещё точнее, СУБД (система управления базами данных) под названием MySQL. Это та, которая с красивым языком. Ставим её тоже обычным способом:
Код
apt install mysql-server
, за исключением лишь того, что во время установки нам нужно будет придумать и ввести пароль учётной записи администратора MySQL. Придумываем, вводим... Кстати, название учётной записи администратора MySQL такое же, как и администратора Ubuntu — root. Это название используется в качестве учётной записи администратора ещё во многих других информационных системах, поэтому, приучаемся не путать одного "рута" с другими.

В общем, мы установили на наш хостинг три основных компонента веб-сервера:
1) Nginx, который обрабатывает статические HTML-страницы,
2) php-fpm, который обрабатывает PHP-файлы,
3) MySQL-Server, который хранит данные и выдаёт их нам по нашему запросу.

Все эти три компонента работают в команде, рука об руку, для достижения одной важной цели — чтобы наш сайт работал. Какие молодцы! Но пока мы видим на странице браузера не наш сайт, а какую-то заглушку. Это потому, что мы не загрузили наши файлы на сервер. Заходим в наш любимый Total Commander, подключаемся к файловой системе сервера через SSH-туннель и видим следующую картину:
» Кликните сюда для просмотра оффтоп текста.. «

Возникает закономерный вопрос: "А в какую папку закачивать файлы?" Ищем ответ, как обычно, в Интернете, где пишут, что это папка /var/www/html. Что ж, начнём-ка закачивать-ка... Но перед этим заархивируем наши файлы в один архив, чтобы они быстрее закачались на сервер. Выбираем для этого самый лучший архиватор 7z, который есть в наборе архиваторов в нашем Тотал Командире, и делаем архив. Затем просто копируем этот архив в папку /var/www/html и проверяем, работает ли сайт. Опа! Не тут-то было... Файл не закачивается, нам пишут ошибку. А всё дело в том, что любая операционная система Linux, и в частности, Ubuntu, использует права доступа к файлам. И видимо, для записи файлов в эту папку пользователем kamikadze9705, недостаточно прав. Чтобы не углубляться здесь во все хитрости системы прав доступа Linux, скажу проще... Пользователь kamikadze9705 не является владельцем папки /var/www/html. Соответственно, нужно сделать его таковым. Для этого через консоль даём серверу команду:
Код
chown kamikadze9705 /var/www/html
, что в переводе означает: "Сервер, будь добр, сделай пожалуйста пользователя kamikadze9705 владельцем папки /var/www/html". И сервер тут же всё сделает, на то он и сервер. После чего наш файл-архив легко и непринуждённо закачается в эту папку. Теперь нам нужно его распаковать. Для этого установим на сервер ещё одну программу-архиватор под одноимённым названием 7z:
Код
apt install p7zip-full
Программа устанавливается, и мы сразу же используем её, чтобы разархивировать наш архив с файлами сайта. Но перед этим удалим тот файл, что был в этой папке до закачки архива. Это тот файл, в котором написана страница-заглушка, и он нам больше не нужен. Не помню, как он называется, я его уже удалил ca.gif Короче говоря, разархивируем наш архив... Стоп! Я же сейчас нахожусь в программе MC, запущенной от имени администратора, а значит, все файлы, созданные в системе, будут принадлежать пользователю root, и получить к ним доступ от других пользователей будет невозможно. Значит, сначала выходим из программы MC, и снова заходим в неё, только не от имени администратора, а от своего имени, kamikadze9705:
Код
mc
Затем, открываем чёрный экран нажатием Ctrl+O и вводим команду для разархивирования файла:
Код
7z x arhiv.7z
, где 7z — программа-архиватор, которую мы установили,
буква "x" — означает, что нужно не ЗАархивировать, а именно РАЗархивировать,
и arhiv.7z — это имя нашего файла-архива, содержащего файлы сайта.
После ввода команды по экрану побегут буквы, после чего в папке появятся файлы нашего сайта. И с наивной надеждой, что сайт наш наконец-то заработает на VPS-хостинге, мы идём спать.

Продолжение следует...


--------------------


--------------------
Подарки: (Всего подарков: 41 )
Подарок
Подарил(а): льдинка
Подарок
Подарил(а): Фарит
Подарок
Подарил(а): Фарит




Go to the top of the pageGo to the end of the page
 
+Quote Post
indеx
сообщение 24.07.2017 - 17:39
Сообщение #20


Почетный
*******

Текущее настроение:

Вст. ник | Цитата

Группа: Супер Стар
Сообщений: 3097
Регистрация: 29.12.2009
Пользователь №: 33839

Награды: 15
Подарки: 41

Пол: М


Репутация:   315  

Ура, сайт заработал! rs.gif
Эммм... Только как-то странно заработал — картинок нет, форматирования страницы нет, цвета текста и цвета фона красивых тоже нет, один только чёрный текст на белом фоне, и всё это в столбик снизу доверху. Что за дела? ai.gif Файлы .html, находящиеся в каталоге сайта, значит, работают, а файлы картинок, находящиеся в подкаталоге images и файлы .css, находящиеся в подкаталоге css, не работают. Значит, не работают подкаталоги? Ааа, видимо, это связано с правами доступа к файлам и каталогам. Угу, значит, придётся всё-таки углубиться немного в особенности прав доступа в системах Linux.
Дело в том, что для каждого файла и каждого каталога назначается не только владелец-пользователь, но и владелец-группа. Давайте помотрим этих владельцев командой:
Код
ls -l /var/www/html

На экране консоли появляется список вот таких строк:
Код
drwx------  2 kamikadze9705 kamikadze9705      4096 Jul 24 14:13 css
-rw-rw-r--  1 kamikadze9705 kamikadze9705     10296 May 21 13:50 index.html

Каждая строка показывает информацию об одном файле или каталоге, находящемся в каталоге /var/www/html. И мы видим, что все файлы и каталоги принадлежат пользователю kamikadze9705 и группе с таким же названием kamikadze9705. Теперь давайте рассмотрим, собственно, значения прав доступа. У каталогов эти значения равны:
Код
drwx------
, а у файлов:
Код
-rw-rw-r--
Что это значит?
Первая буква "d" означает, что это каталог (directory), понятно.
Затем идут три блока по три символа для трёх видов субъектов: 1) владелец, 2) группа, 3) все остальные.
То есть, у каталога css права:
  • для владельца: rwx
  • для группы: ---
  • для всех остальных: ---

Как Вы сами уже наверно поняли, доступ к этому каталогу имеет только владелец каталога, то есть, пользователь kamikadze9705. Пользователи же, входящие в группу kamikadze9705 (кроме владельца), а также все остальные пользователи не имеют прав доступа к каталогу. Ага, теперь понятно, почему веб-сервер не работает с подкаталогами — ведь он действует НЕ от имени пользователя kamikadze9705. Давайте посмотрим, от какого имени действует веб-сервер Nginx. Для этого заходим в каталог /etc/nginx и открываем там файл nginx.conf (клавишей F3). В самом начале этого файла видим строчку:
Код
user www-data;

Всё понятно, nginx действует от имени пользователя www-data.
В этой ситуации (чтобы nginx имел доступ ко всем файлам и каталогам) можно сделать по-разному. Можно приказать nginx действовать от имени kamikadze9705, т.е. от имени владельца файлов. Для этого нужно в файле nginx.conf исправить одного пользователя на другого. А можно сделать похитрее — не менять пользователя nginx (www-data), но включить его в группу-владельца файлов, т.е. в группу kamikadze9705. Только при этом нужно будет поменять значения прав доступа к файлам. Такой подход лучше в том смысле, что за доступ пользователя kamikadze9705 будет отвечать первый блок прав, а за доступ пользователя www-data — второй блок. То есть, права доступа будут разграничены, и можно будет изменить права одному субъекту, не изменяя другому. Давайте сделаем это...
Сначала включим пользователя www-data в группу kamikadze9705:
Код
usermod -g kamikadze9705 www-data

А теперь изменим значения прав доступа к файлам в каталоге /var/www/html таким образом, чтобы файлы были доступны и пользователю, и группе:
Код
chmod -R 770 /var/www/html

, где -R означает "включая все вложенные файлы, каталоги и подкаталоги всех уровней вложенности",
а 770 — это значения прав "rwxrwx---", только в числовом виде.
То есть, "rwx" = 7, а "---" = 0.
Соответственно, первая семёрка означает полный доступ к файлам для пользователя-владельца kamikadze98705, вторая семёрка означает полный доступ к файлам для всех членов группы kamikadze9705, в которую входит пользователь www-data, от имени которого работает nginx, а третья цифра, ноль, означает отсутствие каких либо прав доступа к файлам для всех остальных пользователей.
Сделали. Теперь проверяем, изменились ли наши права:
Код
ls -l /var/www/html
и видим, что они действительно изменились.
Так, теперь проверяем, как работает сайт...
Картинки показываются, форматирование правильное и цветастое всё, цветастое!
Ура! Теперь точно ура! qa.gif
Продолжение следует...


--------------------


--------------------
Подарки: (Всего подарков: 41 )
Подарок
Подарил(а): льдинка
Подарок
Подарил(а): Фарит
Подарок
Подарил(а): Фарит




Go to the top of the pageGo to the end of the page
 
+Quote Post

7 страниц V  < 1 2 3 4 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 




> Статистика
Board Stats

Подарок форуму

10 евро

100 евро

10000 евро

1000000eur

  


Текстовая версия Сейчас: 20.04.2024 - 6:07