PHP Использование внешнего диска для загрузки файлов - PullRequest
0 голосов
/ 08 октября 2018

У меня проблема с привязкой внешнего хранилища к домашнему каталогу PHP.

Я использую веб-сервер Litespeed в Linux Centos 6, и все нормально работает в домашнем каталоге пользователя.

Но я хочу создать балансировщик нагрузки между двумя моими жесткими дисками для лучшего обслуживания в часы пик.

Я использую конфиги ниже в httpd.conf для создания псевдонима, и он хорошо работает, когда я пытаюсь загрузитьфайлы, например, https://example.com/cdn/file.mp4

Alias /cdn/ "/cdn/files/"
<Directory "/cdn/files">
    Options Indexes MultiViews
    AllowOverride All
    Require all granted
    Allow from all
</Directory>

Но если я попытаюсь использовать путь в php-скриптах, например, проверьте, file_exists кажется, что я не могу.

Iустановить моего домашнего пользователя и группу во внешних каталогах.

Есть идеи?!

Обновление 1: Я пробовал символьные ссылки с домашнего каталога на внешний каталог, но результат пока не получен.

Обновление 2: мой простой php-код:

<?php 
  if(file_exists('/cdn/files/file.mp4') || file_exists('/cdn/file.mp4') || file_exists('./cdn/file.mp4') || file_exists('./~cdn/file.mp4')){
    echo "yes";
  }else{
    echo "no";
  }
?>

результат: нет

1 Ответ

0 голосов
/ 08 октября 2018

Проблема была в значении php.ini open_basedir.Я должен добавить полный путь к новому диску в значении open_basedir.

Также добавьте значение open_basedir в файле httpd.conf, как показано ниже:

<Directory "/home/user/public_html">
   php_admin_value open_basedir /home/user/public_html/:/cdn/files
</Directory>

<VirtualHost myip:80>
   <Directory "/home/user/public_html">
      php_admin_value open_basedir /home/user/public_html/:/cdn/files
   </Directory>
</VirtualHost>

<VirtualHost myip:443>
   <Directory "/home/user/public_html">
      php_admin_value open_basedir /home/user/public_html/:/cdn/files
   </Directory>
</VirtualHost>

Надеюсь, это кому-нибудь пригодится :)

...