Настройка сервера для хостинга
Как настроить VPS сервер на Linux Debian для хостинга сайта
Не устраивают возможности виртуального хостинга? Развивающийся веб-проект требует больше ресурсов? Оптимальное решение для молодых, но весьма перспективных сайтов, набирающих популярность в сети – переход с обычного хостинга на VPS.
VPS/VDS (англ. Virtual Private/Dedicated Server) – виртуальный сервер. Как правило, в рамках подобной услуги в распоряжение клиент получает часть аппаратных ресурсов физического сервера (конфигурация и производительность зависит от выбранного тарифа). Это качественный скачок в развитии онлайн ресурса.
VPS/VDS хостинг сочетает гибкую настройку выделенного сервера. Отдельный IP-адрес, порты, возможность самостоятельно выбирать программное обеспечение, средства разработки. Все это предоставляется по доступной цене, немногим большей, чем стоимость виртуального хостинга.
Однако, аренда виртуального сервера – это и самостоятельная настройка, и оптимизация программного обеспечения. Не стоит пугаться, не так страшен черт, как его малюют. В этой статье вы узнаете, как правильно установить нужное ПО и обеспечить стабильную работу веб-сервера. Все настройки приведены для платформы Linux Debian — одной из самых надежных операционных систем, способной обеспечивать высокую производительность при минимальном потреблении ресурсов.
Оптимальная конфигурация VPS сервера для сайта
Основная проблема виртуальных хостингов заключается в том, что на одном физическом сервере может располагаться сразу до 50-100 сайтов. Расчет делается на то, пользователи посещают веб-сайты в разное время, и нагрузка равномерно распределяется на протяжении дня. Теоретический каждый сайт должен успешно справляться с несколькими тысячами пользователей в день, однако, достаточно часто на практике дела обстоят иначе.
Популярные ресурсы занимают оперативную память, а некоторые веб-приложения могут отобрать существенную часть вычислительных ресурсов, в результате существенно увеличивается время загрузки малоактивных проектов. Когда же наступает час-пик, сервер попросту не справляется с резко возросшей нагрузкой и, в лучшем случае, большинство, а в худшем – все сайты и веб-приложения, расположенные на данном сервере, оказываются недоступны.
Аренда виртуального сервера решает данную проблему. Вы получаете часть ресурсов оборудования, на которые не может претендовать никто кроме вас, а значит даже в час пик сайт будет стабильно работать, а во время простоя оперативную память или процессорное время не займет другое приложение. Но какую конфигурацию выбрать?
Небольшой развивающийся проект
Если вы переходите с виртуального хостинга или только запускает проект, к которому выдвигаются высокие требования в плане надежности, достаточно минимальных характеристик:
- 512 Мб оперативной памяти;
- 5 — 10 Гб свободного дискового пространства;
- 1,5 — 2 ГГц вычислительной мощности.
Ресурсов достаточно для эффективной обработки до 10 000 пользователей в сутки. Впрочем, при грамотной оптимизации многим вебмастерам удается добиться результата в 20-25 тысяч посетителей. В дальнейшем с ростом числа пользователей можно перейти на более дорогой тариф, существенно расширив возможности системы.
Активно развивающийся портал, форум, небольшой интернет-магазин
- 1-2 Гб оперативной памяти;
- 20 — 30 Гб HDD; — 2 ядра по 2
- 25 ГГц.
Решение для популярных сайтов, новостных порталов, блогов с количеством посетителей до 20-30 тысяч пользователей в сутки.
Успешный сайт, небольшой игровой сервер (Minecraft, Mu, Lineage и др.)
- от 4 Гб RAM;
- 30-50 ГБ HDD;
- 2-3 ядра по 3 – 3,5 ГГц.
Оптимальное решение для успешных веб-проектов с количеством посетителей, достигшим 50 тысяч пользователей. Аппаратной части достаточно для обработки мультимедиа контента, создания серверов для онлайн-игр.
Характеристики приведены для дистрибутивов Linux Ubuntu и Debian. Они отличаются стабильной работой, обеспечивают высокую производительность при минимальном потреблении ресурсов.
Подключение к серверу по SSH
Для подключения к VPS-серверу используется протокол SSH. Это защищенный протокол (Secure Shell – защищенная оболочка), предназначенный для удаленного управления операционной системой, программным обеспечением и передачи файлов. SSH использует надежные алгоритмы шифрования данных, обеспечивая безопасное соединения с сервером.
Для работы протокола SSH необходим сервер, устанавливаемый на управляемой машине, и клиент. Управление VPS/VDS сервером осуществляется посредством командной строки.
Существует достаточно много клиентских программ для различных операционных систем. Самые простые, надежные и популярные: Bitvise SSH Client и PuTTY. На примере последней мы и разъясним процесс подключения.
Для начала нужно скачать на свой компьютер клиент (в нашем случае PuTTY). Русскоязычная версия доступна здесь. Приложение имеет приблизительно такой вид:
В соответствующем поле («Host Name» или «Имя хоста») вводим предоставленный IP-адрес виртуального сервера, устанавливаем переключатель «connection type» возле SSH, «PORT» оставляем 22, «Saved Sessions» — произвольное название сессии. Теперь нужно нажать внизу окна кнопку «OPEN» (или «Соединиться»).
Открывается консоль, напоминающая командную строку Windows. Система просит ввести логин, по умолчанию – root.
Обратите внимание! Root – это суперпользователь с наивысшими правами доступа в Linux, аналог администратора в Windows. В дальнейшем для каждого сайта можно создать отдельного пользователя с ограниченными правами.
Теперь вводим пароль (можно вставить заранее скопированный (в PuTTY – щелчок правой кнопкой мыши), нажимаем Enter .
В целях безопасности, создаем нового пользователя с ограниченными правами, с которым и будем работать дальше. Для этого вводим команду:
Где polzovatel – имя, которое можно задать произвольно.
В открывшемся диалоге вводим новый пароль, чем сложнее, тем лучше, главное, чтобы вы его не забыли. По желанию можно ввести дополнительную информацию о пользователе, заполнив соответствующие поля.
Теперь нужно разрешить новому пользователю выполнять команды с правами суперпользователя с помощью утилиты sudo , однако, сначала данную утилиту необходимо установить.
Обратите внимание! sudo – утилита, позволяющая обычному пользователю заниматься администрированием системы с правами суперпользователя (root). Вводится sudo в начале команды.
Установка любого программного обеспечения в Linux-операционных системах начинается с обновления индекса пакетов. В процессе обновления индекса пакетов ваша операционная система связывается с репозиторием (хранилищем большинства программного обеспечения для вашего дистрибьютива) и «узнает» о последних версиях программного обеспечения и взаимозависимостях различных программных пакетов.
После обновления индекса устанавливаем утилиту sudo :
Теперь непосредственно наделяем polzovatel правом применять команду sudo :
Теперь можем войти и продолжить настройку системы под новым пользователем. Вводим команду:
Где хх.ххх.xx.xx – IP адрес сервера.
Нас спрашивают, желаем ли мы соединиться. Набираем в консоли yes , жмем Enter .
Полезные команды, которые пригодятся в работе с командной консолью:
- ls –lha – показать список имеющихся файлов, загруженных на сервере, включительно с данными о размере и правах доступа;
- cd [имя каталог] – перейти к указанному каталогу;
- mv – изменить имя/переместить;
- rm – удалить;
- cp – копировать;
- chmod – установить права доступа к фалу или каталогу;
- cat – показать содержимое файла;
- mc – запустить встроенный менеджер файлов, напоминающий Нортон.
- mkdir [произвольное_имя] – создать новый каталог.
Теперь можно приступать к установке необходимого программного обеспечения.
Установка и настройка LAMP
Чтобы запустить и настроить веб-сервер необходимо установить базовый набор программного обеспечения: LAMP (Linux+Apache+MySQL+PHP). Запускаем инсталляцию пакета LAMP и панели phpMyAdmin:
Откроется диалог, в котором нам попросят подтвердить начало установки указанных пакетов, подтверждаем – жмем клавиши Y и Enter .
В очередном диалоге задаем пароль для базы данных MySQL (в дальнейшем его можно изменить):
Для подтверждения вводим повторно пароль:
Дальше система запрашивает тип веб-сервера для автоматической настройки phpMyAdmin – выбираем apache2:
При открытии очередного диалога соглашаетесь ( Y и Enter ) с применением стандартных настроек phpMyAdmin и автоматическим созданием служебной базы данных:
Задаете пароль для phpMyAdmin и повторяете ввод:
Теперь нужно откорректировать конфигурацию Apache. Открываем файл с настройками:
После открытия на новой строке в конце документа вводим:
Теперь для выхода из редактора нажимаем Ctrl+X , потом соглашаемся сохранить изменения — Y и Enter .
Добавляем сайты на VPS сервер: настройка Apache и DNS
Apache позволяет создать бесконечное количество виртуальных хостов, вследствие к одному IP можно привязать множество сайтов. Но не стоит забывать об аппаратных ограничениях. Процесс размещения нескольких сайтов на одном VPS/VDS сервере разделяется на несколько этапов.
Первый этап: создаем отдельные каталоги для сайтов
Создаем каталоги, к которым будет обращаться Apache. В них будут храниться файлы ваших сайтов и веб-приложений. Вводим в командной консоли:
mkdir – команда «создать каталог (папку), параметр «-p» задается для рекурсивного создания папок: сначала появляется каталог «mysitename1.org», потом каталог «public» – в нем и будет храниться контент веб-ресурсов, которые вы планируете разместить. «/var/www/» — путь, по которому будут создаваться новые директории. Название папок можно задать произвольное.
Обратите внимание, Apache имеет доступ только к каталогу /var/www, а также ко всем вложенным в него папкам и файлам.
Второй этап: устанавливаем права
По умолчанию права на директории принадлежат root-пользователю. В целях безопасности, а также если сайт создается для сторонних лиц, нужно обозначить владельцев. Для этого вводим команды:
polzovatel – это имя пользователя, которому присваиваются права доступа к каталогам public_html, содержащим файлы сайта.
Редактируем права доступа:
Обратите внимание! В Linux-системах права доступа задаются цифрами для всех типов пользователей: создателя файла/директории, пользователей группы владельца, других пользователей.
Установка и настройка веб-сервера для сайта в Ubuntu
Автор: Сергей Никонов
Настройка веб-сервера для разработки сайта на PHP в операционной системе Ubuntu — это задача, с которой должен уметь справиться веб-разработчик. В этой статье мы разберемся как установить и настроить LAMP-сервер (Linux, Apache, MySQL, PHP) для ваших сайтов.
Что такое LAMP
LAMP расшифровывается как Linux, Apache, MySQL, PHP. Связка технологий Apache, MySQL, PHP необходима для того, чтобы запустить веб-сайты как собственной разработки, так и сайты на популярных CMS: WordPress, Joomla, Prestashop, Drupal и прочих.
Каждый компонент мы будем устанавливать и настраивать по отдельности.
Установка Apache
Apache — это веб-сервер с открытым исходным кодом. Работу веб-сервера можно описать так: На каждый запрос, веб-сервер отдает ответ в зависимости от запроса.
Иными словами, по аналогии, если вы обратитесь с каким-либо вопросом к человеку, он вам ответит или не ответит.
Но если вы зададите ему вопрос, на который он не может ответить, человек ответит вам не знаю. По аналогии работает и наш веб-сервер Apache.
Для того, чтобы установить веб-сервер Apache, введите команду в терминал:
sudo apt-get install apache2
Что такое команда sudo и зачем она нужна, вы можете прочитать в этой статье.
После установки Apache, для проверки работоспособности веб-сервера, введите в браузере ip адрес сервера.
Если вы устанавливали Apache сервер на локально, например на ваш домашний компьютер, введите в браузере 127.0.0.1 и вы должны увидеть страницу приветствия веб-сервера Apache.
Установка PHP
Для того, чтобы установить PHP на ваш сервер, необходимо выполнить команду:
sudo apt-get install php5 php5-common libapache2-mod-php5 php5-cli php5-cgi php5-mysql
В данной статье мы не будем подробно останавливаться на названиях устанавливаемых пакетов, которые мы устанавливаем вместе с пакетом php5, поэтому двигаемся дальше.
После выполнения команды выше, введите в терминале php -v и вы должны удивить версию php:
$ php -v
PHP 5.5.9-1ubuntu4.11 (cli) (built: Jul 2 2015 15:23:08)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
Если вы у себя это видите в терминале, это значит, что php установлен.
Установка MySQL
MySQL — это база данных, в которой хранятся данные вашего сайта. SQL — это язык запросов к базе данных MySQL. Подробнее о языке запросов SQL вы можете почитать в этой статье.
Установка MySQL на ваш с сервер с Ubuntu/Linux очень простая. Для установки введите команду:
sudo apt-get install mysql-server mysql-client
В процессе установки MySQL вас попросят ввести пароль для пользователя root в MySQL, затем попросят ввести пароль для root пользователя MySQL повторно.
Будьте внимательны, перед вводом запишите пароль.
В данной статье мы установили не только MySQL сервер, но и консольный MySQL клиент. Для удобства работы с MySQL давайте установим графический веб-клиент к MySQL — PhpMyAdmin.
Для установки PhpMyAdmin введите команду:
sudo apt-get install phpmyadmin
В процессе установки PhpMyAdmin вам предложат настроить связку веб-сервера и phpmyadmin автоматически. На этом шаге выберите автоконфигурацию для веб-сервера apache2.
На следующий вопрос о конфигурации ответьте Yes. После этого вас снова попросят ввести пароль к пользователю root.
После этого, установка и настройка phpmyadmin будет завершена. Для проверки работоспособности phpmyadmin введите в браузере ip адрес вашего веб-сервера и после слеша допишите phpmyadmin.
Если вы устанавливали phpmyadmin на локальный сервер, введите в браузере:
В результате вы увидите страницу авторизации phpmyadmin:
Введите root и пароль, который вы задавали в процессе установки MySQL и вы войдете в phpmyadmin.
Настройка конфига веб-сервера Apache для работы на домене
Очень часто простой установки веб-сервера Apache бывает недостаточно, если вы хотите разрабатывать сайт и просматривать его так, как будто он находится в интернете и доступен по вашему доменному имени, например superdomain.com.
Давайте настроим конфиг Apache2 для того, чтобы это реализовать.
Первое, что вам нужно сделать — это создать каталог для вашего сайта на сервере. Для этого перейдите в базовый каталог сайтов apache:
После этого создайте каталог для вашего сайта:
sudo mkdir superdomain
Для того, чтобы мы могли вносить изменения в каталог superdomain, нам нужно изменить владельца каталога с пользователя root на вашего пользователя.
Для этого введите в терминале команду:
А после этого команду:
sudo chown -R user:user superdomain
Последней командой мы поменяли владельца и группу каталога superdomain на вашего пользователя (вместо user:user напишите имя вашего пользователя)
Затем перейдите в созданный каталог superdomain и создайте в нем файл index.php и php скриптом.
Для этого в терминале введите команду:
и введите команду:
после этого вставьте php скрипт, например с таким содержимым:
Для того, чтобы сохранить изменения в редакторе nano, нажмите сочетание клавиш ctr+x и букву y, затем enter.
Команды Linux описаны в этой статье.
А сейчас мы настроим конфиг веб-сервера apache2.
Для этого введите команду:
sudo nano /etc/apache2/sites-available/superdomain.com.conf
и вставьте этот текст:
После этого нажмите сочетание клавиш ctr+x и букву y, затем enter.
В этом конфиге мы создали указали пути к директории нашего сайта superdomain, указали название домена, правила, email веб-мастера, если пользователь будет видеть ошибку, пути к лог файлам apache и другие настройки.
После этого нам необходимо перейти в каталог apache :
и выполнить команду:
sudo a2ensite superdomain.com.conf
Если все сделали правильно после ввода этой команды вы должны увидеть это:
Enabling site superdomain.com.
To activate the new configuration, you need to run:
service apache2 reload
Для применения нового конфига apache для нашего сайта superdomain.com введите команду:
service apache2 reload
Если после запуска команды выше, веб-сервер apache2 не будет ругаться на ошибки, значит вы все сделали правильно и остался последний шаг, чтобы запустить наш сайт с домена superdomain.com.
Если у вас нет понимания команд которые вы вводите в терминал Linux, прочитайте статью о Bash командах.
Последнее изменение которое необходимо внести, для запуска сайта на домене superdomain.com, прописать в файле hosts ip-адрес сервера(в данном примере веб-сервер локальный) и название домена superdomain.com:
Файл hosts находится в Linux:
В операционной системе Winodows, файл hosts находится:
Все готово! Сохраните файл hosts и в браузере введите
В результате вы должы увидеть php вывод страницы index.php из каталога superdomain.
Выводы
В данной статье мы настроили LAMP сервер в операционной системе Ubuntu. Аналогично, вы можете создавать каталоги и конфиги apache2 для других ваших сайтов.
Мы показали базовые настройки LAMP. А если ваш проект перерастет во что-то большое, вы можете купить VDS сервер, от компании Timeweb с Ubuntu на борту и произвести настройку LAMP в нем.
В следующих статьях мы рассмотрим расширенные настройки PHP, Apache, MySQL и то, как настройть WAMP(Windows, Apache, PHP, MySQL).
Оставайтесь с нами и следите за новыми публикациями в нашей группе VK.
Для того, чтобы посмотреть видео, зарегистрируйтесь в личном кабинете
Настройка хостинга на RU-Center (nic.ru)
Paramtamtam · 2016.1.22 · 11 min
Так уж сложилось, что время от времени приходится поднимать сайты на хостинге руцентра. Как правило это небольшие сайты-визитки или проекты, для которых реализация на дедике характеризуется как “жирно будет”.
Итак, отбросим причины в сторону. Первым делом — что нам понадобится для того чтоб всё сделать “под ключ”, т.е. владельцем домена/хостинга был заказчик (как физ.лицо), а ты был лишь лицом, которое выполняет работу? От заказчика тебе потребуется:
- Фотографии/сканы разворота паспорта и страницы с пропиской;
- Логин/пароль от почтового ящика, который будет фигурировать при регистрации;
- Необходимая сумма денег для оплаты требуемых услуг.
Вопрос: При регистрации домена может сразу встать вопрос — делегировать домен на руцентр или, например, сразу же на DNS-хостинге от Яндекса?
Ответ: На руцентр. Так как для делегирования на Яндекс потребуется подтвердить права на владение доменом. И проще всего это сделать с помощью проверки наличия определенного файла с кодом в корне сайта. Поэтому — смело всё делай по дефолту, потом переделегируем, если потребность такая возникнет.
Сразу скажу — если “с сайта” будут отправляться письма и при этом хостить DNS у Яндекса — возникнут проблемы с отправкой писем. DKIM настроить на Яндекс будет невозможно, а у руцентра он принципиально не настраиваемый. Поэтому считай это тонкостью использования руцентра в целом.
Итак, считаем что аккаунт у нас заведен, домен — зарегистрирован, хостинг — заказан. Не забудь а Личных данных приложить сканы/фотографии паспорта клиента для верификации личности, так правильнее будет.
Настройка почты
Переходим “Панель управления” → “Почтовый сервер”. Выбираем наш почтовый домен (должен быть создан автоматически; в противном случае создаем его с именем основного домена). Первым делом лезем в “Почтовые ящики” → “[email protected]_domain.ltd”, и добавляем синонимы к ящику вида [email protected] [email protected] [email protected] [email protected] . Таким образом все “важные” письма будут первым делом попадать именно на этот ящик, а владелец сайта сможет написать на своих визитках “клёвый” почтовый адрес [email protected]_domain.ltd 🙂 Так же заходим в интерфейс самого почтового ящика (нажимаем на его адрес вверху страницы) и настраиваем переадресацию всех входящих писем на email-адрес заказчика.
Далее “Панель управления” → “Почтовый сервер” → “Параметры”, и в поле “Обработка нераспознанной почты” вводим [email protected]_domain.ltd . Таким образом письма, отправленные на несуществующий ящик (_например blabla@yourdomain.ltd) будут уходить на [email protected]_domain.ltd , а оттуда — нашему заказчику. Если же будут заведены дополнительные адреса (например — для сотрудников нашего заказчика) — ничего перенастраивать не придется.
Настройка СУБД
Настройку СУБД производить в соответствии с используемой системой управления контента. Рекомендую “выключать” все привилегии для пользователя, которые ему критически не важны. В идеале ему должно хватать лишь INSERT UPDATE SELECT и DELETE . Но это лишь в идеале. Ещё раз — тут смотри сам.
Больше особо интересных моментов в настройке для хостинга нет.
Настройка Веб-сервера
Вот тут самое пожалуй интересное. Первым делом мы осуществляем “преднастройку” в веб-интерфейсе панели управления. Если используешь CMS “WordPress”, то для тебя подойдут почти все настройки что идут “по умолчанию”, но не все. Для других CMS — надо смотреть более детально и отдельно.
Выключаем WP_CRON для WordPress
В WordPress Есть такая штука как WP_CRON, которая позволяет выполнять “отложенные” действия, такие как отложенная публикация постов, проверка наличия обновлений и прочие весьма полезные штуки. Но это довольно тяжелая задача, надо признать, и выполнять её при каждом посещении пользователя/администратора сайта — иметь лишнюю задержку. Что мы делаем чтоб ситуацию исправить? Мы выключаем WP_CRON в WordPress путем добавления строки:
В wp-config.php , и добавляем отдельную задачу в “Панель управления” → “Веб-сервер” → “Планировщик заданий” с именем, например — “wp cron” и выполняемой командой:
Теперь пользователи не будут ощущать задержку, а все задачи крона WP будут выполняться “в фоне” с заданным интервалом (выставь “Каждые 5 минут”).
Настраиваем модули
Переходим в “Управление модулями”. Здесь нам необходимо выполнить предварительную настройку как веб-сервера (Apache, а точнее просто указать какие модули ему загружать), выбрать используемую версию php (не знаю почему, но я всё ещё пользуюсь версией 5.3 ), и указать необходимые параметры для php, такие как кодировка (выставляй везде UTF-8), максимальный размер загружаемого файла, и модули php (выставляй их в соответствии с требованиями сайта).
Вырубай всё откровенно лишнее и неиспользуемое. После этого перезапусти веб-сервер путем нажатия на соответствующую ссылку, и ставь свою CMS. На этом шаге у тебя должно всё работать как надо. Проверь всё — отправку писем, работу всех частей как пользовательского интерфейса, так и административной части. Всё должно работать. Только после этого мы переходим к следующей части.
Перевод сервера в ручной режим
Это необходимо для того, чтоб выполнить более тонкую настройку, недоступную из веб-интерфейса. Для перевода работы веб-сервера в ручной режим переходи в “Панель управления” → “Веб-сервер” и в графе “Режим настройки” жми на “Ручной”. После этого действия будут созданы конфиги на основе тех настроек, которые мы выполнили ранее.
Теперь цепляемся к хостингу по ssh (реквизиты для соединения указаны в “Панель управления” → “Помощь”), и все дальнейшие настройки будем выполнять только в нем.
Настройка nginx
Первым делом нам необходимо настроить:
- Отдачу статического контента с помощью nginx
- Включить его сжатие с помощью gzip
- Настроить его хранение на стороне клиента (вместо того, чтоб каждый раз скачивать его с нашего сервера)
Для этого выполняем в консоли:
И смотрим как у нас был настроен nginx в автоматическом режиме. Он отдавал статику, но сжатие и хранение статики на стороне клиента — отсутствует. Испраляем-с 🙂 Копируем из этого конфига все location -ы (в моем случае это были location / , location
* ^.+.(jpg|jpeg|gif|. и location @fallback ) в конфиг
/etc/nginx/nginx.conf , вставляя их в секцию server <. >. Сделать по образу и подобию не думаю что составит трудность.
Для включения gzip-сжатия статики необходимо в секцию http <. >добавить:
Добавить можно в принципе в любом месте перед началом секции server <. >. Теперь статика будет отдаваться значительно быстрее 🙂
Для того чтоб она лишний раз не загружалась с сервера, а хранилась на стороне клиента мы немного подправил location который отвечает за отдачу статики, а точнее добавим в него строку expires 30d; , чтоб получилось примерно следующее:
Так же приведу для сравнения полный листинг получившегося у меня конфига:
Теперь перезапускаем nginx и проверяем чтоб всё работало как надо с помощью, например, PageSpeed Insights:
Настройка apache
Конфиг Apache теперь храниться по пути
/etc/apache_2.4/httpd.conf , и для его перезапуска необходимо будет выполнить команду:
Всё что нам необходимо сделать здесь — это добавить 2 строки перед секцией : ServerTokens Prod и ServerSignature Off , которые запрещают вывод сигнатур сервера. Если тебе потребуется ещё что-то настраивать у Apache — то делай это в этом файле.
Настройка php
Для того, чтоб веб-сервер Apache начал читать именно наш конфиг, а не тот что лежит в директории
/etc/ — нам необходимо скопировать соответствующий в домашнюю директорию. Поясню — например, мы используем php версии 5.3 . Смотрим в
Конфиг есть, но писать в него мы соответственно не можем. Копируем его в домашнюю директорию под именем php.ini :
И добавляем в него строку expose_php=Off , которая скроет версию используемого php и заголовках ответов веб-сервера. Перезапускаем Apache:
И проверяем чтоб всё работало, но ничего лишнего наружу “не светилось”.
Настраиваем резервное копирование
Хоть администраторы хостинга и выполняют резервное копирование — но лишней копия всё же не будет. Хранить мы будем бэкапы 31 день (все настройки указываются в начале скрипта), не забудь указать настройки ID хостинга (т.е. названия твоей домашней директории) и реквизиты для подключения к mysql базе примерно в 84 строке скрипта (+ там же проверка на наличие итогового бэкапа бд):
По итогу его выполнения у нас должна появиться директория
Сам себе админ. Учимся настраивать VDS и переносить сайты
Содержание статьи
В интернете сегодня можно не только развлекаться, но и учиться, работать и зарабатывать. Количество сайтов растет ежесекундно, услуги хостинга также становятся привлекательными и множатся как грибы после дождя. Бывает, что хостер оправдывает все ожидания, но иногда приходится и переезжать. Можно нанять фрилансера, но лучше научиться делать это самому. Сегодня тебя ждет небольшая инструкция именно на этот случай.
Постановка задачи
Ситуация самая жизненная. Интернет-магазин, размещенный на шаред-хостинге, после запуска начал получать клиентов, но появились пожелания к функциональности, и разработчики активно занялись доработкой сайта. Выяснилось, что, когда в этом участвует несколько человек, постоянно копировать файлы через FTP для теста, да и еще на рабочий сайт, очень проблемно. Терялся контроль, кто когда что сделал, нужно было беспокоиться о сохранении оригинальных файлов, чтобы было легко откатиться. Владельцу приходилось или согласовывать правки, или копировать все самому. Разработчик не мог сразу посмотреть результат и ждал. Процесс сильно тормозился. В итоге пришли к тому, что нужно использовать возможности Git и создать новый сайт-зеркало, где можно было бы все обкатывать. При такой схеме разработчик мог сразу тестировать код, а в случае одобрения код переносили в master и выкладывали уже на рабочий сайт. Также можно легко отслеживать коммиты.
Вторая проблема: хостинг постоянно падал. Причину в итоге нашли: Entry processes limit — параметр, который определяет количество CGI/PHP-процессов, входящих внутрь виртуального контейнера, и о котором не сильно любят говорить маркетологи хостера. На графиках его тоже не видно, только маленькая графа в таблице. В итоге при небольших нагрузках CPU и RAM (не более 20%) сервер вообще не работал даже при минимальном количестве посетителей. В итоге было принято решение переезжать.
Первоначальные настройки сервера
OC в VDS устанавливается автоматически. Достаточно выбрать версию и вариант с веб-панелью или без и чуть подождать, пока не придет письмо с данными для входа. На хостингах предлагаются и разные веб-панели. Когда этот материал создавался, Vesta не поддерживала Ubuntu 16.04 и необходимости в ней не было, поэтому выбрали чистую систему. Все дальнейшие действия ведутся от имени root. Первым делом проверяем локаль, часовой пояс и время. Вообще, веб-приложения обычно не обращают внимания на некоторые системные настройки, но иногда попадается именно тот случай, поэтому лучше сразу сделать все правильно.
Если в ответ получаем отличное от ru_RU.UTF — перенастраиваем.
Если часовой пояс не соответствует — переконфигурируем.
Теперь можем ставить сервисы.
Настраиваем часовой пояс
Ставим веб-сервер
Несмотря на их разнообразие, выбор установки обычно сводится к трем вариантам: Apache, nginx или nginx как реверс Apache. Apache очень гибок в настройках и использует модули для обработки динамических запросов, поэтому хорошо справляется с динамикой. Nginx хорош в отдаче статики и потребляет меньше ресурсов, но для обработки динамики использует сторонний модуль, что снижает скорость и чуть усложняет настройки. В зависимости от конкретного приложения каждый из них может иметь свои плюсы и минусы и показывать разную скорость. Поэтому окончательный выбор веб-сервера всегда приходится подтверждать практикой, подбирая оптимальный вариант. Проблема nginx — то, что в некоторых специфических движках следует вручную возиться с редиректами, когда на Apache все будет работать буквально из коробки, достаточно просто включить mod_rewrite.
Нагрузочное тестирование можно произвести при помощи ab (Apache Benchmark, входит в apache2-utils) или siege. Причем лучше проверить с localhost и удаленного узла, чтобы видеть, как работает сеть.
Хотя ab — это скорее для себя, чтобы оценить эффективность установок. Человека со стороны обычно интересует только то, что показывает Google PageSpeed, поэтому ориентироваться следует и на него.
В последнем случае сайт на старом хостинге давал 60, после переноса на VDS (с такими же параметрами) он в Apache в установке по умолчанию показывал 72, nginx с голым конфигом — 62, после добавления сжатия — 78. На этом и остановились, выбрали nginx. В репозитории несколько пакетов, для большинства ситуаций достаточно базового core, содержащего все основные модули, для PHP нам понадобится FPM.
Файл в общем стандартный, но для скорости добавим кеширование и сжатие. Точные параметры в каждом случае необходимо подбирать опытным путем, но для небольших и средних проектов таких установок обычно бывает достаточно. В nginx.conf добавляем или, если повезло, снимаем комментарии в секции http:
Создаем настройки для домена:
Это общий пример для стандартного движка. Некоторые движки вроде OpenCart или WebAsyst требуют специфических настроек, и даже не всегда работает то, что предлагается в Сети.
Проверяем, работает ли сжатие. Это можно сделать, просмотрев заголовок Content-Encoding в Firebug (он должен показывать gzip), или при помощи специального сервиса.
Но работать еще не будет. Нужно настроить PHP. Для FPM все установки находятся в /etc/php/7.0/fpm. Проверяем, что в pool.d/www.conf учетная запись совпадает с используемой nginx и включен сокет.
Кроме этого, можно обратить внимание на параметры, определяющие количество процессов, которые будут обслуживать PHP-запросы.
На чуть загруженных серверах может не хватать количества процессов. В логах об этом сразу скажут.
Еще важный файл php.ini. Параметров там много, и можно рассказывать долго. Но изначально следует включить сжатие, установить максимальный размер файла на аплоад, подключить mail(), сессии и очень желательно включить акселератор OPcache.
Обязательно проверяем права доступа на /var/lib/php/sessions, чтобы туда мог писать nginx, иначе сессии не будут образовываться. Перезапускаем.
Теперь перенос сайта. Если переносим с другого хостинга, то там создаем бэкап. Если есть хостинговая веб-панель, то можно использовать ее возможности. Или вручную:
И на новом месте распаковываем:
Но для сайта нам нужна СУБД.
Проверяем сжатие отдаваемых веб-сервером данных
Ставим MySQL
C MySQL все очень просто. Вводим
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее
Настройка PHP
Что такое PHP?
PHP — это язык программирования, который используется для создания современных динамических страничек на сайтах. Современные хостинг-провайдеры дают достаточно много свободы в настройках PHP, которые помогают решать ставящиеся перед сайтом задачи.
- Настройка PHP
- Все о файле php.ini
- Как изменить версию PHP?
- Использование PHP на html-страницах
- Вывод PHP-ошибок
Как узнать настройки PHP на хостинге?
1 способ
Поискать в панели управления хостингом. Т.к. единого алгоритма как найти настройки нет, и не у каждого хостера такая возможность есть, то можно либо искать раздел «Конфигурация PHP», «Настройка веб-сервера» (или что-то подобное), либо обратиться в службу поддержки, либо использовать второй способ.
2 способ
Создать PHP-файл (например myphpinfo.php), а в него записать код:
Затем загрузить этот файл на сервер, где находится ваш сайт (например в корневую директорию). И через браузер запустить его (в браузере ввести URL http://yoursitename.com/myphpinfo.php).
Результатом этой операции должен стать вывод настроек:
Как изменить настройки PHP?
Менять настройки можно через интерфейс в панели управления хостингом, или же в файле php.ini. Как правило вебмастера меняют настройки именно из файла php.ini (т.к. если это делать через панель управления, то все равно все изменения записываются в файл php.ini). О том как и какие настройки можно изменить мы написали отдельную статью.
Юзеры ( 3 ) оценили на 3.3 из 5
Настоятельно рекомендуем не покупать слишком дешевый хостинг! Как правило с ним очень много проблем: сервер иногда не работает, оборудование старое, поддержка долго отвечает или не может решить проблему, сайт хостера глючит, ошибки в регистрации, оплате и т.д.
Также мы собрали тарифы от тысяч хостеров, чтобы вы могли выбрать хостинг по конкретной цене.
Облачный хостинг — распределение нагрузки на несколько серверов, если сервер с вашим сайтом перегружен или не работает. Это гарантия того что пользователи в любом случае смогут видеть ваш сайт. Но это дорогая, более сложная опция, которую предоставляют далеко не все провайдеры.
Виртуальный хостинг — подходит для большинства проектов начального уровня с посещаемостью до 1000 человек в сутки. В таком хостинге мощность сервера делится между несколькими хостинговыми аккаунтами. Услуга проста в настройке даже для новичков.
VPS — подходит для более сложных проектов с достаточно большой нагрузкой и посещаемостью до 10000 человек в сутки. Здесь мощность сервера фиксированная для каждого виртуального сервера, при этом сложность настройки увеличивается.
Выделенный сервер — нужен для очень сложных и ресурсоемких проектов. Для вас выделяют отдельный сервер,мощность которого будете использовать только вы. Дорого и сложно настраивать.
Размещение и обслуживание вашего собственного сервера в дата-центре хостинга — это не очень популярная услуга и требуется в исключительных случаях.
CMS — это система управления контентом сайта. Хостеры стараются для каждой из них делать отдельный тариф или упрощать установку. Но в целом это больше маркетинговые ходы, т.к. у большинства популярных CMS нет специальных требований к хостингу, а те что есть — поддерживаются на большинстве серверов.
Тестовый период — предоставляется хостером бесплатно на 7-30 дней, чтобы вы могли удостовериться в его качестве.
Moneyback — период на протяжении которого хостер обязуется вернуть деньги, если вам не понравится хостинг.
Означает какая операционная система установлена на сервере хостинга. Мы рекомендуем размещать на серверах с Linux, если нет особых требований у разработчиков сайта.
Абузоустойчивый хостинг — компании, которые разрешают размещать практически любой контент, даже запрещенный (спам, варез, дорвеи, порнографические материалы). Такие компании не удаляют контент вашего веб-сайта при первой же жалобе (“абузе”).
Безлимитный хостинг — хостинг у которого отсутствуют лимиты на количество сайтов, БД и почтовых ящиков, трафик, дисковое пространство и т.д. Обычно это больше маркетинговый трюк, но можно найти что-то интересное для себя.
Безопасный хостинг — тот, где администрация постоянно обновляет ПО установленное на серверах, устанавливает базовую защиту от DDoS-атак, антивирус и файерволлы, блокирует взломанные сайты и помогает их «лечить».
Защита от DDOS — компании, которые предоставляют хостинг с защитой от DDoS-атак. Такие пакеты ощутимо дороже обычных, но они стоят своих денег, так как ваш сайт будет защищен от всех видов сетевых атак.
На языке программирования PHP и базах данных MySQL сейчас работает большинство сайтов. Они же поддерживаются практически всеми современными хостингами.
ASP.NET — платформа для разработки веб-приложений от Майкрософт.
От панели управления зависит ваше удобство в настройке хостингесайта.
Большинство качественных хостингов из нашего ТОПа используют удобные панели управления, поэтому рекомендуем больше внимания уделить другим параметрам при выборе.