Поиск:

Поиск по:

Результаты поиска по запросу «»
Найдено совпадений
По вашему запросу ничего не найдено
.
Показать еще

Специальные образы Облачных VDS для быстрого развертывания серверов LAMP

В данной статье рассмотрены специально подготовленные LAMP-образы для установки на Облачных VDS и возможности быстрого запуска хостинга.

1. Общее описание готовых образов
2. Добавление сайтов
3. Работа с MySQL (MariaDB)
4. Настройка PHP и установка расширений
5. Запуск Django с использованием uWSGI

Стек LAMP (Linux/apache/mysql/php) является наиболее полулярным среди разработчиков набором технологий для создания сайтов. Исходя из имеющегося у нас опыта мы разработали несколько готовых образов VDS для быстрого развертывания на них мини хостинга, ориентированного на работу в LAMP. Общим принципом при разработке этих образов было обеспечение однотипности настроек, чтобы сайты, размещенные на одном VDS легко перемещались на другой VDS, даже базирующийся на другом образе (другом наборе базового ПО) и все основные задачи по администрированию любого из VDS на базе любого из предлагаемых образов выполнялись однотипно. Мы так же решили, что крайне важно, чтобы добавление новых сайтов на сервер было не сложнее, чем просто создание папки с именем сайта. В итоге мы создали на базе дистрибутивов Debian Wheezy, Ubuntu Precise Pangolin и Ubuntu Trusty Tahr со следующим набором ПО:

  • Nginx + Apache2 + PHP 5.4 (FastCGI) + MariaDB 5.5 + phpMyAdmin + sftp
  • Nginx + Apache2 + PHP 5.4 (mod_php) + MariaDB 5.5 + phpMyAdmin + sftp
  • Nginx + PHP 5.4 (php-fpm) + MariaDB 5.5 + phpMyAdmin + sftp

1. Общее описание готовых образов

Все образы построены исходя из того, чтобы главным и единственным пользователем в системе, от имени которого работают скрипты и выполняются все остальные действия, был пользователь web. Аналогично принятому в Ubuntu порядку вещей, в образах на базе Debian прямая работа от имени root не приветствуется (заблокирована) и вместо этого пользователю web через sudo предоставлена возможность выполнять любые команды с привилегиями суперпользователя. Таким образом, для входа на вновь созданный VDS по ssh необходимо выполнить команду:

$ ssh web@ip-address-of-vds

Кроме входа по ssh так же поддерживается протокол sftp. Подключение производится с тем же логином web и либо паролем, который был сгенерирован при создании VDS, либо с помощью ключа, так же указанного при создании VDS.

После входа в систему вы окажетесь в папке /var/www/web, которая является основной для наших образов VDS. Здесь вы найдете папку sites - это папка, в которой будут размещаться ваши сайты. Чтобы добавить новый сайт, достаточно внутри папки sites создать подпапку с именем нового сайта без префикса www.. Подробнее об этом ниже.

Логи посещения размещенных у вас сайтов apache будет писать в папку /var/log/apache2, а nginx, если установлен, в папку /var/log/nginx. В случае, если у PHP-скриптов возникнут ошибки в работе, информация о них будет писаться в файл /var/www/web/php-errors.log

2. Добавление сайтов

Добавление сайтов - наиболее часто востребованная операция для массового виртуального хостинга, поэтому мы постарались максимально ее упростить. Для добавления нового сайта mycompany.ru на ваш сервер вам потребуется сделать два простых действия:

  1. В папке /var/www/web/sites нужно создать подпапку с именем mycompany.ru, то есть с именем размещаемого домена без www.. Внутрь этой папки в дальнейшем нужно будет выкладывать скрипты, относящиеся к этому сайту.
  2. Через редактор DNS у вашего провайдера, предоставляющего вам услугу парковки домена в DNS, необходимо будет добавить A-записи, указывающие на ip-адрес вашего VDS: одну для имени mycompany.ru, другую для www.mycompany.ru.

Добавление алиаса (альтернативного имени для вашего сайта) является не менее простой операцией. Если к сайту mycompany.ru нужно добавить алиас www.mycompany.ru, то потребуется всего два действия:

  1. Создать символьную ссылку (symlink): cd /var/www/web/sites && ln -s mycompany.ru www.mycompany.ru
  2. Создать A-записи в DNS, указывающие на ip-адрес вашего сервера: для имени c www. и без www.

Напоминаем вам, что сервис парковки доменов в dns мы предоставляем для всех наших клиентов бесплатно и без ограничений. Инструкции по делегированию доменов на наши ns-сервера приведены по ссылке.

3. Работа с MySQL (MariaDB)

Для вновь созданных VDS пароль доступа пользователем root в MySQL генерируется случайным образом. Узнать пароль можно командой

sudo cat /root/.my.cnf

Если же вы хотите поработать с MySQL из консоли, то достаточно будет запустить команду sudo -H mysql без параметров и вы сразу попадете в консоль MySQL без необходимости вводить пароль. Если такая настройка системы вас не устраивает, смело можете удалить файл .my.cnf, предварительно сохранив себе записанный в нем пароль.

phpMyAdmin доступен на вашем сервере по ссылке http://mycompany.ru/mysql, где mycompany.ru - адрес любого вашего сайта, размещенного на этом сервере.

Файл настроек MySQL расположен в стандартном месте, но для его редактирования вам потребуются права суперпользователя:

sudo nano /etc/mysql/my.cnf

Чтобы изменения вступили в силу, необходимо перезапустить MySQL:

sudo service mysql restart

4. Настройка PHP и установка расширений

Поскольку в системе установлен стандартный PHP из репозиториев Debian/Ubuntu, настройка PHP и установка расширений производится стандартным для debian based дистрибутивов образом. Файл php.ini собирается из нескольких составных частей: из основного php.ini и из содержимого директории conf.d. Для FastCGI версии PHP настройки берутся из папки /etc/php5/cgi, для mod_php - из папки /etc/php5/apache2, для CLI версии (это /usr/bin/php, то есть та версия php, которая используется для заданий cron и других задач, выполняемых в консоли) - /etc/php5/cli. Версия php-fpm, соответственно, использует php.ini из папки /etc/php5/fpm.

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

$ dpkg -l | grep php

Посмотреть список доступных расширений php вы можете по команде:

$ apt-cache search php5

Перед самым первым вызовом команд apt-cache/apt-get на свежеустановленной системе не забудьте выполнить sudo apt-get update.

Установить требуемое расширение из списка очень просто. Допустим, мы хотим добавить в систему акселератор XCache. Соответствующий пакет будет называться php5-xcache, а команда по его установке, требующая привелегий суперпользователя, будет такая:

$ sudo apt-get install php5-xcache

Поскольку php начиная с версии 5.4 требует явного указания временной зоны в настройках (date.timezone), по-умолчанию устанавливается временная зона UTC. Эта настройка задается в файле /etc/php5/apache2/conf.d/local.ini. Вам необходимо изменить ее в соответствии со своими предпочтениями.

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

5. Запуск Django с использованием uWSGI

Django (Джанго) это свободный фреймворк, позволяющий быстро и качественно разрабатывать динамические веб-приложения на языке Python.

  • Рекомендации по запуску Django подойдут для всех LAMP образов (LAMP, LAMP с mod_php, nginx + php-fpm) как на основе Debian, так и Ubuntu.

  • Установка выполняется таким образом, чтобы не нарушать работу сайтов, расположенных в /var/www/

  • Действия на сервере выполняются от имени пользователя root.

Показать инструкции по установке


5.1 Установка пакетов и запуск uWSGI

Установим необходимые для работы пакеты, а так же выберем версию uwsgi из pip как версию по-умолчанию:

apt-get update && apt-get install -y python-pip python-dev uwsgi-plugin-python uwsgi && pip install virtualenv virtualenvwrapper uwsgi && update-alternatives --install /usr/bin/uwsgi uwsgi /usr/local/bin/uwsgi 80

На установку потребуется 2-3 минуты и установленные пакеты займут порядка 300 Мб на диске.

Создадим пользователя в системе, переключимся на него, а так же добавим переменные в его системный профиль

useradd -s /bin/bash -m -p $(pwgen -1 -N 1) project1 && su - project1 -c 'echo "export WORKON_HOME=~/Env" >> ~/.bashrc && echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc' && su - project1

Создадим виртуальное окружение, установим в нем django и создадим наш проект

cd ~ && mkvirtualenv firstsite && pip install django && django-admin.py startproject firstsite

Для удобства перечитывания проекта создадим файл

touch ~/firstsite/touch_reload

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

Вернемся к сессии пользователя root воспользовавшись сочетанием клавиш Ctrl + D.

Теперь создадим конфигурационный файл uwsgi для нашего проекта

mcedit /etc/uwsgi/apps-enabled/firstsite.ini

И скопируем в него (вносить изменения в скопированный текст не требуется):

[uwsgi]
project = firstsite
userhomedir = /home/project1

chdir = %(userhomedir)/%(project)
home = %(userhomedir)/Env/%(project)
module = %(project).wsgi:application

processes = 4
threads = 2

chown-socket = www-data
uid = project1
gid = project1
vacuum = true

touch-reload = %(userhomedir)/%(project)/touch_reload

buffer-size = 8192
listen = 128
harakiri = 300

Для сохранения в mcedit достаточно нажать F2 на клавиатуре.

Запустим uwsgi сервер

/etc/init.d/uwsgi start

5.2 Создание конфигурационного файла для nginx

Нам потребуется выяснить IP адрес сервера. Его можно посмотреть выполнив команду

hostname -I

Создадим сам конфигурационный файл для nginx

mcedit /etc/nginx/sites-available/firstsite

И заполним его следующим текстом

server {
listen serverip:80;
server_name sitenameru;

location = /favicon.ico { access_log on; log_not_found off; }
location /static/ {
root /home/project1/firstsite;
    }

location / {
include uwsgi_params;
uwsgi_pass unix:///run/uwsgi/app/firstsite/socket;
    }
}

В этом конфигурационном файле потребуется изменить serverip на ip адрес Вашего сервера, а sitenameru - на имя домена, по которому будет открываться ваш проект.

Активируем только что созданный конфигурационный файл и передадим сигнал nginx для перечитывания конфигурации

ln -s /etc/nginx/sites-available/firstsite /etc/nginx/sites-enabled/ && nginx -s reload

Готово! Если А запись в DNS для домена sitenameru указывает на IP адрес сервера, то ваш проект уже должен быть доступен по адресу sitenameru.

5.3 Оптимизация отображения статических файлов

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

su - project1 
workon firstsite

Добавим в конец файла firstsite/firstsite/settings.py упоминание о расположении статических файлов

echo 'STATIC_ROOT = os.path.join(BASE_DIR, "static/")' | tee -a ~/firstsite/firstsite/settings.py

Запустим скрипт сбора статических файлов

~/firstsite/manage.py collectstatic

Для начала работы скрипта потребуется напечатать yes.


Регистрация доменов

в зонах .RU .РФ

от 200 рублей Зарегистрировать домен

SSL сертификаты

Подтверждение сайта и надежная защита

передаваемых данных

Купить сертификат

Облачные VDS

дешевле чашки кофе

Процессорных ядер: 4, Память: 4 Гб, Диск: 20 Гб SSD, Резервное копирование

от 35 р/день Заказать VDS

Все, что нужно от хостинга

Простое решение для вашего сайта

Подробнее

Хранилище данных

Храни что хочешь по смешным ценам

Почасовая оплата за размещенные данные.

Заказать хранилище