Установка веб-приложений на VPS

Сервер Linux – очень гибкая платформа для разработки и обслуживания контента. Конечно, единственно верного способа обслуживания приложений не существует. Однако есть ряд требований и рекомендаций, выполнение которых обеспечит продуктивную работу программ.

Как правило, веб-приложения основаны на системе управления базами данных (MySQL/MariaDB, PostgreSQL, MongoDB и т.п.). Доступ к контенту такого приложения можно получить при помощи веб-сервера (Apache или Nginx). Динамический контент обрабатывается с помощью серверного языка программирования (PHP, Python, Ruby). Наборы программ, которые обслуживают веб-приложения, называются программными стеками.

Самым традиционным стеком считается LAMP, который включает в себя операционную систему Linux, веб-сервер Apache, СУБД MySQL и язык программирования PHP. Остальные компоненты устанавливаются согласно требованиям приложения. Важным преимуществом программ с открытым исходным кодом является их гибкость и адаптивность.

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

Примечание: В данном руководстве в качестве примера будет использовано веб-приложение MyBB (форум) и система Ubuntu 12.04.

1: Установка стека

Итак, сначала нужно установить все компоненты программного стека.

Примечание: В руководстве используется стек LAMP.

Установка Apache

Веб-сервер Apache будет обслуживать страницы приложения.

Загрузите пакет:

sudo apt-get update
sudo apt-get install apache2

Установка MySQL

MySQL – это система управления базами данных, которая отвечает за хранение и систематизацию данных приложения.

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

sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql

После установки СУБД предложит выбрать пароль администратора.

Установка PHP

PHP – серверный язык сценариев. По сути это язык программирования, который выполняет код. Он позволяет генерировать динамический контент на основе запросов пользователя и данных, хранящихся в БД. Чтобы установить PHP, введите:

sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt

2: Настройка стека

Теперь все компоненты программного стека установлены и требуют дополнительной настройки. Настройки по умолчанию почти всегда недостаточно надёжны.

Настройка MySQL

Инициализируйте БД:

sudo mysql_install_db

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

sudo mysql_secure_installation

Он задаст вам несколько вопросов. Укажите пароль администратора MySQL, выбранный во время установки программы. Затем сценарий предложит изменить этот пароль; если вас устраивает текущий пароль, ответьте no. На остальные вопросы сценария можно просто ответить yes.

Настройка Apache

Теперь нужно настроить веб-сервер Apache. Перейдите в каталог Apache и откройте конфигурационный файл. Нужно настроить веб-сервер для обработки файлов PHP.

sudo nano /etc/apache2/mods-enabled/dir.conf

Найдите в файле директиву DirectoryIndex. Она содержит список поддерживаемых файлов, упорядоченный по приоритетности. Переместите index.php в начало списка:

<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

После этого нужно перезапустить веб-сервер:

sudo service apache2 restart

Настройка PHP

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

Конфигурационные файлы PHP хранятся в каталоге /etc/php5. Один из самых важных конфигурационных файлов – /etc/php5/apache2/php.ini. он отвечает за взаимодействие PHP и Apache:

sudo nano /etc/php5/apache2/php.ini

Как видите, этот файл очень объёмный.

Иногда с помощью конфигурационных файлов можно оптимизировать работу приложения. К примеру, если вы выполняете какие-то ресурсозатратные вычисления, можно увеличить максимальное количество памяти процесса PHP:

memory_limit = 128M

3: Создание БД

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

Откройте MySQL. При входе будет запрошен пароль администратора:

mysql -u root -p

Командная строка изменится. Теперь вы можете отправлять команды SQL.

Примечание: SQL – это язык запросов, на котором основана программа MySQL. Он используется для создания, изменения и взаимодействия с данными и с самой программой.

Чтобы систематизировать данные веб-приложения, нужно создать БД. Её имя должно совпадать с именем программы, для которой она предназначена.

CREATE DATABASE mybb;

Примечание: Все команды SQL должны заканчиваться символом точки с запятой.

Затем создайте отдельного пользователя для приложения (в данном случае это форум MyBB).

CREATE USER 'mybbuser'@'localhost' IDENTIFIED BY 'password';

Передайте новому пользователю все права на БД:

GRANT ALL PRIVILEGES ON mybb.* TO 'mybbuser'@'localhost' IDENTIFIED BY 'password';

Теперь нужно сбросить привилегии и закрыть MySQL:

FLUSH PRIVILEGES;
exit

4: Загрузка и настройка веб-приложения

Теперь всё готово к загрузке веб-приложения.

Загрузите исходные файлы во временный каталог в домашнем каталоге. Создайте такой каталог и откройте его:

mkdir ~/temp
cd ~/temp

В этот каталог нужно загрузить файлы приложения. Для этого выполните команду:

wget -O mybb.zip http://www.mybb.com/download/latest

Примечание: Если вы устанавливаете другое приложение, замените предложенную ссылку в команде.

Распакуйте загруженный архив:

sudo apt-get install unzip

Эта команда создаст два каталога, Documentation (содержит документацию программы) и Upload (в нём хранятся файлы форума). Переместите каталог Upload в root-каталог веб-сервера:

sudo mv ~/temp/Upload /var/www/forum

Теперь веб-сервер имеет доступ к файлам приложения. На данный момент у веб-приложения нет конфигурационных файлов, однако оно предоставляет образец такого файла. Откройте каталог:

cd /var/www/forum

Переместите конфигурационный файл:

sudo mv inc/config.default.php inc/config.php

Теперь нужно отредактировать привилегии на некоторые файлы:

sudo chmod a+rw inc/settings.php
sudo chmod a+rw inc/config.php
sudo chmod a+rw cache
sudo chmod a+rw uploads
sudo chmod a+rw uploads/avatars

Теперь приложение MyBB готово к работе.

Многие приложения настраиваются в браузере, и MyBB – не исключение. Чтобы приступить к финальной настройке, откройте ссылку:

http://your_domain/forum/install/

На экране появится первая страница настройки приложения.

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

Также во время настройки нужно указать учётные данные БД.

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

После этого можно удалить файлы, извлечённые из архива.

sudo rm -r /var/www/forum/install

Чтобы получить доступ к сайту, откройте:

http://your_domain/forum

Заключение

Это руководство на примере форума MyBB демонстрирует один из самых распространённых методов установки веб-приложения.

Tags: , , , , ,

Добавить комментарий