Как бесплатно расшарить фото с домашнего сервера на Ubuntu 12.04 LTS с помощью phpAlbum
Коротко: разверните LAMP на Ubuntu 12.04, настройте SAMBA для общей папки с фотографиями, установите phpAlbum, укажите каталоги данных и кеша, отсканируйте папки — и получите локальный фотосервер для семьи и друзей. В статье есть пошаговая инструкция, чеклисты для ролей, рекомендации по безопасности и варианты миграции на более новые версии Ubuntu.
Важно: Ubuntu 12.04 устарела; инструкция описывает установку на этой версии согласно исходному сценарию, но в конце есть раздел про миграцию и альтернативы для современных систем.
О чём статья и варианты использования
Эта инструкция полезна, если вы хотите:
- хранить фото под собственным контролем на домашнем сервере;
- дать доступ семье и друзьям без размещения материалов в социальных сетях;
- быстро поднять простой фотосайт на phpAlbum и управлять правами доступа.
Варианты, когда это не подходит:
- если вам нужна интеграция с мобильными синхронизациями и современными API — лучше смотреть Nextcloud или Piwigo;
- если у вас динамический провайдер с сильно ограниченным портом 80 без возможности проброса — придётся использовать туннели или хостинг.
Краткий обзор терминов
- LAMP: стек Linux, Apache, MySQL/MariaDB, PHP.
- SAMBA: протокол для шаринга файлов между Linux и Windows/другими устройствами в локальной сети.
- SWAT: веб-интерфейс для настройки Samba (иногда конфликтует с современными пакетами).
- phpAlbum: простая PHP-программа для создания фотогалереи.
Одно предложение по методу
Сначала поднимите LAMP и шаринг папок, затем установите phpAlbum в /usr/local/src, создайте симлинки в /var/www и задайте защищённые каталоги данных и кеша с владельцем www-data.
Требования и подготовка
Необходимое оборудование и настройки:
- ПК с Ubuntu 12.04 LTS и установленным LAMP.
- Собственный доменный адрес либо no-ip/ddns для внешнего доступа.
- Проброшенный порт 80 на маршрутизаторе к серверу Ubuntu.
- SAMBA/SWAT установленный на сервере.
Рекомендованные справочные руководства (оригинальные ссылки приведены в исходной инструкции):
- Пошаговая установка LAMP для Ubuntu 12.04.
- Настройка no-ip для динамического IP.
- Перенаправление портов к серверу Ubuntu.
- Установка и конфигурация SWAT для Samba.
Примечание: финальный шаг инструкции по SWAT может предлагать вход как «member of the admin group» — можно пропустить и войти в SWAT позже по инструкции ниже.
Создание общих папок для фотографий
Откройте терминал на Ubuntu и выполните следующие шаги.
- Создайте пароль для пользователя root (понадобится для входа в SWAT):
sudo passwdВведите и подтвердите новый пароль root. Можно использовать пароль вашего обычного пользователя Ubuntu, но рекомендуется хранить запись пароля в надёжном месте.
- Если у вас установлен пакет libpam-smbpass и он конфликтует со SWAT, удалите его:
sudo apt-get remove libpam-smbpass- Создайте пользователя SAMBA (замените
на ваш логин):
sudo smbpasswd -a Задайте пароль для SAMBA. Вы будете использовать этот пароль для доступа к общим папкам по сети.
- Перезагрузите конфигурацию xinetd, чтобы SWAT подхватил изменения:
sudo dpkg-reconfigure xinetd- Создайте папки для фотографий и скачиваний и выставьте временно широкие права доступа (можно скорректировать позже):
sudo mkdir ~/photos
sudo chmod 777 ~/photos
sudo mkdir ~/downloads
sudo chmod 777 ~/downloadsПояснение: код 777 даёт чтение, запись и выполнение всем пользователям. Это удобно для обмена в локальной сети, но снижает безопасность. Позже в разделе безопасности описано, как сужать права.
- Откройте SWAT в браузере локальной сети: http://<имя_сервера_Ubuntu>:901
Пример: http://ubuntuserver:901
Войдите под именем root и паролем, который вы задали ранее.
- В SWAT создайте два шаринга:
- Пункт Shares → Create Share → заполняем:
- path: /home/
/photos - valid users:
- read only: no
- available: yes
- path: /home/
Нажмите Commit changes → Advanced → установите все маски в 0777 → Commit changes.
- Повторите для папки downloads по тому же алгоритму.
После этого ваша машина должна быть видна в локальной сети, и вы сможете подключаться к шаре, используя учётную запись SAMBA.
Загрузка и установка phpAlbum
На сервере выполните следующие команды:
cd ~/downloads
wget http://www.phpalbum.net/files/phpAlbum_v0.4.1.16.zipПримечание: лучше проверить на сайте phpalbum наличие более свежей версии. В браузере можно перейти на http://www.phpalbum.net/dw и при необходимости вставить прямую ссылку в wget.
Если вы предпочитаете скачать архив локально, копируйте его в общую папку downloads и продолжайте установку с машины Ubuntu.
Установите unzip, если он отсутствует:
sudo apt-get install unzipРаспакуйте архив в папку исходников веба:
sudo unzip ~/downloads/phpAlbum_v0.4.1.16.zip -d /usr/local/src/wwwСоздайте рабочий файл конфигурации из примера:
sudo cp /usr/local/src/www/phpAlbum_v0.4.1.16/config_change_it.php /usr/local/src/www/phpAlbum_v0.4.1.16/config.phpОтредактируйте файл конфигурации с помощью nano:
sudo nano /usr/local/src/www/phpAlbum_v0.4.1.16/config.phpВ файле найдите строку:
$data_dir="data/";и измените её на уникальную директорию, чтобы усложнить неавторизованный доступ к данным. Например:
$data_dir="data_xyz34jk/";Где xyz34jk — ваша уникальная случайная последовательность символов. Запишите её — она понадобится при дальнейшей настройке.
Сохраните изменения в nano: Ctrl+X, затем Y и Enter.
Создайте символьную ссылку в /var/www для упрощения размещения сайта:
cd /var/www/
sudo ln -s /usr/local/src/www/phpAlbum_v0.4.1.16 phpAlbumСоздайте вторую ссылку с маленькой буквы, чтобы избежать проблем с регистром:
sudo ln -s phpAlbum phpalbumСоздайте каталоги данных и кеша, назначьте владельцем www-data и ограничьте права доступа:
sudo mkdir /data_xyz34jk
sudo mkdir /cache_xyz34jk
sudo chown www-data /data_xyz34jk
sudo chown www-data /cache_xyz34jk
sudo chmod 0700 /data_xyz34jk
sudo chmod 0700 /cache_xyz34jkНе забудьте заменить xyz34jk на вашу уникальную строку.
Теперь создайте ссылку на общую папку фотографий внутри каталога phpAlbum:
cd /var/www/phpAlbum
sudo ln -s ~/photos photos_xyz34jkГотово — можно переходить к административной части phpAlbum.
Первоначальная настройка phpAlbum
Важно: для безопасности рекомендуется выполнять вход в админку phpAlbum из локальной сети или через защищённый HTTPS-коннект. В данной инструкции вход выполняется из домашней сети.
Откройте в браузере локальную страницу:
http://
Вход:
- пользователь: admin
- пароль: admin
Далее в верхнем правом углу нажмите Setup и поменяйте пароль администратора на надёжный.
В базовой настройке укажите e-mail, оставьте суперпользователя отмеченным и сохраните конфигурацию.
Перейдите в Main setup и заполните поля:
- Album directory: photos_xyz34jk/
- Cache directory: /cache_xyz34jk/
Обратите внимание на отсутствие ведущего слеша в первом поле и наличие завершающего слеша в обоих полях.
Сохраните конфигурацию.
Перейдите в Galleries → Scan directories now. phpAlbum просканирует связанную папку photos и создаст галерею для каждой вложенной папки с изображениями. Настройте видимость галерей и конкретных фотографий при необходимости.
Нажмите зелёную кнопку <<< Album для перехода в публичную часть и проверки результата.
Уменьшение прав после настройки
Если вы не хотите оставлять права 777 в общей папке, можно сузить доступ следующим образом:
- Сам каталог photos может иметь права 0755, если веб-сервер (www-data) и SAMBA-пользователь совпадают или у вас настроены группы.
- Для приватных данных (/data_xyz34jk и /cache_xyz34jk) уже установлены права 0700 и владелец www-data — это рекомендуемая практика.
Пример корректировки:
sudo chmod 0755 ~/photos
sudo chown :www-data ~/photos
sudo chmod 0750 ~/downloads Рекомендации по безопасности
Important: держите администратора под безопасным паролем и по возможности включите HTTPS для внешнего доступа.
Рекомендации:
- Настройте брандмауэр ufw, разрешив только необходимые порты (80/443 и SSH по нужде).
- Ограничьте доступ к админке phpAlbum по локальному IP или через VPN/SSL туннель.
- Не храните в общих папках файлы с приватными данными.
- Регулярно делайте резервные копии каталога /data_xyz34jk и базы данных (если phpAlbum использует БД).
Пример команд ufw:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow from 192.168.0.0/24 to any port 901 proto tcp
sudo ufw enableЭто разрешит HTTP и HTTPS, а также доступ к порту 901 только из локальной сети 192.168.0.0/24.
Отладка и частые ошибки
Не удаётся подключиться к SWAT на порту 901:
- Проверьте, запущен ли xinetd.
- Убедитесь, что порт 901 не заблокирован локальным брандмауэром.
phpAlbum не видит папки фотографий:
- Проверьте, что симлинк photos_xyz34jk указывает на существующую папку ~/photos.
- Проверьте права: веб-сервер (www-data) должен иметь доступ к файлам.
Ошибки при распаковке или отсутствии unzip:
- Установите unzip через apt-get.
Проблемы с SAMBA: не принимается пароль SAMBA
- Убедитесь, что вы добавили пользователя через smbpasswd и перезапустили службу samba.
SWAT не запускается после удаления libpam-smbpass
- Проверьте логи в /var/log/syslog и убедитесь, что зависимости корректны.
Критерии приёмки
Чтобы считать установку успешной, выполните контрольный чек:
- Страница phpAlbum доступна по локальному адресу http://<сервер>/phpAlbum.
- Вход в админку выполнен с новым паролем.
- При сканировании директории появился хотя бы один альбом.
- Публичная галерея отображается корректно и фотографии открываются.
- Каталоги данных и кеша принадлежат www-data и имеют права 0700.
Тестовые кейсы
- Создать новую папку с изображениями в ~/photos и проверить, что при повторном сканировании альбом появляется.
- Попытаться открыть админку извне при выключенном HTTPS и убедиться, что доступ ограничен маршрутизатором/брандмауэром.
- Проверить, что обычный пользователь локальной сети может скачать фото, если у него есть пароль SAMBA.
Роль‑ориентированные чеклисты
Администратор:
- Установить LAMP и SAMBA.
- Создать каталоги photos и downloads.
- Установить phpAlbum и изменить config.php.
- Настроить права и владельцев для /data и /cache.
- Проверить бэкапы.
Пользователь (семья/гости):
- Получить логин/пароль SAMBA.
- Подключиться к расшаренной папке photos из проводника OS.
- Загрузить или просмотреть фото в зависимости от прав.
Альтернативные решения
Если phpAlbum кажется устаревшим или вам требуется современный функционал, рассмотрите:
- Nextcloud — полноценный файловый и фото‑сервис с синхронизацией, более сложная настройка, но мощнее.
- Piwigo — специализированная платформа для фотогалерей с плагинами.
- Использование стороннего хостинга или S3‑совместимых хранилищ, если вам нужен доступ и масштабируемость.
Краткое сравнение:
- phpAlbum: лёгкая простая установка, ограниченная функциональность.
- Nextcloud: богатая функциональность, мобильные клиентские приложения.
- Piwigo: специализирован для фото, множество тем и плагинов.
Миграция на современные релизы Ubuntu
Ubuntu 12.04 больше не поддерживается официально. Для безопасности и совместимости рекомендуется мигрировать на Ubuntu LTS 20.04 или 22.04.
Общие шаги миграции:
- Сделайте полную резервную копию /var/www, /usr/local/src/www, /data_xyz34jk и конфигураций SAMBA.
- Разверните новую машину с Ubuntu LTS и установите LAMP, SAMBA.
- Скопируйте файлы веб-приложения и каталоги данных в те же пути или адаптируйте симлинки.
- Проверьте версии PHP: phpAlbum может требовать старых версий PHP, тогда подумайте о контейнеризации (Docker) для совместимости.
Совет: запуск phpAlbum в контейнере с нужной версией PHP упростит перенос на современные хосты.
Пример простого плейбука для быстрого восстановления
- Подготовка среды: установить LAMP, SAMBA.
- Восстановить /usr/local/src/www/phpAlbum_v* и /var/www/phpAlbum (симлинки).
- Восстановить /data* и /cache* и установить владельца www-data.
- Перезапустить Apache и SAMBA.
- Проверить админку и сканирование галерей.
Короткое объявление для домашних пользователей
Хотите хранить семейные фото на своём сервере? Я поднял phpAlbum на Ubuntu 12.04, настроил SAMBA для загрузки и создал публичные галереи для друзей. Админ-панель защищена паролем, а данные хранятся в отдельной папке с ограниченным доступом.
Минимальная методология поддержки
- Еженедельный локальный бэкап каталога данных.
- Проверка наличия свободного места на диске раз в месяц.
- Мониторинг доступности сайта (локальный скрипт или простой монитор).
Однострочный глоссарий
- SAMBA: служба шаринга файлов в локальной сети; LAMP: базовый веб-стек для PHP‑приложений.
Резюме
- Подготовьте LAMP и SAMBA, создайте папки photos и downloads.
- Установите phpAlbum, создайте уникальные каталоги данных и кеша, установите права владельца www-data.
- Настройте phpAlbum через веб-интерфейс, отсканируйте папки и проверьте публичную галерею.
- Ограничьте права доступа и настройте брандмауэр/HTTPS для безопасности.
Итог: phpAlbum предоставляет быстрый способ организовать локальный фотосервер. Для долгосрочной безопасности и функциональности рассмотрите миграцию на современные LTS‑релизы Ubuntu или использование более новых платформ.
Enjoy your photo sharing.
Похожие материалы
Альтернативный менеджер пакетов в Linux
Как скачать и настроить DaVinci Resolve в Linux
EyeOS — облачная ОС под вашим контролем
Скачать данные Cortana на Windows
WannaCrypt: уроки после масштабной атаки