PHP 使用外部磁盘驱动器下载文件

PHP Using external disk drive for download files

我在将外部存储链接到我的 PHP 主目录时遇到问题。

我在 Linux Centos 6 上使用 Litespeed 网络服务器,在我的用户主目录中一切正常。

但我想在我的 2 个硬盘驱动器之间创建一个负载平衡器,以便在高峰时段提供更好的服务。

我在 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 似乎我不能。

我在外部目录中设置了我的家庭用户和组。

有什么想法吗?!

更新 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";
  }
?>

结果:否

问题出在 php.ini open_basedir 值中。我必须在 open_basedir 值中附加到新磁盘的完整路径。

同时在 httpd.conf 文件中添加 open_basedir 值,如下所示:

<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>

我希望这对某人有用:)