Гид по технологиям

Как установить кодовую базу Gallery2 на сервере с ISPConfig

• 10 min read • Инфраструктура • Обновлено 27 Nov 2025
Установка кодовой базы Gallery2 на ISPConfig
Установка кодовой базы Gallery2 на ISPConfig

Version 1.0
Author:

Введение

Gallery2 — веб-приложение для управления фотографиями на вашем сайте. Это руководство объясняет, как установить кодовую базу (codebase) Gallery2 на сервер под управлением ISPConfig. Кодовая база — это центральная директория с файлами Gallery2, которая обслуживает множество лёгких «multisite» установок.

Примечание: как настроить мультисайт описано в отдельном руководстве «Howto setup a Gallery2 multisite on an ISPConfig server».

Краткие термины

  • codebase — директория с файлами Gallery2 (несколько мегабайт). Одна кодовая база обслуживает любое количество multisite-установок. Должна быть доступна по интернету.
  • multisite — лёгкая установка Gallery2, зависящая от общей codebase. Содержит только несколько файлов (main.php, index.php, embed.php, upgrade/index.php, lib/support/index.php, config.php и опционально .htaccess).

Краткая 1‑строчная дефиниция: multisite — это «тонкая» установка, использующая центральную кодовую базу, для быстрого развёртывания отдельных сайтов с минимальным дисковым потреблением.

Преимущества схемы кодовой базы + multisite

  • Экономия дискового пространства: только одна полная копия Gallery2 хранится в codebase. Каждая мультисайт-установка занимает лишь килобайты плюс фотографии.
  • Проще обновлять: замените codebase на новую версию — затем посетите каждую мультисайт-установку для локального обновления. Кодовая база обновляется один раз.
  • Изолированность: multisite-установки независимы с точки зрения пользователей, альбомов и прав.

Пример конфигурации, используемый в руководстве

Перед началом — требуемое и полезное

Обязательные элементы:

  • Доступ в ISPConfig с правами администратора.
  • root-доступ по SSH к серверу.
  • Включённые MySQL и PHP для сайта в ISPConfig.
  • Возможность загружать файлы на веб-каталог (FTP/SFTP/ISPConfig файловый менеджер).

Рекомендуется:

  • Резервная копия текущего веб-контента.
  • HTTPS (SSL) для хоста codebase.
  • Понимание прав файловой системы на сервере (www-data или другой пользователь Apache/nginx).

Шаг 1 — Создать сайт в ISPConfig для кодовой базы

  1. В ISPConfig через меню выберите «Новый сайт» (New site).
  2. На вкладке «Базовые» (Basis) укажите: hostname = gallery, domain = hostingcompany.tld.
  3. Включите MySQL и PHP-скрипты для этого сайта. Отключите PHP Safe Mode, если он включён.

Важно: настройки UI в ISPConfig могут отличаться по локализации. Следуйте названиям полей в вашей версии панели.

Шаг 2 — Создать администратора сайта (FTP/SFTP-пользователя)

  1. В главном меню ISPConfig выберите «ISP Manager».
  2. В дереве структуры выберите новый сайт (например gallery.hostingcompany.tld).
  3. Перейдите на вкладку «Пользователь и почта» (User and Email).
  4. Нажмите «Новый» и создайте пользователя, задав email.
  5. Дайте этому пользователю права администратора сайта и сохраните.

Этот пользователь позволит загружать файлы и управлять сайтами через FTP/SFTP.

Шаг 3 — Создать базу данных MySQL для сайта

  1. Перейдите на вкладку «Опции» (Options) сайта в ISPConfig.
  2. Создайте новую базу данных. ISPConfig выдаст параметры, например:

Database name: web1_db1
Database user: web1_u1
Database password: mypassword

  1. Введите пароль для пользователя базы данных и нажмите «Сохранить».

Запишите эти данные — они понадобятся при установке Gallery2.

Шаг 4 — Скачивание и распаковка Gallery2 в веб-каталог

Подключитесь к серверу под root и перейдите в веб-каталог сайта (пример):

cd /var/www/web1/web/

Скачайте последнюю «typical» сборку Gallery2. В примере версия 2.1.2:

wget http://surfnet.dl.sourceforge.net/sourceforge/gallery/gallery-2.1.2-typical.tar.gz

Примечание: выберите ближайший зеркальный сервер SourceForge при необходимости.

Распакуйте архив и удалите tar.gz-файл:

tar xvfz gallery-2.1.2-typical.tar.gz
rm *.tar.gz

Обычно распаковка создаёт папку gallery2. Переместите содержимое в корень сайта и удалите пустую папку:

cd gallery2
mv * ../
cd ../
rmdir gallery2

Удалите дефолтную index.html (если она есть):

rm index.html

Проверьте права и владельца файлов — веб-сервер должен иметь доступ для чтения к PHP‑файлам.

Шаг 5 — Создать директорию хранения (g2data)

Gallery2 хранит загружаемые фотографии и кэш в отдельной директории. Создайте её и назначьте владельца веб-сервера:

mkdir g2data
chown -R www-data:www-data g2data

Если ваш веб-процесс работает под другим пользователем (например wwwrun, apache), используйте соответствующего владельца.

Важно: g2data должна быть записываемой для веб-сервера.

Шаг 6 — Запуск инсталлятора Gallery2 (создание codebase)

Откройте браузер и перейдите на URL вашего сайта codebase, например:

http://gallery.myhostingcompany.tld

Вы будете перенаправлены на инсталлятор: http://gallery.myhostingcompany.tld/install/

Пошагово через инсталлятор

  1. Выберите язык и нажмите «Begin Installation» (Начать установку).
  2. На экране появится случайный код аутентификации (выделен красным).
  3. На сервере в /var/www/web1/web создайте пустой файл login.txt и вставьте туда этот код.
cd /var/www/web1/web
nano login.txt   # вставьте код из инсталлятора
  1. В инсталляторе нажмите Authenticate Me. Если аутентификация успешна — Continue to Step 2.

  2. Step 2: Система проверит нужные настройки. Если все OK — Continue to Step 3.

  3. Step 3: Выберите тип установки — Standard (Стандартная), так как мы создаём codebase. Continue to Step 4.

  4. Step 4: Установка проверит права папки g2data. Если вы уже сделали chown, нажмите Save и Continue to Step 5.

  5. Step 5: Введите параметры базы данных:

    • MySQL database name: web1_db1
    • MySQL username: web1_u1
    • MySQL user password: (введите ранее заданный пароль)

    Нажмите Save и Continue to Step 6.

  6. Step 6: Создайте администратора Gallery2 (логин, email, пароль). Нажмите Create и Continue to Step 7.

  7. Step 7: Инсталлятор попытается создать config.php. На сервере создайте пустой файл и дайте права на запись для Apache:

cd /var/www/web1/web
touch config.php
chmod 666 config.php
Затем в браузере нажмите Create config file. Если успешно — Continue to Step 8.
  1. Step 8: Кодовая база устанавливается. Если успешно — Continue to Step 9.

  2. Step 9: Установка модулей. Поскольку мы создаём только codebase, снимите галочки или нажмите «(un)check all», затем Continue to step 10 Without Activating.

  3. Step 10: Проверьте права доступа и следуйте инструкциям на экране. На сервере выполните (как root):

chmod 755 /var/www/web1/web
chmod 644 /var/www/web1/web/config.php
После этого в браузере нажмите Check Again. Если проверки пройдены — Continue to Step 11.
  1. Step 11: Завершение установки. Нажмите Go to my Gallery!

Поздравляем — у вас установлен Gallery2 codebase.

Что делать после установки codebase

  • Проверьте, что вход администратора работает.
  • Создайте тестовый альбом и загрузите фото, чтобы убедиться в работоспособности.
  • Настройте резервное копирование g2data и базы данных.

Типовые команды и проверка прав

Проверка владельца и прав:

ls -la /var/www/web1/web
ls -la /var/www/web1/web/g2data

Рекомендованные базовые права:

  • Веб-каталог: 755
  • config.php: 644 после создания
  • g2data: владелец — веб-процесс, права на запись для владельца

Если вы используете SELinux, убедитесь, что контексты файлов позволяют веб-серверу писать в g2data.

Альтернативные подходы и варианты

  • Использовать символьные ссылки: можно держать фактическую codebase в отдельном каталоге и делать symlink из корня сайта. Это удобно для централизованного управления версиями.
  • Поместить codebase за корень веб-документа и пробрасывать доступ через точку входа. Это повышает безопасность — PHP‑файлы не должны быть доступны напрямую.
  • Контейнеризация: развернуть Gallery2 в Docker-контейнере и использовать общий том для codebase и g2data.

Когда мультисайт‑подход не подходит:

  • Если требуется полная изоляция файлов каждой установки (например, разная конфигурация модулей и версий), лучше делать независимые установки.
  • Если вы ожидаете особую нагрузку с высокой модификацией кода для отдельных клиентов, разделённые инсталляции дают большую гибкость.

Безопасность и жёсткое укрепление (hardening)

  • Переместите g2data в каталог, недоступный через веб, если возможно, и укажите путь в конфиге.
  • Ограничьте права на config.php: chmod 644 после создания. Не храните config.php в записи для всех.
  • Включите HTTPS (Let’s Encrypt) для site codebase.
  • Отключите отображение ошибок PHP на production.
  • Настройте регулярные резервные копии базы данных и g2data.
  • Ограничьте доступ к панели ISPConfig внешне (IP‑фильтры, VPN).

Резервное копирование и восстановление

Резервная стратегия должна покрывать:

  • Полный дамп MySQL базы (например с помощью mysqldump).
  • Архивирование каталога g2data.
  • Архив конфигурационных файлов сайта (config.php, .htaccess).

Пример команд для дампа БД и архива g2data:

mysqldump -u web1_u1 -p web1_db1 > /root/backup/web1_db1_$(date +%F).sql
tar czf /root/backup/g2data_$(date +%F).tar.gz /var/www/web1/web/g2data

Критерии приёмки: после восстановления сайт должен открываться, администратор может войти, тестовый альбом доступен.

Обновление codebase и сценарий отката (rollback)

Рекомендованный порядок при обновлении codebase:

  1. Сделайте полную резервную копию базы и g2data.
  2. Поставьте read-only или временно отключите доступ к сайту (maintenance).
  3. Замените файлы codebase на новую версию в отдельной директории.
  4. Проверьте локально на тестовом multisite.
  5. Смените symlink или скопируйте новую версию в production.
  6. Просмотрите логи и выполните 1–2 контрольных multisite-апдейта.

Откат: верните старую кодовую базу из резервной копии и восстановите базу данных, если обновление изменяло схему.

Отладка — частые ошибки и решения

Проблема: инсталлятор не может аутентифицировать (Authenticate Me не проходит).

  • Проверьте, что файл login.txt создан в /var/www/web1/web и содержит точный код.
  • Проверьте права на login.txt — веб‑сервер должен иметь доступ для чтения.

Проблема: ошибка подключения к базе данных.

  • Проверьте корректность имени БД, имени пользователя и пароля.
  • Проверьте, что MySQL доступен и пользователь имеет привилегии на БД.

Проблема: файлы не создаются (config.php не создан автоматически).

  • Убедитесь, что вы предварительно создали пустой config.php и дали chmod 666 перед выполнением шага создания файла в инсталляторе.
  • После создания установите строгие права: chmod 644 config.php.

Проблема: невозможность записать в g2data.

  • Проверьте владельца g2data: chown -R www-data:www-data g2data.
  • Проверьте SELinux/AppArmor ограничения.

Чек-листы по ролям

Администратор сервера (root):

  • Создать сайт в ISPConfig.
  • Создать MySQL базу и пользователя.
  • Скопировать файлы Gallery2 в веб-каталог.
  • Настроить владельцев и права на g2data и config.php.
  • Настроить резервные копии и SSL.

Владелец сайта (админ Gallery2):

  • Пройти инсталляцию через веб-интерфейс.
  • Создать администратора Gallery2 и тестовый альбом.
  • Проверить загрузку изображений и отображение миниатюр.

Разработчик/оператор:

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

Мини‑методология для развёртывания (Playbook)

  1. Подготовка: резервная копия, SSL, проверка зависимостей.
  2. Развёртывание: загрузка файлов, создание g2data, права.
  3. Инсталляция: пройти все шаги инсталлятора.
  4. Тестирование: создать альбом, загрузить фото.
  5. Мониторинг: проверить логи и производительность.

Decision flow (простая схема выбора подхода)

flowchart TD
  A[Нужна общая кодовая база?] -->|Да| B[Использовать codebase + multisite]
  A -->|Нет| C[Разделённые установки]
  B --> D{Требуется изоляция модулей?}
  D -->|Да| C
  D -->|Нет| E[Разворачивать multisite]
  C --> F[Отдельная установка каждой инстанции]

Совместимость и миграция

  • Gallery2 — устаревшее приложение; перед миграцией на более новый сервер проверьте совместимость PHP и MySQL.
  • При переносе на другой сервер скопируйте codebase и g2data, экспортируйте и импортируйте базу данных, исправьте пути в config.php при необходимости.

Конфиденциальность и GDPR (кратко)

  • Если вы храните фотографии пользователей, учтите требования к личным данным: получите согласие, предусмотрите механизм удаления данных по запросу, ограничьте доступ к приватным альбомам.
  • Настройте политику резервных копий и шифрование на уровне хранения при необходимости.

FAQ (частые вопросы)

Q: Можно ли установить codebase вне веб-каталога?
A: Да. Поместите codebase в каталог вне DocumentRoot и настройте веб-точку входа или symlink. Это повышает безопасность.

Q: Нужно ли создавать отдельную базу для каждого multisite?
A: Обычно да — каждая multisite использует свою базу или префикс, чтобы сохранять независимость данных.

Q: Что делать, если обновление codebase сломало multisite?
A: Откатите codebase до рабочей версии и восстановите базу из бэкапа, затем проведите тестовое обновление на подмножествах.

1‑строчный глоссарий

  • codebase: центральная директория с файлами Gallery2.
  • multisite: лёгкая установка, использующая общую codebase.
  • g2data: каталог хранения загружаемых изображений и кэша.

Итог и рекомендации

Кодовая база Gallery2 позволяет централизовать файлы и экономить дисковое пространство при одновременном упрощении обновлений. Следуйте порядку в этом руководстве: подготовьте сайт в ISPConfig, настройте пользователя и базу данных, скачайте и распакуйте Gallery2, создайте g2data и установите права, затем пройдите веб‑инсталлятор. После установки настройте резервное копирование, HTTPS и регулярное тестирование обновлений.

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

Полезные ссылки:

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро