php - 在服务器上的两个站点/帐户之间复制文件的问题
问题描述
我有一个 Linux 服务器,我在上面设置了两个站点/帐户。我正在努力通过一系列 PHP 脚本将一些信息从 site1 迁移到 site2,但是,我开始遇到一些问题。
这是我的服务器设置:
- PHP版本:5.5.38
- 阿帕奇:2.4.41
- 站点 1:/home/site1/public_html/
- 站点 2:/home/site2/public_html/
当我尝试使用此逻辑复制文件时,我收到此错误:
//Create original file for future use
if (copy($site1.'/uploads/v2n62l6v.jpg', $site2.'/uploads/v2n62l6v.jpg')) {
echo 'File copy: true' . "\n\n";
} else {
echo 'File copy: false' . "\n\n";
}
当我尝试运行脚本时:
警告:复制(/home/site2/public_html/uploads/v2n62l6v.jpg):无法打开流:第 15 行 /home/site2/public_html/move.php 中的权限被拒绝
文件复制:false
我正在尝试在 site2 上执行该文件。任何想法为什么我会被拒绝许可?
更新:
当我运行ls -la
命令时,/home/site2/public_html/uploads
我得到这个:
drwxr-xr-x 12 site2 site2 12288 Mar 30 13:39 ./
drwxr-x--- 15 site2 nobody 4096 Mar 31 13:44 ../
drwxr-xr-x 10 site2 site2 4096 Feb 21 2019 0/
drwxr-xr-x 12 site2 site2 4096 Feb 20 2019 1/
drwxr-xr-x 12 site2 site2 4096 Feb 20 2019 2/
drwxr-xr-x 12 site2 site2 4096 Feb 20 2019 3/
drwxr-xr-x 12 site2 site2 4096 Feb 20 2019 4/
drwxr-xr-x 12 site2 site2 4096 Feb 20 2019 5/
drwxr-xr-x 12 site2 site2 4096 Feb 20 2019 6/
drwxr-xr-x 12 site2 site2 4096 Feb 20 2019 7/
drwxr-xr-x 12 site2 site2 4096 Feb 20 2019 8/
drwxr-xr-x 12 site2 site2 4096 Feb 20 2019 9/
-rw-r--r-- 1 site2 site2 25 Feb 20 2019 index.php
解决方案
通常,文件的所有者不是您的网络服务器的同一用户,因此 755 的文件夹权限可能意味着您的网络服务器是只读的。
您可以将它们设置为 777,但请记住,服务器上的任何人/任何东西都可以写入该目录,或从该目录中删除文件。
另一种选择是使目标目录的所有者与您的网络服务器运行的用户相同。(通常是 httpd、apache、www-data 之一)
推荐阅读
- reactjs - 发布的数据无法用 reactjs 显示
- xml - XSLT "Choose-When" 设置变量给出不同的结果
- powerbi - 使用 CALCULATE 和 FILTER 测量 PBI
- javascript - Node 的 bcrypt 和 bcryptjs 库有何不同?
- c - 生成具有固定范围的随机日期
- angular - 在 clr-wizard 中更新 clr-datagrid 的 ViewChild
- reactjs - React with TypeScript - 如何导入方法
- php - 未捕获的 Twig_Error_Loader:找不到模板“pb/.twig”
- c# - 如何检查字符串是否包含 EpiFind 中的值?
- windows - % Processor Time 的单位是什么,它表示什么?