Centos 7 домашний сервер

Centos 7 домашний сервер

Обращаю особое внимание, что в данной инструкции идет речь о создании виртуального хостинга — веб-сервера для размещения сайтов изолированных друг от друга.

В качестве примера используются команды на Linux CentOS. Однако, справедливости ради, нужно заметить, что данными методами без проблем удастся настроить любой Linux и (с небольшими правками) FreeBSD.

  • Частный хостинг для небольшого количества клиентов.
  • Размещение сайтов компании.
  • Тестовый сервер для веб-мастера.
  • Установка корпоративных порталов.
  • Домашний сервер для компьютерных игр.

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

Содержание

Как выбрать сервер для хостинга

Железо

Основной потребляемый ресурс виртуального хостинга — объем жесткого диска. Небольшие сайты-визитки могут иметь размер менее 100 Мб. Но Интернет-магазины или фото- видео-порталы требуют больших ресурсов. В зависимости от целей, необходимо выделить от 50 Гб до 4 Тб. Больше или меньше для наших целей нецелесообразно.

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

Оперативной памяти также требуется небольшое количество — веб-сервер для 50 — 100 простых сайтов прекрасно себя будет чувствовать на 8 Гб.

Платформа

Прекрасно подойдут следующие варианты — обычный домашний компьютер, выделенный физический сервер, виртуальная машина, арендованный сервер.

Выбор операционной системы

Для большинства хостинг-серверов, UNIX-системы являются лучшим выбором, так как:

  1. Преимущественно, они бесплатные.
  2. Работают стабильно.
  3. Основное программное обеспечение для веб-серверов, в первую очередь, разрабатывается для UNIX.

Напомню, что в данной инструкции применяется Linux CentOS 7.

Установка веб-сервера + все необходимое

Процесс настройки веб-сервера подробно описан в статье NGINX + Apache (httpd) + MariaDB (MySQL) + PHP + PHP-FPM (fastCGI) + FTP + PHPMyAdmin + Memcached + xCache + Postfix на CentOS 7. По данной инструкции можно настроить сервер для персонального использования или использования в компании. Но на хостинге будут находиться разные сайты, которые нужно изолировать друг от друга. Также необходимы квоты.

Настройка хостинга

На предыдущем шаге представлена ссылка на статью, по которой мы сконфигурировали полноценный веб-сервер. Но для хостинга необходимо внести некоторые дополнительные настройки.

Общий пользователь

Так как к одним и тем же каталогам необходимы права доступа для nginx и apache, создаем общую группу и добавим в нее учетные записи, от которых работают данные веб-сервисы.

Добавим группу virtwww:

Задаем созданную группу как дополнительную для apache и nginx:

usermod apache -G virtwww

usermod nginx -G virtwww

Запуск виртуальных доменов от определенного пользователя

Чтобы каждый виртуальный домен apache мог работать от отдельного пользователя, устанавливаем модуль httpd-itk:

yum install httpd-itk

После открываем следующий файл:

и снимаем комментарий для LoadModule — получится:

LoadModule mpm_itk_module modules/mod_mpm_itk.so

Настройка Apache

Добавим разрешения на каталоги, в которых будут храниться файлы сайтов:

AllowOverride All
Options Indexes ExecCGI FollowSymLinks
Require all granted

AllowOverride All
Options Indexes ExecCGI FollowSymLinks
Require all granted

* по предложенной статье права были выданы на каталоги /var/www/*/www, для хостинга мы будем использовать немного другую вложенность.

Создание пользователя

Для каждого клиента необходимо создавать отдельного пользователя Linux, к которому будут привязаны виртуальные домены и базы данных. Это позволит изолировать ресурсы одного пользователя от другого и осуществить квотирование.

1. Создаем пользователя и группу Linux:

groupadd u10001 -g 10001

useradd u10001 -u 10001 -g virtwww -G u10001 -d /var/www/u10001 -m -k /dev/null

* где u10001 — имя пользователя/группы; 10001 — идентификатор пользователя в системе; virtwww — основная группа, которой будет принадлежать пользователь; опция -m создаст каталог пользователя; -k /dev/null — не использовать скелет для наполнения профиля файлами.

2. Создаем базу данных и пользователя mysql:

mysql -uroot -p -e "CREATE DATABASE b10001 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;" -e "GRANT ALL PRIVILEGES ON b10001.* TO m10001@localhost IDENTIFIED BY ‘mysqlpass’;"

* где b10001 — название базы; m10001 — пользователя базы данных; mysqlpass — пароль доступа к mysql.

3. Создаем FTP-пользователя. Процесс зависит от того, где мы решили хранить пользователей.

Если храним в файле:

ftpasswd —passwd —file=/etc/proftpd.d/ftpd.passwd —name=f10001 —u >

Если в базе данных:

mysql -uroot -p -e "INSERT INTO proftpd.users (username, password, uid, gid, homedir) values (‘f10001’, encrypt(‘ftpass’), 10001, 10001, ‘/var/www/u10001’);"

* f10001 — имя FTP-пользователя; ftpass — пароль пользователя.

4. Задаем права на каталоги:

chmod 4710 /var/www/u10001

chmod 4470 /home/mysql/b10001

chown u10001:virtwww /var/www/u10001

chown u10001:mysql /home/mysql/b10001

* где /home/mysql — путь, по которому хранятся базы.

Создание площадки

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

1. Создаем каталоги:

mkdir -p /var/www/u10001/site1.ru/

mkdir -p /var/www/u10001/site1.ru/log/

* подразумевается, что мы создаем площадку для сайта site1.ru.

2. Задаем права на каталоги:

chown -R u10001:virtwww /var/www/u10001/site1.ru

chown -R root:u10026 /var/www/u10001/site1.ru/log

chmod -R 04770 /var/www/u10001/site1.ru

chmod 0710 /var/www/u10001/site1.ru/cgi

chmod -R 0750 /var/www/u10001/site1.ru/log

3. Создаем виртуальный домен в Apache:

Читайте также:  Как перевести номер в тональный режим

Define root_domain site1.ru
Define root_path /var/www/u10001/site1.ru

ErrorLog $/log/apache/error_log
TransferLog $
/log/apache/access_log

php_admin_value upload_tmp_dir $/tmp
php_admin_value doc_root $

php_admin_value user_dir www
php_admin_value open_basedir /var/www/u10001:/usr/local/share/smarty:/usr/local/share/pear
php_admin_value session.save_path "0;0660;$
/tmp"
php_flag display_errors off

AssignUserID u10001 virtwww

* где site1.ru — сайт, для которого мы создаем площадку; /var/www/u10001/site1.ru — путь, где будут расположены файлы сайта; AssignUserID определяет, под какими учетными данными будет работать виртуальный домен.

4. Создаем виртуальный домен в nginx:

server <
listen 80;
server_name site1.ru www.site1.ru;
set $root_path /var/www/u10001/site1.ru/www;

gzip on;
gzip_disable "msie6";
gzip_min_length 1000;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;

access_log /home/www/u10001/site1.ru/log/nginx/access_log;
error_log /home/www/u10001/site1.ru/log/nginx/error_log;

location / <
proxy_pass http://127.0.0.1:8080/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>

* ^.+.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|js)$ <
root $root_path;
expires modified +1w;
>

error_page 500 502 503 504 /50x.html;
location = /50x.html <
root /usr/local/www/nginx-dist;
>
>

Проверяем правильность настроек nginx и httpd:

CentOs — выбрал, потому. что можно сказать пошла она мне (так и хочется сказать на встречу ;)), до нее пробовал юбунту , но как то очень туго, скорее всего знаний было мало и юбунта не виновата.

Итак будем ставить CentOs 6.6 тут можно скачать образы. Заморачиваться про i386 или х86_64 не будем, берем эту CentOS-6.7-x86_64-bin-DVD1to2.torrent если вы владеете torrent-ом иначе последовательно это CentOS-6.7-x86_64-bin-DVD1.iso и CentOS-6.7-x86_64-bin-DVD2.iso и режим на болванки Nero или чем вам сподручней.

Раз все готово , можно приступать (мы с вами осознаем, что делаем!) .В биосе установлено загрузка с CD или DVD, что у вас там.Комп включен, на экране информация о том, что загрузится не можем так как винт у нас чистый, если нет, то я бы рекомендовал жахнуть все разделы, но это на любителя. Вставляем DVD1 и жмем reset, CD-DVD начнет шуршать и мы увидим.

Можно нажать enter после чего увидим .

Тут нам предлагают потестировать образ, я обычно пропускаю, жмем Skip, комп подумает немного и выдаст этот экран.

Остается только Next.

Выбираем русский Next.

Я обычно выбираю Английская (международная) Далее.

У нас стандартные, поэтому Далее.

Тут "Да,удалить данные" Далее.

Придумываем имя компьютеру , у меня test и нажимаем "Настроить сеть" .

Выбираем наш адаптер и нажимаем "Изменить".

Выбираем вкладку "Параметры Ipv4" тут обязательно поставьте чекбокс на "Подключаться автоматически" , в том случае когда наш сервер за роутером и/или у нас есть настроенный DHCP можно оставить как есть, но мы собираемся использовать по взрослому наш сервер , поэтому выбираем профиль "Вручную" и нажимаем "Добавить" .

И заполняем параметры нашей сети (нужен не занятый IP из нашей сетки ): моя сетка за роутером 192.168.0.5-192.168.0.10 это в роутере прописано значит все что свыше 192.168.0.10 можно использовать и поэтому.

Маска сети 255.255.255.0

Шлюз — это IP нашего роутера и он 192.168.0.1 такой

Серверы DNS если с пониманием этого проблемы, то можно вбить 8.8.8.8 — это гугловский DNS круглосуточный 🙂

Домены поиска это как WORKGROUP в виндовс (название рабочей группы) можно ее записать

Теперь жмем "Применить" — "Закрыть" и Далее.

Выбираем часовой пояс Далее.

Тут очень важно , если комп смотрит напрямую в интернет, то лучше придумать сложный пароль, так как легкий взломают влет и надо будет снова переустанавливать сервер, если внутри сети, то все равно сложный, лучше к этому привыкнуть сразу (СЕРВЕР типа 🙂 ). Далее.

Я обычно выбираю "Все пространство" Далее.

Ну вот настал момент преобразить наш винт под CentOs при нажатии на "Сохранить изменения на диск" наш винт будет размечен и отформатирован.

Раз уж у нас сервер, то выбираем "Basic Server" Далее.

И ждем завершения установки .

Поздравляю, жмите Перезагрузка, комп перезагрузится и покажет вам это.

Вводим логин root и жмём enter , вводим наш сложный пароль 🙂 снова enter

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

Итак мы вошли и видим:

Last login: Wed Mar 4 23:31:43 2015
[root@test

Первое что надо сделать это выполнить команду yum update , что бы наш сервер обновился, подтянув все свежие пакеты. (Интернет у нас подключен)

Обновить 132 пакет(а,ов)

Объем загрузки: 211 M
Продолжить? [y/N]:

У вас может отличаться количество пакетов, это нормально.Нажмите Y и enter, сервер начнет обновлять пакеты.В процессе обновления будут задаваться вопросы про Importin GPG Key (или другие 🙂 а вдруг), жмите Y и enter, по окончании вы получите список пакетов и окончание Готово!

Теперь, так как это сервер и хоть мы и будем конфигурить его в основном в консоли,давайте поставим штуку под названием WEBMIN, он даст нам возможность увидеть в графическом веб виде (а не в консоли) содержимое нашего сервера, ну и возможность конфигурирования , так как в консоли мы еще того.

Выполним команду:(webmin требует perl ставится так yum install perl )

Читайте также:  В каком году появился майл ру

Для последних версий Webmin-a понпдобится еще установить это:

yum -y install perl-Net-SSLeay

cd /opt/

rpm -Uhv http://prdownloads.sourceforge.net/webadmin/webmin-1.760-1.noarch.rpm

Результат примерно следующий:

Загружается http://prdownloads.sourceforge.net/webadmin/webmin-1.760-1.noarch.rpm
предупреждение: /var/tmp/rpm-tmp.OfJgZA: Заголовок V3 DSA/SHA1 Signature, key ID 11f63c51: NOKEY
Подготовка. ########################################### [100%]
Operating system is CentOS Linux
1:webmin ########################################### [100%]
Webmin install complete. You can now login to http://test:10000/
as root with your root password.

Теперь с другого компьютера в браузере надо вбить строку http://192.168.0.11:10000 это IP нашего сервера и порт 10000 на котором висит Webmin, результатом скорее всего будет Время ожидания ответа от сервера 192.168.0.11 истекло, это потому что порт закрыт файерволом, давайте его откроем.

nano /etc/sysconfig/iptables

Увидим что то типа этого

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state —state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state —state NEW -m tcp -p tcp —dport 22 -j ACCEPT
-A INPUT -j REJECT —reject-with icmp-host-prohibited
-A FORWARD -j REJECT —reject-with icmp-host-prohibited
COMMIT

После строки -A INPUT -m state —state NEW -m tcp -p tcp —dport 22 -j ACCEPT

-A INPUT -m state —state NEW -m tcp -p tcp —dport 10000 -j ACCEPT

Должно получиться так

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state —state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state —state NEW -m tcp -p tcp —dport 22 -j ACCEPT

-A INPUT -m state —state NEW -m tcp -p tcp —dport 10000 -j ACCEPT
-A INPUT -j REJECT —reject-with icmp-host-prohibited
-A FORWARD -j REJECT —reject-with icmp-host-prohibited
COMMIT

Нажмем кнопки Ctrl+O , enter и Ctri+X выход

Теперь надо перезапустить фаервол выполним команду

service iptables restart

iptables: Цепочкам назначается политика ACCEPT: filter [ OK ]
iptables: Сбрасываются правила межсетевого экрана: [ OK ]
iptables: Выгружаются модули: [ OK ]
iptables: Применяются правила межсетевого экрана: [ OK ]

Еще надо отключить SELinux.

nano /etc/selinux/config

И заменим значение переменной на SELINUX=disabled, должно получиться так

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing — SELinux security policy is enforced.
# permissive — SELinux prints warnings instead of enforcing.
# disabled — No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted — Targeted processes are protected,
# mls — Multi Level Security protection.
SELINUXTYPE=targeted

Жмем Ctrl+O и Ctrl+X, в принципе не плохо бы ребутнуться (перезагрузить комп) , но мы это будем делать еще не раз в процессе настройки, так что продолжим.

Снова с другого компьютера в браузере надо ввести строку http://192.168.0.11:10000, на что теперь мы получим.

Вводим root и его пароль

Ну вот, поздравляю, работает, еще бы по русски, для этого идем (слева) Webmin — > Webmin Configuration — > Language , выбираем в "Display in language" наш родной язык с UTF-8 и жмем кнопку Change Language, дальше надо выйти из webmina и снова зайти и вуаля!

Теперь давайте хранилище настраивать, установим самбу:

В данном руководстве мы проведем установку операционной системы CentOS 7 на сервер поддерживающий 64bit архитектуру, так как дистрибутива под архитектуру 32bit разработчики не выпустили, по крайней мере я нигде не нашел.

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

CentOS — дистрибутив Linux, основанный на коммерческом Red Hat Enterprise Linux компании Red Hat и совместимый с ним. Red Hat Enterprise Linux состоит из свободного ПО с открытым кодом, но доступен в виде дисков с бинарными пакетами только для платных подписчиков. Как требуется в лицензии GPL и других, Red Hat предоставляет все исходные коды. Разработчики CentOS используют данный исходный код для создания окончательного продукта, очень близкого к Red Hat Enterprise Linux и доступного для скачивания.

Скачиваем CentOS 7 на официальном сайте для архитиктуры x64:
Скачиваем дистрибутив удобного для Вас размера по ссылкам:

Записываем на диск скачанный образ, который Вы скачали по одной из ссылок выше, либо найдя самостоятельно в интернете, но если подходит требование в установке минимальной конфигурации, тогда вполне достаточно скачать образ для CD диска. Загружаемся с диска и видим окно в котором кликнув на меню Install CentOS 7 и нажимаем Enter. Если Вам необходимо запустить проверку оперативной памяти либо запустится с винчестера кликаем на меню Troubleshhting и нажимаем Enter:

В открывшемся окне выбираем нужное Вам меню и нажимаем Enter:

Читайте также:  Как посмотреть ip адрес через командную строку

Запускается окно установщика системы:

Выбираем язык итерфейса установки Russian (Русский):

Если у Вас в сервере не используются специфические накопители, а используются стандартные винты, отмечаем иконку Локальные стандартные диски, кликаем в разделе Дополнительные параметрыЯ настрою разделы:

Открывается окно ручной разбивки винчестера:

Выбираем в выпадающем списке Обычный раздел, кликаем на кнопку Плюс, в открывшемся окне вводим:

  • Точка монтирования: /boot
  • Требуемый раздел: 500mb

Для добавления загрузочного раздела нажимаем кнопку Добавить точку монтирования:

Кликаем на новосозданный раздел /boot и справа в поле Файловая система в выпадающем списке выбираем ext4, для применения изменения кликаем на кнопку Обновить настройки, данную кнопку я забыл выделить на скриншотах ниже:

Теперь добавляем раздел подкачки swap, кликнув на кнопку Плюс в открывшемся окне добавляем новый раздел:

  • Точка монтирования: swap
  • Требуемый раздел: 2000mb

Для добавления раздела подкачки нажимаем кнопку Добавить точку монтирования:

Теперь добавляем корневой раздел /, кликнув на кнопку Плюс в открывшемся окне добавляем новый раздел:

  • Точка монтирования: /
  • Требуемый раздел: 20gb

Для добавления корневого раздела нажимаем кнопку Добавить точку монтирования:

Кликаем на новосозданный корневой раздел / и справа в поле Файловая система в выпадающем списке выбираем ext4, для применения изменения кликаем на кнопку Обновить настройки:

Теперь добавляем домашний раздел /home, кликнув на кнопку Плюс в открывшемся окне добавляем новый раздел:

  • Точка монтирования: /home
  • Требуемый раздел:

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

Разбивка винчестера закончена, на скриншоте ниже Вы можете увидеть как выглядит законченная разбивка диска:

На скриншоте выше Вы можете видеть не активную кнопку Начать установку, вот для активации кнопки нажимаем кнопку Готово в верхнем левом углу, после этого нажимаем кнопку Начать установку:

В открывшемся окне соглашаемся на разбивку винчестера и кликаем на кнопку Принять изменения:

В открывшемся окне инсталятора приступаем к настройке сети кликнув мышкой на кнопке СЕТЬ И ИМЯ УЗЛА:

В левом разделе открывшегося окна мы видим установленную в сервере сетевую карту, кликаем на неё и нажимаем кнопку Настроить:

В открывшемся окне можете изменить Название соединения: eth0, далее переходим в вкладку Параметры IPv4:

При выборе способа настройки в выпадающем списке выбирите нужный именно Вам способ в зависимости от подключения сервера, если у Вас есть в сети роутер либо шлюз который раздает автоматически IP, выбирайте Автоматический (DHCP):

Я ниже проведу настройку сети при выборе способа подключения Вручную, кликаем на кнопку Добавить:

Заполняем поля по примеру ниже:

  • Адрес: 192.168.1.12
  • Маска сети: 255.255.255.0
  • Шлюз: 192.168.1.250(мой роутер)
  • Серверы DNS: 192.168.1.250, 8.8.4.4
  • Поисковый домен: home.loc(можно не писать тут ничего)

Добавляем маршрут кликнув кнопку Маршруты.

В открывшемся окне нажимаем кнопку Добавить и заполняем нужный маршрут внутренней сети работающей на внутрисетевом шлюзе либо роутере, например внутридомовая сеть подключена к серверу 192.168.1.5, а сеть домовая находится в 172.0.0.0 подсети:

  • Адрес: 172.0.0.0
  • Маска сети: 255.0.0.0
  • Шлюз: 192.168.1.5

Для сохранения изменений нажимаем кнопку OK:

После настройки сетевой карты, необходимо включить её кликнув на кнопку в правом верхнем углу, она изначально бесцветная, для сохранения изменений нажимаем кнопку Готово:

Сетевая карта настроена, винчестер разбит, сервер готов к установке, кликаем мышкой кнопку Начать установку:

Установка системы на сервер запущена, в открывшемся окне нам осталось создать пароль суперпользователя root и добавить одного или нескольких простых пользователей, кликаем на кнопку ПАРОЛЬ ROOT:

В открывшемся окне вводим сложный пароль из 8 символов из латинского алфавита, цифр и очень рекомендую добавить хотя бы один из символов: #@_ Для применения изменений нажимаем кнопку Готово:

Нажимаем на кнопку добавления пользователя, в открывшемся окне добавляем имя пользователя, в моем случае serg и вводим пароль аналогично из 8 символов из латинского алфавита, цифр и очень рекомендую добавить хотя бы один из символов: #@_ Нажимаем кнопку Готово и наслаждаемся процессом установки сервера:

Процесс установки системы CentOS 7 на сервер:

После завершения установки установщик Вам предложит перезагрузить сервер, чтобы загрузится в установленную симтему CentOS 7 кликнув на кнопку Перезагрузить:

Процесс запуска операционной системы:

Операционная система загружена, вводим логин root нажимаем Enter, вводим пароль который создали ранее, он кстати не будет отображатся во время ввода:

Пробуем пинг на ya.ru для удостоверения, что все сеть работает.

В данной инструкции мы установили операционную систему CentOS 7 Linux, в руководстве вы можете изменять шаги разбивки винчестера и настройку сети как Вам удобно исходя из Ваших потребностей. Также настройку сети и добавления пользователя можно выполнить и после установки используя консоль.

Сделаем небольшой перерыв и посмотрим за экстремальным спуском с горы на велосипеде, дух захватывает:

Рейтинг статьи:

Вам понравилась статья? Хотите получать уведомления о выходе новых статей с этого сайта на свой почтовый адрес? Подписывайтесь пожалуйста. Введите свой почтовый адрес и нажмите кнопку Хочу получать статьи!

Ссылка на основную публикацию
Adblock detector