Совершенно новичок в мире Linux, и у меня есть некоторые вопросы / опасения по поводу использования сетевого монтирования с веб-приложением php. Я в основном ищу советы по использованию сетевых монтировок с php, так как это мой первый опыт, и я хочу получить максимальную производительность, которую я могу получить.
Крепления, которые я хочу выполнить, будут от Linux-машин до Windows-машин. Существует множество операционных систем. Ubuntu Mate, Raspbian Jessie нужно смонтировать в папки на Windows 7,10
Мое приложение будет создавать несколько файлов миниатюр изображений для сохранения в сетевой папке, а также получать доступ к некоторым видео MP4 для воспроизведения. Кроме того, мне нужно создать один HTML-файл при запуске. У меня будет два крепления, к которым нужно периодически обращаться в течение дня, и одно при запуске.
Один Raspberry Pi3B под управлением Ubuntu Mate будет захватывать видео для создания миниатюр для них, этот пи также создаст HTML-файл, который мне нужен только при запуске. Я планировал использовать php для решения этих задач, но мне нужен надежный способ монтировать папку.
Второй Raspberry Pi3B, на котором работает raspbian jessie, позже получит доступ к тем же видео для отображения на веб-странице.
Приложение будет работать в таком порядке. Сначала создаем HTML-страницу, затем создаем миниатюры, а затем продвигаем пользователя для просмотра видео.
Ранее я экспериментировал и смог смонтировать одну из сетевых папок. Я использовал команду в fstab. Он запустился при запуске, который я предположил как то, что я хотел. Тем не мение….
Это устанавливает непрерывное монтирование из того, что я знаю, и кажется чрезмерным, потому что приложение будет использоваться только периодически в течение дня с небольшим персоналом. Таким образом, мне не нужны эти крепления, чтобы продолжать весь день. Я бы предпочел, чтобы они устанавливались только по мере необходимости.
Одна из проблем, даже с приведенным выше оператором mount, заключается в том, что IP-адреса компьютеров с подключенными сетевыми папками могут изменяться. Они не статичны и я не могу возиться с сетью.
Я использовал nmap, передал результаты в php-скрипт и теперь могу получить IP-адреса двух машин, к которым я хочу подключиться. Моя мысль — хранить IP-адреса в базе данных и использовать их для монтирования папок, которые мне нужны, когда они мне нужны.
Мой основной вопрос здесь заключается в том, как вызывать мои команды монтирования с динамическими IP-адресами, когда они мне нужны, и закрывать их после завершения.
Благодаря исследованиям я определил несколько способов, которые, как мне кажется, я мог бы сделать, но хотел уточнить с кем-либо еще о любых других вариантах и наилучшей практике.
php shell_exec () против exec ()
Возможно, это медленнее? Это плохо?
https://wiki.archlinux.org/index.php/Autofs
Я предполагаю, что папки будут автоматически монтироваться, если доступ к ним осуществляется через аргументы командной строки, но будет ли это распространяться на вызов папки с помощью сценария php?
Некоторая комбинация 1-2?
Получите прямой доступ к нему, используя что-то вроде …
\ Xxx.xxx.xxx.xxx \ общая_папка \ fileIwant.ext
Что-то другое?
У кого-нибудь есть опыт работы с php и сетевым монтированием? Есть ли отзывы об этих подходах?
ОБНОВИТЬ
Я закончил тем, что сделал скрипт bash с оператором mount, отредактировал файл sudoers, чтобы позволить скрипту вызываться с привилегиями sudo, и вызвал скрипт bash через php exec. У меня есть один для монтирования и размонтирования. Я звоню, чтобы проверить, есть ли монтирование, и если нет, смонтировать папку. Затем при выходе я вызываю скрипт unmount для размонтирования. Это, вероятно, очень окольное и может использовать больше ресурсов, чем я должен, но это работает.
Задача ещё не решена.
Других решений пока нет …