Привет!
Пока у меня есть свободное время, я продолжаю писать на тему VPS. Вчера я писал о трёх компаниях поставщиках услуг VPS-хостинга, сегодня напишу несколько абзацев о начальной настройке серверов для размещения сайтов.
Дано: сервер с Ubuntu 12.04.4 LTS, есть доступ SSH и права рута.
Что нам потребуется: если наш домашний компьютер с Windows, то программы PuTTY и WinSCP.
Если наш домашний компьютер с Ubuntu, то тля установки программы PuTTY набираем в консоли sudo apt-get install putty
и файловый менеджер с поддержкой SSH, например, Krusader, для его установки копируем в консоль sudo apt-get install krusader
$CUT$.
Итак, всё устанавливаем, запускаем PuTTY, вводим ip нашего сервера, порт, по умолчанию 22. На вопрос login as:
пишем root
. Далее запрос пароля: root@185.22.*.*'s password:
— пишем пароль, при этом символы на экране появляться не будут, не пугайтесь и вводите пароль очень внимательно, лучше скопировать из письма от хостера и правой кнопкой мыши вставить. Если всё правильно, то должно появиться что вроде этого:
login as: root
root@185.22.61.12's password:
Welcome to Ubuntu 12.04.4 LTS (GNU/Linux 3.10.0-6-generic x86_64)
* Documentation: https://help.ubuntu.com/
System information as of Sat Jul 19 18:11:35 MSK 2014
System load: 0.01 Processes: 214
Usage of /: 21.1% of 15.59GB Users logged in: 1
Memory usage: 80% IP address for eth0: 10.*.*.*
Swap usage: 1000% IP address for eth1: 185.*.*.*
Graph this data and manage this system at:
https://landscape.canonical.com/
Last login: Sat Jul 19 16:53:24 2014 from 37.113.182.40
root@vm*****:~#
Первое, что нам нужно — это установить и настроить веб-сервер. Я выбираю Apache, он уже много лет работает на моём домашнем компьютере, нравится он мне. Устанавливать будем не только Apache, но ещё и PHP, MySQL, phpMyAdmin:
sudo
если под рутом, то сразу к пункту 1:
sudo su
cd
(вариант cd /root
— не должен работать):
cd
apt-get update
apt-get install apache2 apache2-mpm-prefork apache2-utils apache2-suexec php5 php5-mysql libapache2-mod-php5 curl libcurl3 libcurl3-dev php5-curl php5-mcrypt php-pear php5-gd sendmail mysql-server mysql-client libmysqlclient15-dev phpmyadmin nano
apt-get purge apache2 apache2-mpm-prefork apache2-utils apache2-suexec php5 php5-mysql libapache2-mod-php5 curl libcurl3 libcurl3-dev php5-curl php5-mcrypt php-pear php5-gd sendmail mysql-server mysql-client libmysqlclient15-dev phpmyadmin nano
service apache2 restart
Теперь настроим phpMyAdmin. Жить он у нас будет на IP 127.0.1.1 (можно задать любой другой).
apt-get update
apt-get install phpmyadmin
apt-get install nano
nano /etc/apache2/sites-available/phpmyadmin
<VirtualHost 127.0.1.1:80>
ServerName localhost
DocumentRoot /usr/share/phpmyadmin
ServerAdmin webmaster@localhost.loc
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
a2ensite phpmyadmin
a2dissite phpmyadmin
service apache2 restart
http://phpmyadmin/
. Для этого откроем файл /etc/hosts
:
nano /etc/hosts
127.0.1.1 phpmyadmin
Совсем забыл: у северной Ubuntu нет экрана. Поэтому сейчас установим десктопную версию Ubuntu и настроим VNC. Если у вас и так десктопная Ubuntu пролистайте дальше.
apt-get install ubuntu-desktop
apt-get install gdm
если сервер не мощный, то, когда возникнет вопрос, выбираем lightgdm (при запуске будет только консоль). Если мощный, то можно выбрать gdm (при запуске будет консоль и полноценный рабочий стол), но зачем грузить сервер лишним? /etc/init.d/gdm start
apt-get install vnc4server
vncserver :1 -geometry 1366x768 -depth 16 -pixelformat rgb565
vncserver :1 -geometry 1024x768 -depth 16 -pixelformat rgb565
vncpasswd
vncserver -kill :1
nano ~/.vnc/xstartup
gnome-session &
firefox
и нажимаем Enter. В адресной строке вводим http://phpmyadmin/ и если всё настроено правильно мы видим такую картину:
Давайте теперь изменим настройки безопасности. Можно делать не всё и зприведённого ниже. Например, оставить root юзера, но изменить порт. Однако, это может плохо сказаться на безопасности.
useradd user0
sudo
:
useradd user0 sudo
visudo
user0 ALL=(ALL) ALL
/etc/ssh/sshd_config
командой nano /etc/ssh/sshd_config
. Port 22
, заменяем 22
на что-нибудь цифровое от 2 до 4 символов, например на 3133
. PermitRootLogin yes
, заменяем yes
на no
. AllowUsers user0
. Если вы не добавите эту строчку, то можете остаться без SSH доступа после следующего шага.
service ssh restart
/etc/init.d/sshd restart
sudo su
и cd
(выход из «режима рута» exit
), либо перед каждой командой пишем sudo
Мы будем использовать VPS для размещения сайта, а всё ещё не настроили ни один хост для сайта. Настройкой виртуального хоста мы занимались, когда настраивали phpMyAdmin. Сейчас определяемся с тем, где будем хранить файлы своего сервера в /var/www/site.ru
или в папке юзера /home/user0/site.ru
, где user0 — имя пользователя, site.ru — имя домена. В примере ниже используется второй способ.
nano /etc/apache2/sites-available/site.ru
<VirtualHost *:80>
ServerName site.ru
ServerAlias *.site.ru
ServerAlias site2.ru
DocumentRoot /home/user0/site.ru
ServerAdmin webmaster@localhost.loc
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
user0
вписываем имя своего юзера site.ru
подставляем свой домен, если доменов несколько, то заполняем ServerAlias
(заменяем site2.ru
), так же вместо webmaster@localhost.loc
можно вписать свой e-mail. Обязательно проверяем, чтоб в первой строчке был не IP-адрес (например, 127.0.0.1:80), а звёздочка (*:80), иначе сайт не будет доступен из Интернета. Выходим из редактора. Для этого нажимаем Ctrl+X, y для сохранения файла и Enter для подтверждения адреса сохраняемого файла. Для навигации по файлу используются кнопки-стрелочки и кнопки Page Up (PgUp) и Page Down (PgDn), Home и End. 127.0.0.1
, адрес нашего нового сайта, алиас (второй, третий и т.д. домен), при желании можно задать ещё адрес, который будет доступен только с сервера, например site
. Для этого откроем файл /etc/hosts
:
nano /etc/hosts
127.0.0.1 site.ru site2.ru site
/home/user0/site.ru
:
mkdir /home/user0/site.ru
a2ensite site.ru
a2dissite site.ru
service apache2 reload
service apache2 restart
FTP. Это отдельная тема. Целая эпоха в этих трёх буквах. Поэтому я не стал её включать в первый раздел. Мне FTP ещё ни разу не потребовался, всё было закачано через WinSCP. Однако, иногда этот морально устаревший протокол всё-таки нужен. Например для обновления и установки плагинов WordPress.
apt-get install proftpd
From inetd
или Standalone
— выбираем Standalone
. ftp://127.0.0.1
, если сервер запросил логин и пароль, то всё ОК. FTP-сервер запускается автоматически после установки и использует юзеров Ubuntu, то есть любой юзер, кроме root, теперь может подключаться к серверу по протоколу FTP и все эти пользователи будут попадать в одну папку /srv/ftp
. Меня это не устроило, поэтому я подправил файл /etc/proftpd/proftpd.conf
:
nano /etc/proftpd/proftpd.conf
# DefaultRoot ~
#
в начале строки). Теперь пару слов об этой строчке. Если она закомментирована, то при подключении любого юзера используется путь по умолчанию (это /srv/ftp
). Если эта строка не имеет хеш ( #
) в начале и как адрес указана тильда ( ~
), то при подключении к серверу юзер попадает в свою домашнюю папку. Так же можно задать общую папку для всех юзеров, например, /var/www
. Для этого данная строка должна принять такой вид: # DefaultRoot /var/www
ftpuser
с доступом к FTP, но без доступа к SSH:
adduser ftpuser --shell /bin/false
ftpuser
можно удалить командой userdel ftpuser
и его папку rm -r /home/ftpuser
/etc/proftpd/proftpd.conf
:
nano /etc/proftpd/proftpd.conf
ServerName
— опция, которая задаёт имя сервера. DefaultRoot
— опция определяющая, в какой папке сразу после подключения будет находиться юзер. Port
— опция, которая задаёт порт для подключения к серверу, по умолчанию это 21. MaxInstances
— опция определяющая максимальное количество подключений к серверу (но не юзеров). Umask
— опция, которая определяет маску прав для загружаемых по FTP файлов. Маска 022 означает, что все папки будут грузиться с правами 755, а все файлы с правами 644. AllowOverwrite
— опция, которая разрешает или запрещает перезаписывать файлы по FTP. service proftpd restart
На этом основная настройка FTP-сервера окончена. Конечно же, возможностей у программы больше. Об этом информация появится в одном из следующих постов.
На сегодня всё. Возможно, ещё что-то забыл, обязательно дополню, как вспомню, либо буду настраивать следующий VPS.
Фолловьте меня в Твиттере, пишите комменты, пока!
Пост обновлён 30.07.2014