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

时间:2018-10-08 10:24:48

标签: php apache centos external litespeed

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

我正在Linux Centos 6上使用Litespeed Web服务器,并且一切都在我的用户主目录中正常工作。

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

我在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: 我尝试了从主目录到外部目录的Symbolink,但仍然没有结果。

更新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 :(得分:0)

问题出在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>

我希望这对某人有用:)