Контакты RSS 2.0

Разделы Сайта:

Кубтеле - о компании
Инструменты SEO
FreeBSD
Администрирование
Centos администрирование
Windows администрирование
Программирование для web

Аккаунт

Популярное:

Centos › Установка серверной Centos 7 для задач web хостинга
Итак известно что вышла новая версия Centos 7.0, включающая в себя существенные изменения представленные разработчиками. Но проблема в том, что когда я попытался поставить её на сервер тем же путём что и ставил предыдущие версии, в частности редакции 6 у меня это не получилось. Как я понял дело в существенных отличиях от предыдущей версии, в чём же они заключаются? Во первых стоит обратить внимание на заранее объявленные опубликованные отличии, начнём с их обзора:

1. Вместо утилиты iptables появился полноценный файерволл и мне приходилось пробивать в нём порты для работы моих сетевых служб, пока не понятно можно ли и нужно ли его отключать при загрузке. Пробиваем нужный нам порт командой
firewall-cmd –-add-port=80/tcp

перезапуск не обязателен оно и так применится на момент добавления, но на всякий случай
firewall-cmd -reload

команда для отключения файервола
systemctl mask firewalld

команда для остановки файервола
systemctl stop firewalld



2. Для автоматического старта сервиса при загрузке сервера использовалась команда
chkconfig httpd on

теперь вместо неё команда
systemctl enable httpd.service


Привожу на всякий случай примеры команды systemctl

systemctl stop httpd.service  -  Остановка службы
systemctl start httpd.service - Запуск службы	
systemctl reload httpd.service - Перегрузить файл конфигурации	
systemctl restart httpd.service - Перезапуск службы	
systemctl try-restart httpd.service - Перезапуск службы, если она уже запущена	
systemctl status httpd.service - Проверка статуса службы	
systemctl enable httpd.service - Добавить в автозапуск	
systemctl disable httpd.service - Исключить из автозапуска	
systemctl is-enabled httpd.service - Проверка присутствия в автозапуске	
systemctl list-unit-files --type=service - Вывести список служб


3. При установке надо обратить внимание на определение сетевых интерфейсов, система не предупреждает, что сеть отсутствует, надо вручную их активировать, чтобы потом без связи не остаться.
4. Изменилась вместо MYSQL стало MariaDB со всеми вытекающими отсюда последствиями.

Первоначальная, пошаговая установку сервера при установке Centos 7.0:
1. Перед началом установки стоит обратить внимание на BIOS сервера, позаботьтесь заранее чтобы при отключении питания сервер поднимался без посторонней помощи. Укажите устройство для первоначальной загрузки, обычно это привод DVD или CD.
2. Настройте RAID или постарайтесь зазеркалить жесткие диски, чтобы не делать этого потом программным способом, аппаратный RAID всё же предпочтительней будет.
3. Произведите первоначальную загрузку с диска поставщика, обычно это дистрибутив Centos на CD диске в минимальной конфигурации, следует закачать его заранее.
4. При установке произведите разметку диска на который будете устанавливать Centos, подойдёт автоматическая разметка предлагаемая разработчиками по умолчанию.
5. Активируйте сетевые интерфейсы, система покажет автоматически присвоенные ip адреса DHCP или укажите свои вручную, главное чтобы вы их запомнили, после перезагрузки они примут те же значения.
6. Укажите и запишите пароль суперпользователя и непривелигерованного пользователя. Следует иметь в виду что авторизацию в SSh следует производить от имени непривелигированного пользователя, а затем расширить свои права для управления сервером от имени администратора.
7. По мере установки пакетов минимальной конфигурации перегрузите сервер и извлеките установочный компакт диск.

Детальная настройка сервера на базе Centos 7.0
Авторизуемся на сервере под суперпользователем и попадаем в командную строку или пользуемся SSH для удалённого подключения к серверу по известному нам ip адресу, в этом случае пользуемся аккаунтом неприверегилированного пользователя указанного при установке, затем командой su получаем права суперпользователя для выполнения основных команд на сервере.
1. Проверяем есть ли связь у нашего сервера с внешним миром командой ping –c 3 yandex.ru, связь нам понадобиться для установки пакетов и обновления системы на этапе установки.

2. Если Яндекс пингуется устанавливаем утилиту MC – Meednight Commander очень полезная утилита, прекрасная альтернатива командной строке с текстовым редактором. Командой
yum install mc –y 


3. Если ввести команду
df -h

то мы увидим информацию о распределении ресурсов нашего диска, рекомендуется её записать, у меня система распределили автоматом раздел следующим образом lv_home 500.63 GB, lv_root 50 GB и lv_swap 7.80 GB, в итоге получается так что в раздел lv_root 50 GB оказажутся виртуальные каталоги Apache, каталоги баз данных MySQL, ну и возможно даже логи сервера и какие-нибудь архивы. Ясно что такая система будет работоспособна только до поры до времени, её переполнение вопрос времени, так как вы не используете основных ресурсов вашеих дисков. Можно было бы конечно переразметить разделы, но для этого надо останавливать сервер, загружаться с внешнего устройства, размонтировать диски. Но есть способ проще решения подобной проблемы, для этого введём несколько команд, во первых нужно создать каталог var в каталоге home, создадим командой
mkdir /home/var

далее следующей командой копируем всё содержимое каталога /var в /home/var
cp -pr /var/* /home/var

копирование может занять некоторое время, так что наберитесь терпения, после успешного копирования и предварительной проверки результатов копирования, содержимого каталога var очень осторожно вводим команду удаления каталога var расположенного в корневом разделе
rm -rf /var

затем создадим ссылку на перемещённый каталог var в home
ln -s /home/var /var

и снова просмотрим на результаты выполнения команды
df -h
сравним значения с предыдущими. Удалите осколки этой операции файлы !lock и !run, иначе yum не сработает.
Таким образом мы избежали переполнения диска нашего сервера.

4. отключаем SELinux - расширение безопасности CentOS, для этого в редакторе поправляем файл /etc/selinux/config . Изменяем параметр SELINUX на SELINUX=disabled . Перегружаем систему командой reboot для применения изменений.

5. Устанавливаем утилиту wget для закачки файлов установки
yum install wget


6. Установка репозитария rpmforge
cd /tmp
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
rpm -ivh rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm


7. Надо установить) и активировать репозиторий EPEL в CentOS/RHEL. PEL - (Extra Packages for Enterprise Linux) - это основанный сообществом открытый и бесплатный проект репозитория, предоставляемый командой Fedora, который содержит высококачественные пакеты дополнительного программного обеспечения для Linux дистрибутивов
EPEL нужен для
• Предоставляет множество программ с открытым кодом для установки через Yum;
• 100% открытый исходный код и бесплатное использование;
• Не содержит пакетов, конфликтующих с базовыми пакетами ядра;
• Нет проблем с совместимостью;
• Пакеты из EPEL чаще обновляются.


wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
rpm -ivh epel-release-7-5.noarch.rpm

простите но время от времени репозитарии меняются, проверять здесь http://dl.fedoraproject.org/pub/epel/7/x86_64/e/ новый вот этот epel-release-7-6.noarch.rpm и команда будет другой

wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-6.noarch.rpm
rpm -ivh epel-release-7-6.noarch.rpm


Проверка Установки EPEL
По умолчанию EPEL включается автоматически и его конфиг хранится в директории /etc/yum.repos.d/ в файле epel.repo.
Найдите EPEL в списке репозиториев yum.
yum repolist | grep "^epel\|repo id"


Пример вывода :
repo id     repo name                                           status
epel        Extra Packages for Enterprise Linux 6 - x86_64      8,447


Удаление EPEL Репозитория
Найдите EPEL в списке установленных пакетов с помощью команды 'rpm -qa'.
rpm -qa | grep epel

Удалите найденный пакет, используя команду 'rpm -e', например :
rpm -e epel-release-6-8.noarch


Далее следует открыть в редакторе mc файл /etc/yum.repos.d/epel.repo добавить строку
priority=10

в [epel] раздел в следующей строке, после enabled=1

Во избежание досадной ситуации, когда выдаётся следующее сообщение "Delta RPMs disabled because /usr/bin/applydeltarpm not installed" при установке пакетов, следует выполнить команду
yum provides '*/applydeltarpm'
yum install deltarpm


Далее обновляем пакеты команда
yum update


Отключаем фаерволл командой
systemctl mask firewalld


Вы обязательно удивитесь, когда в Centos 7 по умолчанию многих хорошо знакомых сетевых команд вы не найдёте, таких как ifconfig, ifup и других, которые очень нужны, для того чтобы они появились в вашей системе рекомендуем ставить пакет net-tools.x86_64
yum install net-tools.x86_64 -y


При установке утилиты webmin вам потребуется perl, установить его можно командой
yum -y install perl perl-Net-SSLeay openssl perl-IO-Tty 


Скачиваем и устанавливаем webmin командами


cd /tmp
wget http://www.webmin.com/download/rpm/webmin-current.rpm
rpm -Uvh webmin-current.rpm


Теперь имеет смысл зайти в каталог webmin
cd /etc/webmin

и прописать в конфигурационном файле miniserv.conf нестандартные порты доступа к webmin через web интерфейс

Перезапустите сервер командой reboot так как много чего было сделано, особенно надо применить изменения в файерволле и Selinux

После загрузки сервера зайдите в панель управления Webmin, для начала рекомендуется выбрать язык панели управления, кодировку и тему, подойдёт Blue Framed Theme, utf8 и выберите русский язык.

Как показывает практика причина того что ваш сервер тормозит, а именно медленно 2-3 минуты открывается Meednight Commander, да и тот же Webmin в настройках вашей сети, а именно в маршрутизации, по сути система долго ожидает ответа на свои запросы отправленные в космос, требуется удалить несуществующие маршруты в активной конфигурации, поэтому первым делом её надо настроить и Webmin нам в этом поможет.

Очень удобно настраивать сетевую конфигурацию вашего сервера при помощи утилиты Webmin, для этого зайдите в раздел Настройка сети и для каждого сетевого интерфейса пропишите статичные ip адреса, маски под. сети, одному главному интерфейсу следует указать маршрутизатор для общения с внешним миром через Интернет, в моём случае это адрес DSL модема. Также следует прописать DNS сервера вашего провайдера вашему серверу. Также следует указать адреса узлов в моём случае они выглядят вот так
  127.0.0.1 localhost , localhost.localdomain , localhost4 , localhost4.localdomain4 
  ::1 localhost , localhost.localdomain , localhost6 , localhost6.localdomain6 
  192.168.1.79 irr.com , irr 
  192.168.1.79 irr.com. 
  192.168.1.79 irr.ru 


Следовало бы установить серверное время во избежание возможных недоразумений в дальнейшем, сделать это лучше при помощи соответствующего раздела утилиты Webmin, однако она её не установит потому что потребует установки ntpdate, введём соответствующую команду в командной строке
yum install ntpdate -y


после удачной установки ntpdate укажем имя сервера синхронизации временив интернете, в моём случае это time.nist.gov

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

yum groupinstall 'Development Tools'


Выполнив следующую команду, установим web сервер Apache
yum install httpd


Добавляем Apache в автозагрузку
systemctl enable httpd.service


Стартуем web сервер Apache командой
systemctl start httpd.service


Проверить конфигурационный файл Apache можно ккомандой
apachectl configtest


Остановить сервис Apache в CentOS/RHEL v7.x
systemctl stop httpd.service


Перезапустить сервис Apache в CentOS/RHEL v7.x командой
systemctl restart httpd.service


Для того чтобы проверить запущен ли web сервер Apache в вашей системе введите команду:
systemctl is-active httpd.service


Легкий перезапуск сервера Apache в CentOS/RHEL v7.x
apachectl graceful


Проверка конфигурационного файла httpd/Apache на ошибки в CentOS/RHEL v7.x
apachectl configtest


Предлагаем MariaDB YUM репозитарий для установки в CentOS. Предлагаем скопировать это в файл, расположенный в каталоге /etc/yum.repos.d/ (предположительное имя файла может быть MariaDB.repo или похожее на него).
MariaDB 10.0 CentOS repository list - created 2014-09-24 11:18 UTC
http://mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.0/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

После того как файл будет размещён, установите MariaDB командой:
yum install mariadb-server mariadb

Добавим в автозагрузку
systemctl enable mariadb.service

Стартанём командой
systemctl start mariadb.service


Для дальнейшего администрирования сервера баз данных Mariadb нам потребуется установить на него пароль суперпользователя, для этого введём комманду
/usr/bin/mysql_secure_installation


Проверить работу сервера можно командой
mysql -u root -p


Проверить активность Mariadb сервера в вашей системе можно командой
systemctl is-active mariadb.service


Настал момент для установки модулей и расширений Apache php и всего что с ним связано, выполним команду которая всё и установит
yum install mod_ssl php php-mysql php-mbstring php-pear phpmyadmin


Изменения в конфигурации Apache будут применены, когда вы выполните команду
systemctl restart httpd.service


Однако настройка Apache ещё не закончена, конфигурационные файлы с дефолтными настройками под задачи web хостинга не подойдут, разве что для простейших html сайтов, перед нами же стоят серьёзные задачи и нам потребуется тонкая настройка конфигурации web сервера Apache. Во первых главный конфигурационный файл Apache находится в каталоге /etc/httpd/conf и называется он httpd.conf в нём прописываются основные директивы Apache и подключаются остальные конфигурационные файлы в том числе файлы виртуальных хостов Apache. Содержимое этих файлов является нашей интеллектуальной собственностью, поэтому мы не будем их здесь выкладывать в рамках этой статьи, однако следует иметь в виду что необходимо иметь собственные файлы рабочей конфигурации Apache для различного применения. Заметим однако что то что ранее размещалось в едином файле конфигурации Apache httpd.conf сейчас было разнесено по разным конфигурационным файлам, находящимся в специальном каталоге конфигурационных файлов Apache. Эти файлы удобно редактировать при помощи утилиты Webmin. Конечно стоит занести в отдельный файл конфигурации виртуальных хостов и в дальнейшем изменять только его не касаясь основной конфигурации web сервера.

Проверку внесённых изменений можно легко проверить создав в основном виртуальном каталоге один единственный файл index.php , затем придётся прописать в нём следующую строчку
<?php phpinfo ?>
и открыть в браузере ссылку с ип адресом настраиваемого вами сервера, должен окрыться файл конфигурации вашего сервера со всеми установленными приложениями.

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

В нашем случае нам потребовались такие расширения Apache как Apache2 With mod_php, mod_fcgi/PHP5 и suPHP, установка производится в два этапа следующими командами

yum install php php-devel php-gd php-imap php-ldap php-odbc php-xml php-xmlrpc php-snmp php-soap php-tidy php-mssql 
yum install php-mcrypt curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel mod_fcgid php-cli httpd-devel


Далее нам потребуется тестировать сервер на серьёзных задачах, так нам потребуется загрузить в основной виртуальный каталог какой-нибудь серьёзный сайт, использующий большинство возможностей сервера, чтобы отладить на нём все тонкости перед запуском в рабочий режим, это должен быть сайт который потом может остаться работать на этом сервере либо сайт задействующий большинство приложений сервера. Для загрузки сайта на сервер нам потребуется установить FTP сервер Proftpd. Установкупроизведём при помощи утилиты Webmin, для этого зайдём в раздел Неустановленные модули, найдём там Сервер Proftp и выполним его установку. Либо установим его командой
yum install proftpd


Добавим Proftpd в автозагрузку
systemctl enable proftpd.service


Обновление бага Webmin с версии 1.700 на версию 1.701
При создании пользователя утилитой webmin вышел известный баг webmin, для его исправления пришлось поставить последнюю версию webmin с исправлениями, не вошедшую в репозитарии, так как она бета. WEbmin обновляется средствами webmin, для этого достаточно пройти в раздел Webmin->обновление Webmin и выполнить обновление с полученного файла, для того там есть все возможности.

По факту загрузки сайта выясняется, что не всё так просто, например php не поддерживает короткие теги "", а ожидает записей в полной форме "" , да и многое другое значит надо править php.ini находится он в /etc/ конечно лучше иметь заранее заготовленный рабочий шаблон без лишних комментариев, в котором всё по существу, но если его нет придётся повозиться.

Потребуется изменить дефолтные настройки MariaDB как я понял он расчитан на английский язык и поэтому на русском вылезают кракозябры, перед изменением кодировки, а в php.ini мы уже включили поддержку русскоязычных символов default_charset = "cp1251" по крайней мере я надеюсь, нам стоит заменить дефолтный my.cnf в /etc/ на находящийся в каталоге /usr/share/MySQL/ my-huge.cnf , перемениуем его в my.cnf и добавим в него всего три строчки,
в раздел [client], после строки:
port=3306
добавить
character-sets-dir="/usr/share/mysql/charsets" 


в раздел [mysqld], после строки:
port=3306
добавим
character-sets-dir="/usr/share/mysql/charsets"
init-connect="SET NAMES cp1251" 


Подробности тонкой настройки MariaDb описаны здесь Настройка сервера Mysql

Теперь перейдём к настройке сервера BIND в Webmin в неиспользуемых модулях найдём DNS сервер Bind и установим его. Либо установим его командой
yum install bind


Добавим BIND в автозагрузку
systemctl enable named.service

Bind требует дополнительной тонкой настройки, особенно если вы переносите на него уже прописанные ранее зоны, не прописывать же их заново вручную, как бы то ни было подробности тонкой настройки Bind описаны здесь . Неплохо было бы перенести конфигурационный файл и файлы зон с уже работающего сервере, чтобы заново всё не настраивать, неплохо иметь уже готовую рабочую конфигурацию для настройки DNS сервера Bind. Рабочий каталог Named расположен /var/named там все его зоны хранятся , ещё в конфигурационном файле упоминаются.

Для передачи файлов на другие сервера нам понадобиться утилита ftpput, установим её командой
yum install -y ncftp


Для некоторых проектов нам понадобиться утилита sphinx, установим её командой
yum install sphinx


Утилита Sphinx может запускаться командой по крону
searchd --config /etc/sphinx/sphinx.conf

где sphinx.conf конфигурационный файл управляющий работой указанной утилиты, по данному пути он создаётся установщиком утилиты, однако вам понадобиться свой файл настроенный под вашу базу данных и ваши задачи , далее вам придётся время от времени создавать файл индексов можно по крону командой
indexer --config /etc/sphinx/sphinx.conf --all
на время индексации придётся останавливать сервер командой
searchd --config /etc/sphinx/sphinx.conf --stop

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

После того как мы пропишем на сервере виртуальные каталоги и загрузим в них рабочие проекты, выясниться что некоторые скрипты требуют установки дополнительных модулей Ioncube например, если что скачать архив можно здесь, ставить можно например в каталог /usr/local/ioncube , после того как скопируете файлы архива в указанный каталог, потребуется прописать в самом конце файла php.ini следующие строчки

[Zend]
zend_extension = /usr/local/ioncube/ioncube_loader_lin_5.4.so
zend_extension_ts = /usr/local/ioncube/ioncube_loader_lin_5.4_ts.so


эти строчки вполне соответствуют версии php установленному на настраевом сервере, после того как вы это сделали потребуется перезапустить web сервер Apache командой systemctl restart httpd.service и проверить содержимое файла логов Apache нормально ли произошёл перезапуск, нет ли сообщений об ошибках в работе модуля ioncube. Также можно проверить действие на каком-нибудь сайте, нормально ли открывается сайт использующий этот модуль. Ещё появится соответствующая запись в файле с выводом , а вообще официальный поставщик ioncube находится вот по этой ссылке http://www.ioncube.com/loaders.php



Это было повествование о хорошем, а теперь о плохом. Начал я было поднимать второй сервер по той же схеме, а не тут то было. Система изначально не определяла дополнительных сетевых карт в PCI слотах, пробовал D-link dfe-520 tx , выполнил команду для установки проверочных утилит
yum install pciutils

проверил утилитой шину PCI
lspci -k |grep -i -A 2 Ethernet

ответ такой, что интегрированные intel и marvell определились, а D-link, кстати он оказался вовсе не D-Link, а VIA Rhine III не пошло, не пошло также ни TPlink ни 3Com, походу разработчики ядра не удосужились включить поддержку этих карт в систему, однако эти карты прекрасно определяются на Centoc 6-ой редакции, ничего внятного не отвечают и производители оборудования предлагают перекампилировать ядро, но и у них драйвера для последнего ядра не предоставляются, только для предыдущих, то есть для 6-ой версии.
ifconfig -a | grep eth 

Хотя эксперимента ради я попробовал начало установки Centos предыдущей редакции 6 карты установленные в слоты PCI определились, возможно это не совсем объективная причина, использовать устаревшую версию CentOS, однако когда я снял сетевую карту Realtek RTL-8139, установленную на другую машину ранее в устанавливаемом сервере она определилась. Как следствие придётся подбирать соответствующее сетевое оборудование определяемое при начале установки системы, либо придётся устанавливать проверенное оборудование позже на уже настроенный сервер.

nmtui

Если же вы добавили сетевую карту в уже установленную систему, придётся воспользоваться утилитой nmtui, которая по моему входит в состав net-tools и была установлена ранее вместе с пакетом. Добавьте новый интерфейс, укажите правильно номер устройства и нажмите добавить. Утилита создаст соответствующий конфигурационный файл в каталог /etc/sysconfig/networkscripts, в дальнейшем сможете отредактировать из webmin тонкие настройки вашего нового сетевого интерфейса.

После долгого простоя одного из серверов попытался установить все вышедшие за время его простоя обновления при помощи утилиты webmin, обновления усановились однако после перезагрузки сервер перестал нормально загружаться , приходилось в меню загрузка выбирать вторую и последующую строчки, так как загрузка из первой строки не шла. Первая строка содержала следующие параметры :
Linux 3.10.0-123.13.1.el7.x86_64 on x86_64

вторая и последующие строки вот эти параметры:
Linux 3.10.0-123.el7.x86_64 on x86_64

после внесения изменений в файл загрузки, который находится по адресу:
/boot/grub2/grub.cfg

в файле пришлось закоментировать первый пункт, касающийся загрузки. Сервер начал загружаться автоматически со второго пунктаскачать dle 10.3фильмы бесплатно
Добавил: admin › 25-09-2014, 12:14
› 0 комментария › печатькатегория
Другие новости по теме
  • Решение проблемы с сервером Postfix на Centos
  • Установка панели управлением хостингом Syscp на CentOS 6.4
  • Настройка системы CentOS 6.4 x86_64 для виртуального хостинга Apache2, Dovecot, с установкой панели ISPConfig 3
  • Установка системы учёта статистики Awstats на Centos
  • Настройка сервера под задачи web хостинга на CENTOS 6

  • Кубтеле 350000, Россия, Краснодарский край, , город Краснодар,улица Айвазовского, д. 94, корп. А
    Продвижение сайтов,Регистрация доменов,Компьютерная системная интеграция
    8(861) 299-02-62, +7(903) 449-666-8