Как развернуть приложение на сервере linux

Обновлено: 04.07.2024

Устанавливаем linux, настраиваем ssh доступ к серверу, работаем с файлами проекта под Linux на Windows машине, рассмотрим настройку пар серверов Nginx + Passenger, Apache + Passenger, Nginx + Unicorn, Puma + Nginx, установим Ruby on rails с помощью rbenv, используем базу данных PostgreSQL и заставим все это хозяйство работать вместе.

Основная цель.

Основная задача – развернуть Rails-приложение на сервере Linux. Также настроить автоматическое обновление файлов проекта из удаленного git-репозитория и автоматическое отображение обновленного приложения по адресу в интернете.

Все действия можно разделить на несколько шагов.

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

Пользователи на сервере.

База данных (Postgresql, MySQL)

Сервер Linux.

Результат этого шага – IP-адрес сервера, который откликается на ping.
Сервером, который будет хранить и запускать файлы нашего приложения обычно является некая машина (реальная или виртуальная) с установленной ОС Linux.

Виртуальная машина на локальной машине.

Устанавливаем на локальный компьютер программу для управления виртуальными машинами VirtualBox. Она бесплатна и хороша.

Скачиваем дистрибутив Linux Ubuntu и устанавливаем его на виртуальную машину.

Также устанавливаем дополнения гостевой ОС:
меню Устройства -> подключить образ диска Дополнений гостевой ОС.
Перезапуск.
Теперь гостевая ОС Linux

  • Включить еще один Адаптер2 с типом подключения « виртуальный адаптер хоста »
  • Изменить тип подключения первого (и единственного) адаптера с "NAT" на "Сетевой мост" (bridged).

Узнать IP-адрес сервера можно, используя команду в терминале:

Смотрим свойство inet addr. Скорее всего это будет что-то типа 192.168.56.101

VPS (Virtual Private Server)

виртуальный сервер, предоставляемый хостинг-провайдерами в интернете. Например, DigitalOcean, самый дешевый тариф на нем 5$ в месяц. Но можно найти где-нибудь и зарегистрироваться по реферальной ссылке и получить 10$ на счет аккаунта, которых хватит на 2 месяца аренды сервера.

Следуем инструкциям при настройке удаленного сервера и получаем IP и данные SSH подключения.

Пингуем полученный IP-адрес сервера и убеждаемся, что он виден по сети.

Как сделать общую папку из Linux на Windows.

Скажем, зачем-то вам понадобилось из среды Windows получить доступ к каталогу с проектом, который лежит на Linux виртуальной машине в вашей ЛВС. Мне, например, нужно было запускать и тестировать проект под Linux, но редактор и все другие инструменты были установлены в Windows, и все что было нужно, это получить доступ к ним на редактирование из под Винды.

Выход - это сделать общую папку между двумя машинами.

Установим утилиту samba на Linux машине:

Создадим на Linux машине в домашнем каталоге пользователя папку, которую будем делать общей. Установим ей свойства как на картинке

настройки общей папки Linux

Затем добавим пользователя к samba:

Обычно это тот же пользователь ОС.

И поменяем пароль на папку

Теперь эта папка видна на windows по локальной сети. Эту папку можно использовать для редактирования файлов проекта в редакторе в среде windows. А сами файлы проекта будут находиться и запускаться на Linux машине.

Пользователи на сервере

На VPS создан пользователь root по умолчанию. Пользователь root может делать на сервере все, что угодно. Поэтому лучше создать еще одного пользователя и включить его в группу sudo. Тогда этот пользователь сможет выполнять действия «как root» только если введет свой пароль. Таким образом мы немного увеличим безопасность нашего сервера.

[Опционально] установим на сервер локаль русского языка:

Создаем пользователя с именем maksim :

Придумываем надежный пароль и запоминаем его.

Добавляем пользователя в группу sudo

Настройка SSH соединения

Результат этого шага – возможность подключиться из терминала (или командной строки на Windows) на сервер Linux, используя SSH протокол.

Для начала на Linux сервере нужно установить набор утилит OpenSSH. Для этого в терминале сервера набираем команду:

Далее на локальной машине ОС Windows.
Для работы с SSH нам понадобится утилита Putty. Качаем ее тут и устанавливаем.

Запускаем Putty.
В поле Host name (or IP address) вводим IP-адрес нашего Linux сервера.
В открывшемся окне вводим логин и пароль пользователя Linux сервера и оказываемся технически в терминале сервера и можем выполнять в нем все команды так, как если бы мы открыли терминал внутри самого Linux-сервер.

Если на локальной машине установлена ОС Linux или iOS, тогда вместо Putty используем просто терминал этой ОС

Теперь на локальной машине нужно сгенерировать пару ключей (private-public).
На Windows-машине нет полноценной поддержки OpenSSH, поэтому будем генерировать ключи с помощью утилиты PUTTYgen. Она устанавливается в одном пакете с Putty.
Подробнее о порядке генерирования ключей смотри тут.

Private-key сохраняем на локальной машине как mykey.ppk .
Public-key сохраняем на локальной машине как id_rsa.pub и переносим на Linux-сервер.
Также сохраните текст публичного ключа из поля Public key for pasting into OpenSSH authorized_keys file в какой-нибудь текстовый файл в той же папке с ключами. Он имеет формат пригодный для OpenSSH.

Далее нам нужно скопировать публичный ключ на сервер Linux.
Сначала в домашней папке пользователя Linux создадим папку .ssh (если ее там нет) и внутри файл authorized_keys . Для этого набираем в терминале Putty команды:

Чтобы скопировать публичный ключ на сервер в созданное нами хранилище ключей, можно воспользоваться текстовым редактором nano (встроенный в Ubuntu) или редактором Vim (его нужно установить предварительно). Открываем файл authorized_keys в редакторе вставляем туда текст публичного ключа для OpenSSH и сохраняем файл.

На локальной машине Linux, iOS.

Скопируем публичный ключ с локальной машины на сервер для пользователя deploy:

Повышаем безопасность сервера

Нужно сконфигурировать наш SSH для повышения его безопасности. Для этого нужно

  • поменять порт,
  • отключить авторизацию по паролю,
  • и включить белый список пользователей, которые могут логиниться по SSH,
  • включить в этот список нашего пользователя.

В терминале putty набираем команды:

находим и меняем следующие настройки:

После сохранения этих настроек и перезапуска терминала вход на сервер будет возможен только по SSH, только на порт 2503 и только пользователю maksim. Поэтому нужно сохранить эту информацию где-то иначе зайти на сервер будет уже невозможно.

Перезапускаем настройки SSH

В случае использования PuTTY можно (и нужно) сохранить профиль подключения к серверу.
Запускаем PuTTY.
Заполняем IP и порт сервера, к которому хотим подключаться.
Connection type – SSH .
В дереве слева Connection-> Data -> в поле Auto-login user заполняем имя пользователя Linux, под которым будем заходить на сервер.
В дереве слева Connection->SSH->Auth -> в поле Private key file for authentication выбираем ранее сохраненный файл приватного ключа mykey.ppk.
В дереве слева Session -> в поле Saved Sessions пишем название настроек и нажимаем Save .
В списке ниже появится запись с только что сохраненными настройками.
В последующем из этих настроек можно будет загружать значения (Load) и соединяться с сервером с этими настройками.

Устанавливаем Ruby с помощью rbenv.

Результатом этого шага будет наличие установленных на сервере rbenv и ruby , что возможно будет проверить флагом «–v», который покажет версию этих программ.

Наберем в поисковой системе браузера «Ubuntu 16 install rbenv» и найдем страницу с инструкцией, например, эту.

Далее все инструкции взяты с этой страницы.

Установка rbenv

Далее установим rbenv клонированием репозитория в папку

Для автоматической загрузки rbenv добавим две настройки в конфигурационный файл bashrc:

Выполним теперь этот файл:

Проверим, правильно ли мы настроили rbenv:

Должно получиться это:

Установим плагин ruby-build:

Использование переменных окружения.

Перед тем как развернуть наше приложение мы должны установить секретный ключ (production secret key) и пароль к базе данных. Легкий способ загружать секретный ключ и пароль к базе данных в приложение во время исполнения – это использовать плагин rbenv-vars . Для использования этого плагина, его нужно просто склонировать из github репозитория:

Затем редактируем файл .rbenv-vars, просто добавляя в него пары <имя переменной>=<значение переменной>:

Чтобы посмотреть, какие переменные содержит плагин:

Установка ruby.

Проверим список доступных версий ruby:

Установим последнюю версию (ну или нужную):

Сделаем эту версию языка ruby используемой по умолчанию:

Проверим версию установленного ruby:

Чтобы узнать где лежит исполняемый файл ruby:

Работа с гемами.

Отключим установку документации гемов вместе с гемами. Для этого добавим строку «gem: --no-document» в файл настроек

Далее установим bundler, утилита которая скачивает и устанавливает гемы для ruby:

Чтобы узнать куда будут установлены все гемы, наберем команду:

NGINX+Passsenger

В поисковой системе браузера наберем ubuntu 16 install nginx passenger и найдем страницу с описанием установки, например, эту. Далее все инструкции будут взяты с этой страницы. Passenger NGINX

Установка.

Подключаем APT repository для последующей установки пакетов из него:

Устанавливаем Passenger + Nginx:

Проверка В браузере введем IP-адрес сервера. Мы должны увидеть страницу приветствия “Welcome to NGINX!”.

Настройка NGINX.

Редактируем основной конфигурационный файл nginx.conf (кнопка “i” в редакторе vim):

нам нужно поменять путь к исполняемому файлу языка ruby passenger_ruby на результат вывода команды which ruby :

кнопкой esc завершаем редактирование. :wq - выход с сохранением. Перезапускаем nginx:

Проверим, что все работает как и раньше – зайдем на стартовую страницу «Welcome to Nginx”, набрав IP адрес в браузере.

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

Создадим файл настроек для нашего приложения, чтобы сервер nginx мог его обслуживать. Для этого в папке /etc/nginx/sites-available создадим новый файл myapp (по названию приложения или как угодно):

Откроется текстовый редактор. В нем напишем следующий код:

В каталоге www будут все файлы приложения, а папка public это стандартная папка rails приложения. На данный момент ее не существует, поэтому создадим ее, находясь в домашней папке пользователя:

Создадим в этой папке файл index.html с текстом «My first app!»:

Мы создали сервер для нашего приложения в папке sites-available . Теперь, чтобы он запустился, нужно сделать символьную ссылку на него в папке sites-enabled :

Затем удалим сервер по умолчанию default из папки sites-enabled :

Перезапустим сервер nginx:

И проверим стартовую страницу в браузере по ip адресу нашего сервера. Должна быть страница с надписью «My first app!». Для дальнейших шагов по настройке Linux сервера остановим сервер nginx:

NGINX + Unicorn

В поисковике можно найти, например, такую ссылку. Этот шаг лучше делать после копирования на сервер файлов приложения (шаги 6-8). Установим Unicorn просто добавив его в gemfile и запустив bundle install в каталоге нашего приложения.

*почему-то это нужно сделать, даже если bundler уже стоит в системе. GemFile:

Конфигурируем Unicorn.

Для этого отредактируем файл /config/unicorn.rb . Скопируем туда этот код:

Не забудем создать каталоги, которые используются в этом файле:

Дадим права на запуск файла unicorn.rb :

Затем создадим скрипт запуска/остановки Unicorn. Создадим и откроем на редактирование файл скрипта

Скопируем в него следующий код:

Не забудем поменять значение настроек USER и APPNAME на наши значения. USER – это пользователь Linux, под которым будет запускаться Unicorn. Установим разрешения на редактирования файла и включим автозапуск при старте системы:

Запустим службу Unicorn

Теперь наше приложение запущено в production под управлением Unicorn.

Установка и настройка NGINX.

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

Заменим весь текст в нем на следующий:

Мы создали сервер для нашего приложения в папке sites-available . Теперь, чтобы он запустился, нужно сделать символьную ссылку на него в папке sites-enabled :

Удалим из sites-enabled настройку по-умолчанию:

Проверяем доступность приложения по IP сервера в браузере.

Puma+NGINX

В поисковике можно найти такую ссылку. Далее инструкции из нее.

Установим Puma, просто добавив его в Gemfile:

Конфигурируем Puma.

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

Скопируем туда текст файла:

Поменяем количество workers на количество ядер процессора.
Этот файл сконфигурирует Puma под конкретно наше приложение, под его сокеты, логи и PIDы. Этот файл можно редактировать под нужды приложения, если нужно.
Создадим в приложении каталоги pids, sockets, log , на которые ссылается этот файл:

Создаем Puma Upstart script.

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

Скачаем Jungle Upstart tool из репозитория Puma в домашний каталог пользователя.

Откроем загруженный файл puma.conf, для настройки пользователя.

Найдем такие строки setuid и setgid , и заменим ‘apps’ на имя нашего пользователя в Linux.

Затем скопируем оба файла в сервисный каталог Upstart:

Скрипт puma-manager.conf ссылается на файл /etc/puma.conf для получения приложений, которыми он должен управлять.
Создадим такой файл и запишем туда путь к нашему приложению:

Добавим в него путь к нашему приложению

**На Ubuntu 16.04 скрипт Upstart не запустится. Нужно еще кое-что сделать. Подробнее тут и тут

Создадим файл puma.service в каталоге /etc/system/system/ и скопируем туда текст следующего содержания:

Не забудем поменять значения переменных User, WorkingDirectory, ExecStart на правильные.
Затем выполняем по-очередно эти команды:

В статье предполагается, что Вы имеете web-приложение OneScript, созданное на основе этой или этой статьи, либо же каким-либо другим способом. Автор использовал для размещения приложение, созданное в этой публикации.

В процессе установки была добавлена поддержка русской клавиатуры , а также установлен OpenSSH сервер для удаленного доступа к серверу .

Также , был создан пользователь с логином onescript и паролем - 123456.

Необходимые утилиты

Настройка системы

Подключаемся к серверу

Подключаемся к серверу при помощи putty.exe и вводим логин и пароль .



Обновляем список доступных пакетов и устанавливаем новые версии

В командной строке выполняем следующие команды :

Устанавливаем утилиту распаковки zip файлов

В командной строке выполним нижеследующую команду :

Устанавливаем mono

В соответствии с приведенными инструкциями , последовательно выполняем в командной строке нижеследующие команды :

Подключаем репозитарий Mono

Устанавливаем Mono

Устанавливаем и настраиваем web- сервер

Как было указано ранее, в качестве web- сервера используется Apache с модулем mod-mono-server.

Устанавливаем Apache

Для установки , в командной строке выполняем нижеследующую команду :

Тестируем работоспособность сервера

Проверить работоспособность web- сервера можно обратившись к нему из браузера .


Устанавливаем mod-mono-server4

Детальная документация по продукту, установке и настройке можно найти по ссылке:

Для установки данного компонента, выполним нижеследующую команду :

Настраиваем mono-mod-server

Для простоты, используем режим AutoHosting. Для активации режима выполним нижеследующую команду :

Рестартуем сервис Apache

По умолчанию, корневая папка документов Apache расположена по нижеследующему пути : /var/www/html

Создадим в этой папке файл test.aspx следующего содержания :

Вставляем текст страницы и сохраняем файл (нажимаем ESC , затем Shift + Z + Z ) .

Тестируем работоспособность, для этого, из браузера обращаемся к созданной странице.


Настраиваем обработку расширений для *.os файлов

Для этого, отредактируем строку Add-Type application/x-asp-net , добавив туда расширение .os , в файле /etc/mono-server4/mono-server4-hosts.conf

Нажимаем Insert для включения редактированния, затем добавляем расширение . os в строку с Add-Type


Сохраняем файл (Нажимаем ESC, затем Shift + Z + Z ).

Рестартуем сервис Apache

Развертывание приложения

Копируем приложение на сервер

Предположим , что архив нашего приложения (application.zip) расположен в папке E:\Putty . Запустим командную строку Windows и выполним нижеследующую команду :

После завершения копирования, файл с архивом приложения появится в папке /tmp


Разархивируем приложение

Разархивируем application.zip в папку /var/www/html . Для этого, в командной строке выполним нижеследующую команду :

Переходим в папку /var/www/html и проверяем содержимое


Удаляем файл Web.config так как он используется для ОС Windows и переименовываем файл Web.config.linux в Web.config . Для этого выполним нижеследующие команды :


Тестируем работоспособность

Обратимся из браузера к развернутому web- приложению. Если все настроено правильно, увидим примерно такой результат (зависит от приложения, которое Вы размещали).


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

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

Также для работы с сайтом необходима система управления контентом (CMS), веб интерфейс для управления базами данных и возможность доступа по FTP.

Рассмотрим процесс установки и настройки распространенной связки Apache-PHP-MySQL(MariaDB) в операционной системе Linux. Дополнительно будут установлены ftp-сервер vsftpd, веб-интерфейс для управления базой данных phpMyAdmin и система управления контентом Wordpress.

Для начала работы, следует заказать VPS или выделенный сервер. В данной статье примеры выполнены на виртуальном сервере со статическим публичным IP-адресом под управлением Ubuntu Server 18.04. Команды выполняются от имени суперпользователя.

1. Установка

apt install apache2

Установка и настрйока HTTP-сервера

2. Создание тестовой страницы

По умолчанию корневым каталогом для размещения сайта является директория “/var/www/html”, именно там находится страница приветствия. Создадим отдельную директорию “/var/www/sites” для размещения виртуальных хостов и вложенную папку “/var/www/sites/site1” с индексной страницей тестового сайта.

cd /var/www/
mkdir -p sites/site1
echo "<H1>Welcome</H1>" > sites/site1/index.html

В результате файл “/var/www/sites/site1/index.html” будет содержать одну html-строку:

3. Конфигурация Apache-сервера

Конфигурационные файлы сайтов находятся в каталоге “/etc/apache2/sites-available/”. Создадим конфигурационный файл для нового виртуального хоста взяв за основу конфигурацию по умолчанию из файла “000-default.conf”

cd /etc/apache2/sites-available/
cp 000-default.conf site1.conf

Откроем файл “site1.conf” и изменим параметр “DocumentRoot”. В качестве значения нужно указать путь к новому сайту, в нашем случае это “/var/www/sites/site1”

Настрйока и конфигурация Apache-сервера

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

a2dissite 000-default
a2ensite site1
systemctl reload apache2

Настройка HTTP-сервера

Настройка FTP-сервера

1. Установка

Устанавливаем ftp-сервер и дополнительный пакет “db-util”, который потребуется для настройки виртуальных пользователей.

apt install vsftpd db-util

2. Создание локальной учетной записи

Сервер vsftpd позволяет очень гибко настраивать права доступа. Для решения наших задач ftp-пользователям необходимо обеспечить следующие возможности:

  • полный доступ к содержимому директории “/var/www/sites/”;
  • невозможность выхода за пределы директории “/var/www/”;
  • подключение с использованием виртуальной учетной записи;

Создадим локальную учетную запись “virtual” без возможности входа в систему, с домашней директорией “/var/www/”. Эта учетная запись будет использоваться для подключения виртуальных ftp-пользователей.

useradd -d /var/www virtual

По умолчанию, владельцем директории “/var/www” является “root”. Для того, того, чтобы ftp-пользователи могли изменять содержимое сайтов, изменим владельца каталога “/var/www/sites/”, включая вложенные папки на “virtual”.

chown -R virtual:root /var/www/sites

В результате изменения прав, пользователь “virtual” сможет просматривать содержимое каталога “/var/www/” и записывать во вложенный каталог “/var/www/sites/”

3. Конфигурация

Основная конфигурация хранится в файле “/etc/vsftpd.conf”, приводим его к следующему виду:

4. Создание базы данных

База данных необходима для хранения виртуальных учетных записей.

Предварительно создадим в домашнем каталоге простой текстовый файл “users.txt” и запишем логины и пароли виртуальных пользователей в чередующиеся строки. Например нам нужен виртуальный пользователь с логином “ftp” и паролем “Qwe123”, тогда содержимое файла будет таким:

Создаем базу данных

db_load -T -t hash -f

Меняем стандартное содержимое PAM файла “/etc/pam.d/vsftpd” на следующие строки.

auth required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd_login

Обратите внимание, что в различных дистрибутивах расположение библиотеки “pam_userdb.so” может отличаться, при необходимости путь к файлу нужно скорректировать.

Для применения изменений перезагружаем vsftpd сервер.

systemctl restart vsftpd

Настройка FTP-сервера завершена.

Данные для подключения:

  • ftp://[ip_адрес_сервера]
  • Логин: ftp
  • Пароль: Qwe123

Настройка PHP-сервера

1. Установка

На текущий момент последней стабильной версией PHP является php 7.4.5, которая отсутствует в официальных репозиториях Ubuntu. Подключим сторонний репозиторий и установим последнюю версию PHP.

apt update
apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt update
apt install php7.4

2. Проверка

Для того, чтобы PHP код мог быть исполнен, файл веб страницы должен иметь расширение “.php”. Переименовываем тестовою страницу

cd /var/www/sites/site1/
mv index.html index.php

Добавляем в файл “/var/www/sites/site1/index.php” строку php-кода. В результате содержимое файла будет таким:

Сохраняем изменения и проверяем результат в браузере.

Настройка PHP-сервера

Если вы видите результат работы функции “phpinfo()”, значит интерпретатор PHP работает корректно. Приступаем к следующему этапу.

Настройка MySQL (MariaDB)

1. Установка

Устанавливаем MariaDB и PHP-модуль для работы с MySQL, после завершения установки перезагружаем Apache

apt install mariadb-server php-mysql
systemctl restart apache2

Для проверки обновим тестовую страницу и в таблице с конфигурацией PHP и перейдем к разделу PDO. Наличие секции “PDO_mysql” говорит о корректной установке драйвера для работой с базой данных Mysql.

Настройка и установка MySQL на сервер

Для дальнейшей работы необходимо выполнить первоначальную настройку безопасности MariaDB, во время которой для пользователя “root” устанавливается пароль, запрещается удаленный вход и удаляются гостевые учетные записи.

На первом шаге необходимо ввести пароль пользователя "root" для входа в СУБД или нажать Enter, если пароль не задан. Так как после установки учетная запись "root" не имеет пароля, нажимаем “Enter”.

Обратите внимание, что в MariaDB существуют собственные учетные записи, которые не имеют отношения к учетным записям операционной системы. Речь идет о пользователе "root" в MariaDB.

 MySQL: Создание пользователя и установка пароля

Далее конфигуратор предложит задать пароль для пользователя root, нажимаем “y” для подтверждения и вводим новый пароль, в нашем случае “Qwe123”

 MySQL: установка пароля и доступа пользователей

На все последующие запросы просто нажимаем “y” до окончания настройки.

Данные для входа в MariaDB:

Настройка phpMyAdmin

1. Установка

Устанавливаем обязательное PHP-расширение mbstring.

apt install php-mbstring

В официальном репозитории размещена устаревшая версия phpMyAdmin, поэтому выполним установку в ручном режиме.

Копируем архив на сервер в каталог “/var/www/sites/” используя любой ftp-клиент.

Распаковываем архив, и для удобства, переименовываем извлеченную папку в “phpMyAdmin”. Для распаковки zip-архива предварительно установим утилиту “unzip”. После распаковки архив можно удалить.

apt install unzip
cd /var/www/sites/
unzip phpMyAdmin-5.0.2-all-languages.zip
mv phpMyAdmin-5.0.2-all-languages phpMyAdmin
rm phpMyAdmin-5.0.2-all-languages.zip

Создаем папку “/var/www/sites/phpMyAdmin/tmp” для хранения временных файлов с полными доступом для всех. Если этого не сделать phpMyAdmin сообщит об отсутствии доступа в временной папке.

cd /var/www/sites/phpMyAdmin/
mkdir tmp
chmod 777 tmp

2. Создание псевдонима

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

Открываем файл “/etc/apache2/mods-available/alias.conf” и вставляем строку

Alias /pma “/var/www/sites/phpMyAdmin"

<IfModule alias_module>
</IfModule>

Создание псевдонима в phpMyAdmin

Перезагружаем конфигурацию Apache для применения изменений.

systemctl reload apache2

3. Подготовка базы данных

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

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

Создадим учетные записи

mariadb -u root -p

GRANT ALL PRIVILEGES ON *.* TO 'pma'@'localhost' IDENTIFIED BY 'Qwe123' WITH GRANT OPTION;

GRANT SELECT, INSERT, UPDATE, DELETE ON `phpmyadmin`.* TO 'pmaservice'@'localhost' IDENTIFIED BY 'Qwe123' WITH grant option;

Обратите внимание, что имя базы данных во втором запросе заключено в обратные апострофы: “… ON `phpmyadmin`.* TO 'pma'@'localhost' IDENTIFIED BY …”,

В результате в MariaDB будет создано две учетные записи:

  1. Логин: pma, пароль: Qwe123
    Учетная запись имеет полные права и будет использоваться для входа в phpMyAdmin
  2. Логин: pmaservice, пароль:Qwe123
    Служебная учетная запись необходимая для работы дополнительных функций.

На следующем шаге эти учетные данные должны быть указаны в конфигурационном файле “config.inc.php”

Далее необходимо импортировать базу данных из файла “phpMyAdmin/sql/create_tables.sql”. Выполним импорт средствами phpMyAdmin.

Вводим логин “pma”, пароль “Qwe123”

Переходим на вкладку “Импорт”, нажимаем кнопку “Выберите файл” и выбираем файл ”sql/create_tables.sql” в корневой директории phpMyAdmin. Предполагается что на локальном компьютере существует папка с файлами “phpMyAdmin”, если необходимо, распакуйте архив.

Настройка phpmyadmin

4. Конфигурация

Копируем файл конфигурации из шаблона

cd /var/www/sites/phpMyAdmin/
cp config.sample.inc.php config.inc.php

Открываем конфигурационный файл “/var/www/sites/phpMyAdmin/config.inc.php” и вносим следующие изменения:

  1. Задаем произвольное значение длиной 32 символа для параметра “$cfg['blowfish_secret']”. Можно воспользоваться любым генератором паролей.
  2. Снимаем комментарии со всех строк раздела “phpMyAdmin configuration storage settings” и указываем для параметров “controluser” и “controlpass” логин и пароль служебной учетной записи MariaDB, созданной на предыдущем шаге. В нашем случае логин - pmaservice, пароль - Qwe123

Сохраняем изменения. Настройка завершена.

Данные для входа в phpMyadmin:

Установка и настройка WordPress на сервер Linux

1. Размещение файлов дистрибутива WP

Установка Wordpress на сервер: скачиваем дистрибутив WP

Установка Wordpress на сервер: скачиваем дистрибутив WP

Загружаем архив на сервер в каталог “/var/www/sites/” и распаковываем, файлы будут извлечены в папку “wordpress”.

Копируем содержимое папки “/var/www/sites/wordpress/” в корневую директорию сайта “/var/www/sites/site1/”

Так как копирование файлов выполнялось из консоли с root-правами еще раз изменяем владельца каталога “/var/www/sites/”, включая содержимое на virtual. Это нужно для восстановления полного доступа при подключении через ftp-клиент.

cd /var/www/sites/
tar -xzvf wordpress-5.4-ru_RU.tar.gz
cp -R wordpress/* site1/
chown -R virtual:root /var/www/sites

2. Создание базы данных для WordPress

Создание базы данных для WordPress

Выделяем в левой части окна созданную БД и нажимаем кнопку “Привилегии”

Создание базы данных для WordPress

Далее нажимаем “Добавить учетную запись пользователя”.

Добавляем учетную запись пользователя в базе данных для WordPress

3. Конфигурация WP на сервере под Linux

Переходим в корневую директорию сайта и копируем из шаблона конфигурационный файл.

cd /var/www/sites/site1/
cp wp-config-sample.php wp-config.php

Открываем файл “wp-config.php” и вводим параметры подключения к базе данных, созданной на предыдущем шаге и сохраняем изменения.

Настройка базы данных для WordPress

4. Установка CMS WordPress

Заполняем предложенные поля и нажимаем “Установить WordPress” Имя пользователя и пароль указываем произвольные, в нашем случае логин - wpadmin, пароль - Qwe123

Часто ли вам приходится пользоваться сайтами-файлообменниками? А хотите иметь свой собственный файлообменник? В этом руководстве мы изучим, как производится установка и настройка сервера Seafile для.

Как развернуть свое Docker хранилище в Ubuntu 20.04

В данном руководстве мы изучим, как развернуть своё собственное Docker хранилище на сервере, работающем под управлением Ubuntu 20.04. Хранилище Docker представляет из себя приложение, которое.

Хостинг своего сайта при помощи Caddy в Ubuntu 20.04

Как установить PostgreSQL и pgAdmin4 в Ubuntu 20.04

В данном руководстве мы ознакомимся с установкой PostgreSQL 12, реляционной объекто-ориентированной системой управления базами данных (СУБД). А также, мы проинсталлируем pgAdmin4, инструментарий для работы с.

Как установить MongoDB на CentOS Stream

Как установить Apache Kafka на CentOS Stream

Как установить и использовать ClickHouse на CentOS Stream

Обзор облачного хранения данных в OpenStack Swift

Введение Проект OpenStack Swift предлагает нам программную инфраструктуру для организации облачного хранилища. Данная инфраструктура реализует полную абстракцию логической организации хранения данных от их физического размещения.

Установка OpenStack на одном сервере с Ubuntu 20.04 LTS

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

Как установить GitLab на CentOS Stream

В данном руководстве рассмотрим то, как установить Gitlab на сервер, работающий под управлением CentOS Stream. Настройка брандмауэра Во-первых, для того, чтобы ваш домен был доступен.

Как установить Node.js на CentOS Stream

Как сбросить пароль пользователя root в СУБД MySQL или MariaDB на ОС Ubuntu 20.04

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

Как установить стек LAMP на сервер CentOS Stream

В данном руководстве мы рассмотрим как установить стек LAMP (Linux, Apache, MySQL, PHP) на CentOS Stream, что так же справедливо будет и для CentOS 8.

Как установить Java на CentOS Stream

Этот мануал поможет вам установить Java на CentOS Stream. В ходе рассмотрения предмета статьи мы будем устанавливать две основные последние версии Java. В репозитории CentOS.

Как установить Discourse на Ubuntu 20.04

Вам нужен форум на ваш сайт? Или чат? Или вы хотите управлять рассылками? Вам подойдёт платформа Discourse. Это бесплатный движок с открытым исходным кодом, который.

Как установить LAMP на CentOS Stream

В данном руководстве пойдёт речь о том, как установить LAMP на операционную систему CentOS Stream. Аббревиатурой LAMP называют набор опенсорсного программного обеспечения, который необходимо развернуть.

Как установить веб-фреймворк Django на Ubuntu 20.04

Django – популярная платформа на языке Python. Этот фреймворк используют веб-разработчики для создания сайтов. Он представляет из себя набор компонентов, необходимых для разработки веб-приложений, которые позволяют.

Как установить Java с apt на Ubuntu 20.04

Рассмотрим как установить Java с apt в различных его реализациях, таких как Java Runtime Environment (JRE) и Java Developer Kit (JDK). Небольшая справка: JavaRuntimeEnvironment (JRE).

Как установить MySQL на Ubuntu 20.04

Как установить Node.js на Ubuntu 20.04

Node.js – это кросс-платформенная среда JavaScript с открытым исходным кодом, предназначенная для разработки как серверных, так и сетевых приложений на JavaScript. Изначально, JavaScript можно было.

Как установить phpMyAdmin на Ubuntu 20.04

Это подробная и пошаговая инструкция, как установить и настроить phpMyAdmin. Вам потребуется: Сервер Ubuntu 20.04, который должен иметь пользователя без прав root с правами администратора.

Как перенести сайт WordPress на VPS

Перенести сайт на WordPress с виртуального хостинга на VPS очень просто. С такой задачей сталкиваются многие, когда возникает необходимость в увеличении ресурсов и мощностей для.

Как настроить выделенный сервер CS:GO

Это статья о том как настроить выделенный сервер CS:GO (Counter-Strike: Global Offensive) на виртуальном сервер RUVDS. Свой сервер позволит играть с друзьями и знакомыми через.

Как настроить VPN, используя OpenVPN и Streisand

Эта пошаговое руководство, как настроить VPN на сервере RUVDS с минимальными усилиями. Мы будем настраивать OpenVPN на сервере с Ubuntu 16.04, используя скрипт Streisand. Метод.

Легкая установка WordPress на виртуальный сервер

WordPress представляет собой систему управления сайта с открытым исходным кодом. Для быстрой установки WordPress на VPS с ОС Linux, предлагаем использовать маркетплейс RUVDS с образом.

Быстрая установка и использование Docker в Ubuntu 18.04

Установка торгового терминала MetaTrader 4 (MT4) и торгового робота на виртуальный сервер

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

Установка торгового терминала на виртуальный сервер

Преимущества торговли на виртуальных серверах VPS от RuVDS: Вам не нужно все время находиться перед компьютером, VPS сервер всегда находится в режиме онлайн и ваш.

Читайте также: