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

Установка ProjectSend на Ubuntu 20.04 с Apache и Let's Encrypt

• 6 min read • DevOps • Обновлено 24 Nov 2025
ProjectSend на Ubuntu 20.04 — Apache и Let's Encrypt
ProjectSend на Ubuntu 20.04 — Apache и Let's Encrypt

Логотип ProjectSend

О ProjectSend

ProjectSend — свободное и открытое веб-приложение для обмена файлами и изображениями между компанией и клиентами. Приложение ориентировано на работу с клиентами: позволяет загружать и хранить файлы практически любого размера (в пределах настроек сервера), использует PHP и базу данных MySQL/MariaDB для хранения метаданных. Ключевые возможности: статистика в реальном времени, саморегистрация пользователей, настраиваемые шаблоны писем и прочее.

Важно: ProjectSend хранит файлы на диске сервера, а в базе — только метаданные. Планируйте резервное копирование и контроль прав доступа на системном уровне.

Что потребуется

  • Сервер с Ubuntu 20.04 (x86_64 или совместимая архитектура).
  • Домен, указывающий на IP сервера (A-запись).
  • Пароль root или пользователь с sudo-привилегиями.
  • Базовые навыки работы в терминале и редактирования файлов (nano/vi).

Краткая стратегия установки

  1. Обновить систему.
  2. Установить LAMP-стек и необходимые расширения PHP.
  3. Настроить PHP (память, загрузки, таймзоны).
  4. Создать базу данных и пользователя в MariaDB.
  5. Скачать ProjectSend, настроить конфигурацию и права.
  6. Настроить виртуальный хост Apache.
  7. Установить и включить сертификат Let’s Encrypt через certbot.

Подготовка системы

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

apt-get update -y
apt-get upgrade -y

Примечание: команда apt-get upgrade может потребовать дополнительного ввода. На продакшен-серверах перед обновлением рекомендуем проверять список изменяемых пакетов.

Установка LAMP (Apache, MariaDB, PHP и расширения)

Установите Apache, MariaDB, ImageMagick и необходимые расширения PHP (включая модуль для работы с изображениями):

apt-get install apache2 mariadb-server imagemagick php libapache2-mod-php php-imagick php7.4-common php7.4-mysql php7.4-gd php7.4-json php7.4-curl php7.4-zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-intl php7.4-bcmath php7.4-gmp

После установки откройте файл php.ini для Apache и отредактируйте параметры производительности и загрузки файлов:

nano /etc/php/7.4/apache2/php.ini

Найдите и измените (или добавьте) следующие параметры:

memory_limit = 512M
upload_max_filesize = 32M
max_execution_time = 300
date.timezone = Asia/Kolkata

Важно: при необходимости замените date.timezone на ваш собственный часовой пояс (например, Europe/Moscow). Эти параметры влияют на максимальный размер загружаемых файлов, время выполнения скриптов и потребление памяти.

Сохраните изменения и перезапустите Apache:

systemctl restart apache2

Проверьте статус сервиса:

systemctl status apache2

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

Войдите в MariaDB (под root или пользователем с соответствующими правами):

mysql

Внутри клиента MariaDB выполните команды создания базы и пользователя. Замените ‘password’ на надёжный пароль:

MariaDB [(none)]> create database projectsend;
MariaDB [(none)]> create user projectsend@localhost identified by 'password';
MariaDB [(none)]> grant all privileges on projectsend.* to projectsend@localhost;
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

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

Загрузка и настройка ProjectSend

Скачайте архив с официального сайта (ссылка в примере указывает версию 387 — используйте актуальную ссылку, если она изменилась):

wget -O projectsend.zip https://www.projectsend.org/download/387/

Распакуйте в корень веб-документов Apache:

unzip projectsend.zip -d /var/www/html/projectsend

Перейдите в директорию includes и создайте рабочий конфиг на основе примера:

cd /var/www/html/projectsend/includes
cp sys.config.sample.php sys.config.php
nano sys.config.php

В файле sys.config.php укажите параметры подключения к базе данных (оставьте DB_DRIVER = ‘mysql’, если используете MariaDB/MySQL):

define('DB_DRIVER', 'mysql');

/** Database name */
define('DB_NAME', 'projectsend');

/** Database host (in most cases it's localhost) */
define('DB_HOST', 'localhost');

/** Database username (must be assigned to the database) */
define('DB_USER', 'projectsend');

/** Database password */
define('DB_PASSWORD', 'password');

Сохраните файл и назначьте корректные права и владельца:

chown -R www-data:www-data /var/www/html/projectsend
chmod -R 775 /var/www/html/projectsend
chmod 644 /var/www/html/projectsend/includes/sys.config.php

Примечание: права 775 дают владельцу и группе (www-data) полный доступ, а другим пользователям — чтение и выполнение. При жёстких требованиях безопасности можно дополнительно ограничить права.

Настройка Apache для ProjectSend

Создайте виртуальный хост:

nano /etc/apache2/sites-available/projectsend.conf

Вставьте конфигурацию и отредактируйте ServerName и ServerAdmin под ваши значения:


ServerAdmin admin@example.com
DocumentRoot /var/www/html/projectsend/
ServerName projectsend.example.com

Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all

ErrorLog /var/log/apache2/example.com-error_log
CustomLog /var/log/apache2/example.com-access_log common

Включите модуль rewrite и сайт, затем перезапустите Apache:

a2enmod rewrite
a2ensite projectsend.conf
systemctl restart apache2

Проверьте логи при ошибках: /var/log/apache2/example.com-error_log и /var/log/apache2/example.com-access_log.

Первый запуск в веб-интерфейсе

Откройте в браузере http://projectsend.example.com (замените домен на ваш). Вы увидите страницу установки, где нужно указать: название сайта, URL, логин администратора и пароль. Примерные скриншоты установки:

ProjectSend setup

Заполните форму установки и нажмите Install. Затем следуйте подсказкам установки базы данных и авторизации.

Установка базы данных ProjectSend

После успешной установки войдите через форму логина:

Вход администратора ProjectSend

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

Панель ProjectSend

Защита сайта с помощью Let’s Encrypt SSL

Рекомендуется сразу включить HTTPS. Установите certbot для автоматического получения и установки сертификата с интеграцией Apache:

apt-get install python3-certbot-apache -y

Запустите certbot и следуйте интерактивным подсказкам (введите e‑mail, примите условия):

certbot --apache -d projectsend.example.com

Certbot настроит vhost для SSL и предложит опцию перенаправления HTTP на HTTPS. Выберите редирект (2), если уверены, что сайт полностью работает по HTTPS. После завершения вы увидите путь к файлам сертификата в /etc/letsencrypt/live/<ваш-домен>/.

Важно: certbot автоматически создаёт cron/сервис для продления сертификата; всё же проверьте периодически вывод “certbot renew –dry-run” для уверенности в автоматическом обновлении.

Проверка и отладка

Частые проверки после установки:

  • Проверка прав на директории загрузки: веб-сервер должен иметь запись в папке uploads.
  • Проверка логов Apache: /var/log/apache2/*. Если возникают ошибки 500, смотрите error_log.
  • Проверка соединения с базой: попробуйте подключиться к базе из командной строки и убедиться, что учётные данные корректны.
  • Проверка PHP-расширений: убедитесь, что установлены php-imagick, php-mysql и mbstring.

Команды для быстрой диагностики:

systemctl status apache2
journalctl -u apache2 --since "10 minutes ago"
mysql -u projectsend -p -e "SHOW DATABASES;"
php -m | grep -E "mysql|gd|imagick|mbstring"

Рекомендации по безопасности и эксплуатации

  • Регулярно обновляйте ОС, PHP и ProjectSend до актуальных патчей.
  • Перемещайте резервные копии файлов и дампов базы на отдельный сервер или в облачное хранилище.
  • Ограничьте доступ к административной панели по IP, если это возможно.
  • Отключите отображение ошибок в продакшене (display_errors = Off в php.ini).
  • Используйте сильные пароли и при возможности двухфакторную аутентификацию (если поддерживается).

Чеклист запуска (роль / задача)

  • Системный администратор:

    • Обновил пакеты и установил LAMP.
    • Настроил php.ini и перезапустил Apache.
    • Создал базу и пользователя в MariaDB.
    • Настроил права на директории и владелец www-data.
  • Владелец проекта / менеджер:

    • Проверил доступность домена и SSL.
    • Настроил администратора и пароль в интерфейсе ProjectSend.
    • Определил политику резервного копирования и сроков хранения.
  • Оператор / поддержка:

    • Проверил логи на предмет ошибок.
    • Настроил мониторинг доступности (uptime) и тесты логина.

Частые проблемы и решения

  • Ошибка 500 после установки: проверьте /var/log/apache2/* и права на папки. Часто помогает корректный владелец и права (www-data).
  • Проблема с подключением к БД: проверьте параметры в sys.config.php и что сервис mariadb запущен.
  • Невозможность загрузить файлы более X МБ: убедитесь, что upload_max_filesize и post_max_size совпадают и достаточно велики.
  • SSL не устанавливается: проверьте, что DNS указывает на сервер и порт 80/443 открыт в фаерволе.

Мини-методология резервного восстановления

  1. Остановить доступ к сайту (временно отключить сайт в Apache или включить страницу обслуживания).
  2. Сделать копию текущих данных: tar/rsync директорий ProjectSend и дамп базы: “mysqldump projectsend > dump.sql”.
  3. Восстановить файлы из рабочей резервной копии и импортировать дамп базы: “mysql projectsend < dump.sql”.
  4. Проверить работоспособность на staging или поддомене.
  5. Возобновить обслуживание.

Критерии приёмки

  • Сайт доступен по HTTPS и корректно перенаправляет HTTP на HTTPS.
  • Администратор может войти в панель и создать клиента/группу.
  • Загрузка и скачивание файла работают, и файлы сохраняются в filesystem.
  • Резервное копирование файлов и дамп базы успешно выполняются.

Глоссарий — одно предложение на термин

  • LAMP: стек Linux + Apache + MySQL/MariaDB + PHP для веб-приложений.
  • Certbot: клиент для автоматического получения и продления сертификатов Let’s Encrypt.
  • vhost: виртуальный хост Apache — конфигурация сайта в веб-сервере.

Краткое резюме

ProjectSend — удобное решение для файлового обмена, которое просто развернуть на Ubuntu 20.04 с Apache и MariaDB. После установки важно обеспечить правильные права, настроить SSL и автоматическое резервное копирование. Следуйте чеклисту и разделу отладки, чтобы быстро устранить типичные проблемы.

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

Поделиться: 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 быстро