Контакты RSS 2.0

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

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

Аккаунт

Популярное:

Centos › Настройка сервера под задачи web хостинга на CENTOS 6
Настройка сервера под задачи web хостинга на CENTOS
Почему собственно мы остановились на операционной системе CENTOS? Ранее нас вполне устраивал сервер под web хостинг FreeBSD, но появилась серьёзная проблема. Я попытался установить сервер монетизации трафика Inclik, но не тут ту было. В заявленных технических требованиях был указан Zend Optimizer, либо его продолжение Zend Guard. Дело в том, что компания производящая Zend прекратила поддержку той части своих продуктов, которые работают с системой FreeBSD. В связи с тем, что проект FreeBSD бесплатный, а продукты компании Zend распространяются на коммерческой основе, коммерческой компании стало не выгодно поддерживать свои продукты, которые не приносят реальной прибыли. Досадная ситуация, для меня например, но ничего не поделаешь. А вот свои продукты для платных систем Linux Rad Hat например компания Zend продолжает поддерживать, так как системы Linux в основном являются платными. Но как известно CENTOS является бесплатным ответвлением REDHAT LINUX и эта одна из причин, в следствии которой система получила такую популярность. Проанализировав рынок предоставляемых услуг в части dedicated серверов западных хостинговых компаний и проконсультировавшись с технической поддержкой сервера контекстной рекламы Inclick выбор пал на Centos последний версии. Да и к тому же на ней вроде бы неплохо работает сервер IP телефонии ASTERIX со всеми своими приложениями.
Во первых получаем дистрибутив Centos последней версии с сайта поставщика, в нашем случае актуальна версия Centos 7 создаем установочный диск DVD.
Если для установки с сайта дистрибутивов была скачена версия для сетевой установки(netinstall), тогда нам потребуется в процессе установки ввести ссылку для установки системы, ссылка на устанавливаемую систему методом NetInstall изменилась CentOS 6. Используйте следующий URL-адресов для установки через NetInstall ISO
64 bit: http://mirror.centos.org/centos/7/os/x86_64/

По поводу оборудования следует учесть следующее. Имеет смысл использовать устоявшееся оборудование, так как разработчики операционной системы Centos не поспевают за производителями оборудования и поэтому если вы начнёте ставить Centos на недавно выпущенную материнку, есть вероятность что ваша система не будет поддерживать сетевую карту или вылезет еще какая-нибудь пакость. В моём случае так и произошло, пересобирать ядро не стал, просто решил использовать выдержанную материнку Intel вместо новой ASUS.
Также следует иметь в виду что установка Centos на уже существующую файловую систему FreeBSD например будет выдавать ошибку, что приведёт к невозможности её установки, так что перед установкой рекомендуется удалить все разделы с диска в моём случае разделы удалялись при помощи утилиты создания и удаления raid массива перед загрузкой биоса, просто собрал заново raid массив, чего и вам советую.
Основные сервисы работу которых нам предстоит реализовать
• Удалённый доступ к серверу SSH под именем локального пользователя, но не root (без права root)
• Поддержка утилиты webmin на определённом порту по защещённому соединению с собственным пользователем и паролем отличным от пароля root
• Web сервер Apachi +Php+Mysql
• Phpmyadmin
• Бесплатная панель управления виртуальным хостингом
• DNS сервер BIND
• Zend Guard, необходимое приложение для работы защищенных скриптов.
Загружаемся с DVD1
Выбираем пункт меню
Install or upgrade an existing system

Пропускаем предложенный тест накопителей и системы в целом, так как аппаратура тестировалась заранее в среде Windows, а тест занимает продолжительное время. Далее на предложение выбрать язык и раскладку выбираем соответствующий язык. В нашем случае сервер настраивается на англоязычные проекты, поэтому смена языка не требуется. Оставляем всё так как есть. Смена языка и раскладки может затруднить нам в дальнейшем удалённое управление сервером через SSH.
Выбираем стандартные накопители для настройки системы.
У меня при установке на этом этапе произошло следующее. Ранее, когда я в целях эксперимента устанавливал систему на компьютер с обычной материнкой проблем не возникало, но когда начал ставить систему на сервер, материнка которого имела расширенные возможности поддержки raid массива, но там был только один жесткий диск поэтому райд массив не использовался, появилась такая проблема. В начале установке выходило окно с предупреждением о том что был обнаружен raid, а затем когда доходило уже до разметки диска система выдвала вот такую ошибку
an unhandled exception has occurred. this is most likely a bug
и отключалась. Для устранения этого бага пришлось единственный жесткий диск подключить в Райд массив в Биосе. Тогда установка продолжилась без ошибок.
Далее требуется в параметрах IPV4 не только указать имя устанавливаемого сервера, но и настроить сетевые интерфейсы. Для этого нужно нажать кнопку в нижнем левом углу и ввести ip адрес сетевого интерфейса, маску подсети, шлюз по умолчанию, ДНС сервера, через запятую без пробелов. Желательно указать два адреса ДНС серверов провайдера. Обязательно установить галку/флажок стартовать выбранный интерфейс автоматически. При этом у нас после перезагрузки появится готовый хост с доступом в интернет для закачки и установки программ. Если у вас два сетевых интерфейса, то стоит указать данные и второго. Ставить галку/флажок для автоматического старта сетевого интерфейса имеет смысл только для реально активного интерфейса, если же подключение интерфейса к сети планируется позже и у него нет пока доступа к маршрутизатору сети Интернет ставить галку не стоит, так как его активация приведёт к значительному замедлению работы всей системы, к заблуждению сервера, сервер будет искать и делать запросы не по адресу, а оно Вам нужно?
Далее продолжаем установку сервера выбираем часовой пояс, в нашем случае это Лондон. Устанавливаем уникальный пароль root он понадобиться нам при первом входе в систему после перезагрузки и в дальнейшей работе.
Далее выполняем разметку диска. Используем под нашу систему всё отведённое нам пространство. Соглашаемся затереть диск и создать на нём разделы Centos.
По прошествии некоторого времени требуемого на форматирование диска выбираем программное обеспечение, которое хотим установить. Выбираем просто сервер, для наших задач это необходимо и этого достаточно. После установки пакетов извлекаем установочный диск и перегружаем сервер.
Заходим в систему под root и проверяем наш сетевой интерфейс, команда ifconfig. Если с интерфейсом всё в порядке и наш сетевой интерфейс активен, проверяем пингуются ли другие хосты в Интернете команда ping –c 3 yandex.ru например. Если всё нрмально, то мы можем подключаться к нашему серверу с удалённой консоли при помощи putty например. Заходим под рутом, вводим пароль. Вся дальнейшая настройка сервера может осуществляться с удалённой консоли.
Если установка велась с установочного диска с минимальной конфигурацией, что в принципе логично и вполне обосновано, не всегда есть возможность оперативно закачать полный установочный комплект centos из сети. Тогда у вас не заработает сетевой интерфейс , потребуется ввести команду
system-config-network

Если команда не была найдена в системе, тогда придётся установить
yum install system-config-network-tui 

Впрочем в любом случае стоит проверить настройку сетевых интерфейсов коммандой
ping -c 3 yandex.ru

если не работает, тогда коммандой
ifconfig
смотрим настройку сетевых интерфейсов, если неативны, поднимаем их коммандой
ifup
затем снова
ifconfig

В моём случае почему то не прописались адреса маски подсети в обоих интерфейсах, пришлось ввести позже после загрузки системы.
И настраиваем сетевой интерфейс в появившемся диалоговом окне. Во всяком случае будет полезно знать, что для настройки сетевых интерфейсов используются файлы расположенные в /etc/sysconfig/network-scripts/ например ifcfg-eth0 ну и так далее, там их несколько по количеству сетевых интерфейсов нашей системы + ещё один локальный их можно править в текстовом редакторе, если ничего другого не осталось. Особенно стоит это делать потому, что указанная команда ifup сработает только для текущего сеанса работы сервера и после перезагрузки сервера её возможно не удастся ввести ввиду отсутствия терминала, если сервер будет доступен только через сеть а вот эти самые сетевые интерфейсы не будут активны. Так что рекомендуем активировать сетевые интерфейсы при загрузке системы подправив для этого конфигурационные файлы в /etc/sysconfig/network-scripts/
Система Centos поставляется с включенным файерволом по умолчанию. Для того чтобы нам избежать в дальнейшем многочисленных досадных ситуаций с доступом к серверу, установленный по умолчанию файерволл желательно отключить. Комманда
system-config-firewall-tui
если не установлена в системе,
yum install system-config-firewall-tui

Далее убираем отметку включенного файервола и подтверждаем наш выбор. Далее после настройки всех сервисов можно вернуться к файерволлу и включить его пользуясь той же коммандой, потребуется сконфигурировать файрволл для подключения клиентов к установленным нами сервисам.
Для редактирования конфигурационных файлов и удобства перемещения по каталогам нашего сервера рекомендуется установить файловый менеджер, в нашем случае это Midnight Commander, введём команду
yum install mc

После загрузки и установки необходимых пакетов запустим Midnight Commander командой
mc

Отредактируем в редакторе mc сонфигурационный файл /etc/hosts
Введём следующую строчку, для примера
192.168.1.101   server1.example.com     server1

Вам потребуется подставить в неё ваши данные
Также из соображения упростить нашу систему отключаем SELinux - расширение безопасности CentOS, для этого в редакторе поправляем файл
/etc/selinux/config 

Изменяем параметр SELINUX на SELINUX=disabled
Перегружаем систему командой
reboot

либо можно поступить проще ввести комманду
setup Firewall Configuration
далее убираем галочку на закладке Firewall Enabled
Рекомендуется убедится, что в нашей системе работает комманда wget, в противном случае
yum install wget 

Импортируем ключи для пакетов с ПО комманда
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
cd /tmp
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
rpm -ivh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
wget ftp://mirror.switch.ch/pool/1/mirror/scientificlinux/6rolling/i386/os/Packages/epel-release-6-5.noarch.rpm
wget ftp://mirror.switch.ch/pool/1/mirror/scientificlinux/6rolling/i386/os/Packages/epel-release-6-5.noarch.rpm
rpm -ivh epel-release-6-5.noarch.rpm
yum install yum-priorities

С июля 2012 года произошли изменения в репозитариях epel, так что если у вас выдаёт следующую ошибку после загрузки репозитариев
cannot retrieve metalink for repository epel

Имеет смысл откорректировать конфигурационный файл репозитариев epel в ручную, в поле mirrorlist=https:// заменить на http://
, вообще на будущее полный список зеркал опубликован здесь http://rpm.pbone.net/index.php3/stat/4/idpl/17697319/dir/scientific_linux_6/com/epel-release-6-6.noarch.rpm.html
открыть в редакторе
/etc/yum.repos.d/epel.repo

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

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

Нам потребуются некоторые пакеты программ, необходимые в дальнейшем:
yum groupinstall 'Development Tools'


Далее устанавливаем Apache, MySQL, PhpMyAdmin
yum install ntp httpd mod_ssl mysql-server php php-mysql php-mbstring phpmyadmin

Признаюсь, что я думал, что по умолчанию программой для отправки почты в CentOS является Sendmail, но при желании для большей функциональности можно было бы установить сервер отправки почтовых сообщений Postfix. Но вот этот самый Postfix оказался уже установленным на моей системе, в списке процессов в webmin это отчётливо прослеживается.
Далее настроим автозапуск Apache и Mysql Server и стартанём их коммандами

chkconfig httpd on
chkconfig --levels 235 mysqld on
/etc/init.d/httpd start
/etc/init.d/mysqld start


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

Система предложит Вам создать суперпользователя с паролем, удалить пользователя по умолчанию и удалить тестовую базу данных, а также отключить удалённый доступ для суперпользователя к Mysql. Ставим вас в известность, что сервер Mysql требует тонкой детальной настройки, впрочем как и многие другие сервисы, и в его настройке есть определённые нюансы, рассмотрение подробностей настройки сервера mysql выходит за рамки этой статьи, подробности настройки сервера баз данных mysql узнаете здесь детальная настройка сервера mysql под задачи web хостинга
Для настройки Phpmyadmin нам потребуется изменить конфигурационный файл расположенный здесь /etc/httpd/conf.d/PhpMyAdmin.conf замените тег
Deny from All
на
Allow from All

Можно также внести соответствующий код в конфигурационный файл Apache httpd.conf
Alias /phpmyadmin/ "/var/www/phpmyadmin/"
<Directory /var/www/phpmyadmin>
Order allow,deny
Allow from all
</Directory>

при этом в каталоге /var/www/phpmyadmin должен размещаться скрипт phpMyAdmin
Для дальнейшей настройки нашего сервера на CentOS нам потребуется установить утилиту Webmin, для этого перейдём в каталог tmp и скачаем Webmin

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

Устанавливаем по комманде
rpm -Uvh webmin-1.610-1.noarch.rpm

Переходим в каталог webmin
cd /etc/webmin

Редактируем конфигурационный файл miniserv.conf - устанавливаем порт работы webmin, потребуется заменить стандартный 10000 на свой порт
добавляем webmin в автозагрузку и запускаем webmin коммандой

chkconfig webmin on servise webmin start 
/etc/webmin/start

иногда возникает следующая проблема с утилитой webmin - указываем адрес компьютера и имя порта на котором висит webmin в браузере, а браузер его так и не открывает. В таком случае помогает вот это, прописываем следующую строку маршрутизации на сервере
iptables -I INPUT 1 -p tcp --dport 18935 -j ACCEPT
где 18935 номер порта на котором висит webmin и всё срабатывает.
Нам следует обновить модули коммандой в webmin. После обновления все установленные модули появятся в меню webmin, оттуда нам ими можно будет управлять.
Теперь, когда нам стала доступна утилита webmin, следует ознакомится с конфигурацией системы, откроем для этого закладку system information. Просмотрите общие параметры процессоры, RAM объём доступной оперативной памяти, размер жёсткого диска выделенного для работы системы всё ли в порядке, в моём случае иногда оказывалось не всё, так жёсткий диск представлял из себя рейдовый диск из 558,43 Gb. Система распределили автоматом раздел следующим образом lv_home 500.63 GB, lv_root 50 GB и lv_swap 7.80 GB, в итоге в разделе lv_root 50 GB оказались виртуальные каталоги Apache, каталоги баз данных MySQL, ну и по незнанию я туда ещё логи сервера и архивы загнал. Ясно что такая система будет работоспособна только до поры до времени. Можно было бы конечно переразметить разделы, но для этого надо останавливать сервер, загружаться с внешнего устройства, размонтировать диски. Но есть способ проще решения подобной проблемы, для этого введём несколько команд, во первых очень важно создать физический каталог var
mkdir /home/var

Далее останавливаем работающие сервисы MySQL и Apache
/etc/init.d/mysqld stop
/etc/init.d/httpd stop

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

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

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

далее устанавливаем ссылку и запускаем сервисы
/etc/init.d/mysqld start
/etc/init.d/httpd start

Можно конечно воспользоваться командой меню F6 в Midnight Commandor, при этом каталог var будет реально перемещён в новое пространство, но в моём случае я воспользовался этой командой для сохранения каталоге в каталоге пользователя Centos.

Теперь каталог /var с основным большим объёмом данных будет храниться в новом месте в разделе большего объёма.

Предлагаем ознакомиться с подробным описанием настройки виртуальных хостов Создание и настройка виртуальных хостов Apache <- здесь.
В дальнейшем нам потребуются такие расширения Apache как Apache2 With mod_php, mod_fcgi/PHP5 и suPHP, установим всё одним разом

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

Однако не всегда все приложения устанавливаются одним разом. У меня например не установился корректно модуль php-mcrypt, а если точнее, то установка модуля в систему была произведена успешно, но вот подключение указанного модуля расширения при запуске Apache не производилось, а вместо этого выдавалась предупреждение
Unable to load dynamic library '/usr/lib64/php/modules/module.so'

Пришлось вручную исправлять содержимое файлов в каталоге /etc/php.d/*.ini в моём случае это mcrypt.ini и tidy.ini, после указанных исправлений присутствие указанных модулей стало возможно наблюдать при вызове функции в спец. файле, ещё раз замечу что для того чтобы указанная функция сработала в таком виде, потребуется включить поддержку коротких тегов в конфигурационном файле php.ini cледует добавить поддержку коротких тегов
short_open_tag = On

В моём случае также пришлось отключить параметр Output Buffering - перевести его в Off по техническому требованию одного из скриптов. После произведённых изменений перезапустить Apache коммандой
/etc/init.d/httpd restart

Замечу, что надо было бы установить следующий пакет php php-eaccelerator, но в моём случае установка этого пакета привело к аварийному завершению работы скрипта phpMyAdmin, пришлось долго искать проблему, проблема была в установке вышеуказанного пакета, что именно не так не разобрался до конца, пока исключил его из общего списка ошибка в логах была child pid 2186 exit signal Segmentation fault (11)
Если нам в последствии потребуется подключить какой-то дополнительный модуль для работы php, некоторые скрипты требуют различных модулей не включённых в стандартную поставку, то сделать это мы можем в любой момент коммандой
yum install php-bcmath
bcmath - в данном случае название подключаемого модуля и затем полный перезапуск Apache
 /etc/init.d/httpd restart

Установка Ioncube осуществляется по ссылке ioncube
подготовленный архив ioncube - ioncube лучше здесь взять
скачиваем подходящую нам версих х36 или х64 в каталог /tmp , открываем архив, копируем разархивированную папку в каталог /usr/lib/ , далее прописываем параматры запуска библиотеки ioncube в файл php.ini в секцию [Zend] в формате

[Zend]
zend_extension = /usr/local/ioncube/ioncube_loader_lin_5.3.so
zend_extension_ts = /usr/local/ioncube/ioncube_loader_lin_5.3_ts.so
zend_extension = /usr/local/lib/ZendGuardLoader.so
параметр ioncube_loader_lin_5.3.so обязательно должен буть первым иначе вылезет лажа и сервер не запустится если Вам необходим Zend, то он должен идти последним, тогда всё будет нормально.
В моём случае для сервера требуется установка дополнительного пакета ZendGuard, требование выдвинутое разработчиком софта - одного из скриптов работающих на сервере. Для установки выполним следующую комманду
cd /tmp
wget http://cubinfo.ru/myfiles/ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz
tar -xzf ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz

Далее требуется переместить полученный нами модуль в папку на сервере /usr/local/lib , затем нужно прописать в конфигурационном файле php.ini следующие строчки
[Zend]
zend_extension=/usr/local/lib/ZendGuardLoader.so

Затем перезапустить Apache коммандой /etc/init.d/httpd restart , но если уж не перезапуститься, тогда перезагрузите сервер коммандой reboot. В итоге должно появится упоминание об установленном Zend Guard Loader в скрипте выводящем информацию phpinfo();
Для ftp доступа используем Proftpd сервер он устанавливается из панели управления утилиты webmin, система сама его установит. Нам потребуется только создать пользователя для доступа по ftp, для создания пользователя также воспользуемся добавлением пользователя через webmin, установим соответствующий каталог в качестве домашнего каталога пользователя. В нашем случае это каталог виртуальных хостов Apache. Перезапустип ProFTPD через webmin. Пробуем подключиться к нашему ftp серверу по указанному ip адресу, имени пользователя и паролю. Пробуем загружать файлы на сервер. Добавим proftpd сервер в автозагрузку, для автоматического запуска при старте всей системы
chkconfig proftpd on

Проверим подключаются ли к серверу ftp вновь созданные ftp пользователи, если нет тогда проверим конфигурационный файл, находящийся /etc/proftpd.conf , мен пришлось закомментировать следующие две строчки
# Use pam to authenticate (default) and be authoritative
AuthPAMConfig			proftpd
AuthOrder			mod_auth_pam.c* mod_auth_unix.c

и пользователи начали подключаться, обратите на них внимание если что.
Установим BIND DNS сервер - Установка производится также при помощи панели управления утилиты webmin, система сама его установит. Однако нам потребуется установить переключатель в настройке конфигурации webmin так, чтобы файл pid открывался от корневого каталога, а не из папки bind, а также потребуется добавить Bind DNS сервер в автозагрузку, для того чтобы он автоматически запускался при старте системы
chkconfig named on
подробности настройки днс сервера bind смотрим здесь настройка днс сервера под задачи хостинга сайтов
Мне понадобилось установить утилиту sphinx для работы моих сервисов. Для этого
yum install sphinx

Как запускать и настраивать утилиту sphinx описано здесь sphinx
Также мне понадобились дополнительнно утилита ftpput для передачи сохраняемых архивов через ftp на другой компьютер. Итак Устанавливается коммандой
yum install -y ncftp

Также по умолчанию в устанавливаемой мной системе не оказалось предустановленного планировщика заданий cron , пришлось устанавливать его коммандой вручную
yum install -y vixie-cron

/etc/init.d/crond restart

chkconfig crond on


Потребуется также отключить SSH доступ пользователю root - это мы сделаем из панели webmin, а заходить будем под логином пользователя созданного ранее для ftp соединения. Этот пользователь должен быть включённым в группу wheel.
После того как получете работоспособную систему, обязательно следует ввести в работу систему создания архивных копий. Описание системы резервного копирования можете прочитать здесь система создания резервной копии информации сервераскачать dle 10.3фильмы бесплатно
Добавил: admin › 25-05-2012, 17:39
› 0 комментария › печатькатегория
Другие новости по теме
  • Мониторинг серверов, серверов баз данных на работоспособность
  • Описание системы резервного копирования веб сайтов и баз данных mysql в системе FreeBSD
  • Настройка web сервера на FreeBSD
  • Установка утилиты sphinx FreeBSD
  • Установка - Настройка панели управления хостингом syscp

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