繁体   English   中英

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

[英]PHP Using external disk drive for download files

我将外部存储链接到我的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:我尝试了从主目录到外部目录的symbolinks,仍然没有结果。

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

我希望这对某人有用:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM