Здравствуйте.
Решил написать эту статейку прямо по горячим следам, так как только что закончил марафон по переносу своих сайтиков с вируального
Конечно, для большинства прекрасных админов и любителей linux эта задача абсолютна тривиальна, но вот я, несмотря на упорство и знание английского, потратил на раскрытие темы кучу времени, по крупицам нагугливая — что и как, зачем и почему.
И теперь, я надеюсь, ребята которые также гуглят данный вопрос попадут на эту статью, и прочитают все от начала до конца, и настроят себе сайтики на
Конечно же можно было бы купить специальную панель управления для своего сервера, или попросить хостера сделать перенос, но это не так интересно.
Ну и маленькое предупреждение — я ничего нового не придумал, и чисто интуитивно разобрался с происходящим, поэтому если у вас что-то не получится из того, что получилось у меня — то я ничем не помогу, если только морально поддержу немножко.
И до этого я пользовался только обыкновенным
Как все начиналось
У каждого свои причины перехода на
Я им вначале поверил, подумал что вордпресс действительно такой тормоз, но потом не поверил, потому что если бы он у всех работал бы с такой же скоростью, то никто бы его никогда не использовал.
Короче, я решил что нужно уже становиться взрослее и переезжать на
После быстрых мучительных раздумий, я выбрал Hetzner, просто потому что о нем было больше упоманинаний. Еще думал про Linode, но он оказался дороже, поэтому Hetzner.
Заказал самый простой тариф VQ 7, в конфигурации выбрал Debian + LAMP, указал данные кредитной карточки, прислал им фотку водительских прав. И все. Все получилось, мне в ответ пришли пара писем к одном из которых был доступ к непонятному мне роботу и в другом письме данные от моего уже готового
Как все продолжалось
«Хо-хо, отлично!» — подумал я. Набрал в браузере присланный мне айпи адрес, пуcть он будет 12.34.567.899
и увидел, что там вообще все прекрасно:
It works!
This is the default web page for this server.
The web server software is running but no content has been added, yet.
Значит самое время зайти по FTP, залить туда свой wordpress и радоваться.
Открываю Transmit, ввожу IP адрес, пользователь root, пароль — тот, который прислали, и что же я вижу:
Я честно, минут 10 искал где лежит мой файл index.html, чтобы узнать в какую папку заливать свой вордпресс, но не нашел.
Как все развивалось
Дальше шли долгие и долгие попытки раскрыть тему
Первым делом нужно как-то подключиться к своему
Для этого я запустил Терминал (программы-утилиты-терминал)
Те, кто используют windows — используйте putty, те кто испоьзует linux — вы и сами все знаете.
Дальше, в терминале пишем:
ssh root@12.34.567.899
Нажимаем enter. (соответсвенно ssh — это ssh, root — это имя пользователя, 12.34.567.899 — это ваш IP )
Потом появится строчка
root@12.34.567.899's password:
Здесь нужно внимательно набрать свой пароль (только вы его не увидите) и нажать enter
Все, круто, вход выполнен, вы в вашем
Я не ожидал увидеть тут рабочий стол с ярлыками и папками, управление мышкой и какие-то картинки, но того, что данные строки это все, что я могу и буду видеть — я тоже не ожидал.
Но да ладно, нужно теперь определиться, где же все-таки лежит этот файл index.html, который я видел в браузере, и куда делать FTP доступ.
Для справки — он находтся в папке www, папка www находтся в папке var
Чтобы в этом убедиться нужно сделать так:
cat /var/www/index.html
после этого можно увидеть содержимое этого файла. Ну все верно, в общем, это наш файл.
Теперь нужно, чтобы к папке www можно было подключиться по FTP, чтобы заливать и редактировать файлы.
Для начала ставим специальный FTP-сервер (это же не
apt-get install vsftpd
Все, он установлен. Теперь нужно отредактировать его конфиг.
nano /etc/vsftpd.conf
Стрелочками клавиатуры перемещаем курсор среди этого текста, находим то, что нужно отредактировать, редактируем. Грубо говоря, если видите одну из строчек, которая внизу, то ее нужно либо раскомментировать (убрать # перед ней) либо поменять YES на NO или NO на YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
connect_from_port_20=NO
chroot_local_user=YES
local_umask=022
Не буду вдаваться в подробности, для чего это нужно, потому что сам толком не знаю этих подробностей.
Дальше в самом конце данного файла дописываем эти вот строчки:
userlist_file=/etc/vsftpd.userlist
userlist_enable=YES
userlist_deny=NO
Вот тут вдамся в подробности — эти строчки означают то, что в это конфиге мы прописали то, что будет существовать специальный список пользователей, которым будет в принципе разрешено пользоваться FTP.
Сохраняем файл (Ctrl+X — Y — Enter)
Вот, теперь, собственно, нужно создать тот самый список с пользователями, у которых будет доступ к FTP. Для этого нужно создать файл с именем vsftpd.userlist, в папке /etc (чтобы первая строчка в предыдущем блоке кода обрела смысл)
nano /etc/vsftpd.userlist
Автоматически создавшись, откроется тот самый файл vsftpd.userlist, куда мы просто первой строкой впишем имя пользователя, для которого будет доступен FTP. К примеру ftpuser (а затем второй строкой второго юзера, третьей третьего (если потребуется) и т.д.)
И сохраним этот файл.
Теперь создано правило для FTP, по которому определенный пользователь может получить доступ, однако, пока еще не создано правило для самого сервера, поэтому нужно это исправить.
useradd -d /var/www -s /usr/sbin/nologin ftpuser
Смысл этой строчки в том, что пользователь ftpuser добавляется как Пользователь, и все хорошо.
И сразу зададим пользователю пароль:
passwd ftpuser
К слову, если написать не /var/www а /var/www/mysite или /etc/ то FTP доступ будет у этого пользователя именно к указанной папке, и всем папкам, которые в этих папках.
Все, теперь у этого пользователя есть возможность зайти по FTP в нужную папку, однако ничего изменять в этой папке он не сможет, потому что у него прав на это нет :-(
chown -R ftpuser /var/www
chmod 775 /var/www
Уже у финиша.
Теперь, чтобы не получить 500-ую ошибку, нужно, добавить одну строчку в файл:
nano /etc/shells
в конце дописываем
/usr/sbin/nologin
Сохраняем.
Теперь, не знаю зачем, нужно сделать группу пользователей и добавить в нее нашего юзера (а данном примере это группа разработчиков)
addgroup developers
usermod -Gdevelopers ftpuser
Все.
Совсем все.
Рестартуем наш FTP, и можно подключаться через Transmit используя вновь созданного пользователя с вновь созданным паролем.
service vsftpd restart
И да, это тот самый index.html.
На самом деле — не совсем все.
Поскольку тут должно рассказываться как перенести сайт, а не только как сделать FTP доступ. Поэтому помимо самого переноса файлов нужно еще и домен перенести и базу данных.
Но тут проще.
В самом начале, когда мы только подключались через терминал к нашему серверу, можно было прочитать, что
Note: Your MySQL password is in /password.txt (delete this with "erase_password_note")
Читаем, что там написано:
cat /password.txt
The MySQL root password is: BLhWSlw2
Пароль от базы данных получен, теперь в браузере входим в phpmyadmin, использую root и этот пароль (12.34.567.899/phpmyadmin)
Переносим базу данных и редактируем конфиги нашего блога (о том как это делать вы нагуглите быстрее чем я напишу)
Отныне, по адресу 12.34.567.899, виден наш блог, но нужно же, чтобы он был виден по адресу www.bytopblogue.com
Для этого нужно переписать DNS для домена.
У всех регистраторов это делайется по разному, но если в общих черных, нужно найти что-то типа Modify: A Record, и для вашего домена указать новый IP всесто старого.
Через 20, 30, 60 или 150 минут обновится кеш DNS и ваш сайт уже официально будет доступен на новом домене.
Тут-то можно и совсем закончить, однако есть еще важный момент.
У меня было там 4 сайта, для каждого сайта был свой домен и своя папочка с файлами. Все привязки и отвязки я делал через удобную панель управления.
Здесь панели управления нет, но есть конфигуратор apache
Все в том же терминале, открываем файл
nano /etc/apache2/httpd.conf
В этом файле прописываем примерно следующее:
<VirtualHost localhost>
ServerAdmin admin@localhost.com
DocumentRoot "/var/www"
ServerName localhost
ErrorLog /var/www/log.log
CustomLog /var/www/log.log common
</VirtualHost>
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin admin@site1.com
DocumentRoot "/var/www/site1"
ServerName www.site1.com
ErrorLog /var/www/site1/log.log
CustomLog /var/www/site1/log.log common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin admin@site2.com
DocumentRoot "/var/www/site2"
ServerName www.site2.com
ErrorLog /var/www/site2/log.log
CustomLog /var/www/site2/log.log common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin admin@site3.com
DocumentRoot "/var/www/site3"
ServerName www.site3.com
ErrorLog /var/www/site3/log.log
CustomLog /var/www/site3/log.log common
</VirtualHost>
Я думаю тут можно интуитивно разобраться, что сайт www.site2.com лежит в папке /site2, и таким же образом можно добавлять и больше и еше больше сайтов.
Сохраняем, перезапускаем apache.
Все.
Чем все закончилось
Да в общем-то все только начинается, потому что впереди еще миллионы вариантов оптимизаций, настроек, добавлений и удалений разных программ, но думаю что старт дан.
Также если опытные ребята найдут в статье какие-то неточности или появятся какие-то дополнения-улучшения — то я все дополню и подправлю. (ну по крайней мере у себя на сервере — точно)
Спасибо.
Автор: Serezhka