Linux — лучшая практика для доступа к сетевым папкам в веб-приложениях php

Совершенно новичок в мире Linux, и у меня есть некоторые вопросы / опасения по поводу использования сетевого монтирования с веб-приложением php. Я в основном ищу советы по использованию сетевых монтировок с php, так как это мой первый опыт, и я хочу получить максимальную производительность, которую я могу получить.

Крепления, которые я хочу выполнить, будут от Linux-машин до Windows-машин. Существует множество операционных систем. Ubuntu Mate, Raspbian Jessie нужно смонтировать в папки на Windows 7,10

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

  1. Один Raspberry Pi3B под управлением Ubuntu Mate будет захватывать видео для создания миниатюр для них, этот пи также создаст HTML-файл, который мне нужен только при запуске. Я планировал использовать php для решения этих задач, но мне нужен надежный способ монтировать папку.

  2. Второй Raspberry Pi3B, на котором работает raspbian jessie, позже получит доступ к тем же видео для отображения на веб-странице.

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

Ранее я экспериментировал и смог смонтировать одну из сетевых папок. Я использовал команду в fstab. Он запустился при запуске, который я предположил как то, что я хотел. Тем не мение….

Это устанавливает непрерывное монтирование из того, что я знаю, и кажется чрезмерным, потому что приложение будет использоваться только периодически в течение дня с небольшим персоналом. Таким образом, мне не нужны эти крепления, чтобы продолжать весь день. Я бы предпочел, чтобы они устанавливались только по мере необходимости.

Одна из проблем, даже с приведенным выше оператором mount, заключается в том, что IP-адреса компьютеров с подключенными сетевыми папками могут изменяться. Они не статичны и я не могу возиться с сетью.

Я использовал nmap, передал результаты в php-скрипт и теперь могу получить IP-адреса двух машин, к которым я хочу подключиться. Моя мысль — хранить IP-адреса в базе данных и использовать их для монтирования папок, которые мне нужны, когда они мне нужны.

Мой основной вопрос здесь заключается в том, как вызывать мои команды монтирования с динамическими IP-адресами, когда они мне нужны, и закрывать их после завершения.

Благодаря исследованиям я определил несколько способов, которые, как мне кажется, я мог бы сделать, но хотел уточнить с кем-либо еще о любых других вариантах и ​​наилучшей практике.

  1. Я предполагаю, что мог бы вызвать операторы монтирования из exec () или shell_exec () в php. Смонтируйте папку в начале скрипта php и закройте ее в конце.

php shell_exec () против exec ()

Возможно, это медленнее? Это плохо?

  1. Недавно я столкнулся с autofs во время исследования. Это звучит в основном как та же идея, что и № 1, но, возможно, немного лучше в случае ситуаций с ошибками, когда одна машина по какой-то причине может быть отключена. Мне неясно использовать php или лучше. В сообщениях об этом говорится, что после установки и настройки «Устройства теперь автоматически подключаются при обращении к ним, они остаются подключенными до тех пор, пока вы к ним обращаетесь».

https://wiki.archlinux.org/index.php/Autofs

Я предполагаю, что папки будут автоматически монтироваться, если доступ к ним осуществляется через аргументы командной строки, но будет ли это распространяться на вызов папки с помощью сценария php?

  1. Некоторая комбинация 1-2?

  2. Получите прямой доступ к нему, используя что-то вроде …
    \ Xxx.xxx.xxx.xxx \ общая_папка \ fileIwant.ext

  3. Что-то другое?

У кого-нибудь есть опыт работы с php и сетевым монтированием? Есть ли отзывы об этих подходах?

ОБНОВИТЬ
Я закончил тем, что сделал скрипт bash с оператором mount, отредактировал файл sudoers, чтобы позволить скрипту вызываться с привилегиями sudo, и вызвал скрипт bash через php exec. У меня есть один для монтирования и размонтирования. Я звоню, чтобы проверить, есть ли монтирование, и если нет, смонтировать папку. Затем при выходе я вызываю скрипт unmount для размонтирования. Это, вероятно, очень окольное и может использовать больше ресурсов, чем я должен, но это работает.

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]