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