[英]I can not copy a file in PHP to another directory out of /var/www in my apache2 web server
我想在php中复制文件。 但是,我遇到的问题不是语法问题。 知道我已经对文件进行了chmod命令,以便能够复制和更改! 这是我的代码:
此代码不起作用!
<?php
$file = 'example.txt';
$newdir = '/home/Dell/Desktop';
$newfile = 'example.txt.bak';
echo "Trying to copy $file...<br><br> ";
echo' loading .... <br>';
echo' loading .... <br>';
if (!copy($file, $newdir.'example.txt.bak')) {
echo "failed to copy $file...\n";
}
else {
echo' the file should be in'. $newdir;
}
//this code is working cause I have changed the location to /var/www/ directory!!!
$file = 'example.txt';
$newdir = '/var/www/';
$newfile = 'example.txt.bak';
echo "Trying to copy $file...<br><br> ";
echo' loading .... <br>';
echo' loading .... <br>';
if (!copy($file, $newdir.'example.txt.bak')) {
echo "failed to copy $file...\n";
}
else {
echo' the file should be in'. $newdir;
}
?>
我努力了:
move_uploaded_file()
copy()
rename()
没有任何效果! 请在这里帮助。
不是PHP,而是Apache。 您的Apache用户无权(或简单地不允许)写入给定目录。
解决方法如下:
awk -F= '$1 == "export APACHE_RUN_GROUP" {print $2}' /etc/apache2/envvars
查找Apache组。 如果您在ubuntu中并使用Apache2,则默认用户和组为www-data
。 sudo chown :www-data /home/Dell/Desktop -R
递归地终止目标目录(在您的情况下为/home/Dell/Desktop
) sudo chown :www-data /home/Dell/Desktop -R
sudo chown :www-data /home/Dell/Desktop && sudo chmod 775 /home/Dell/Desktop && sudo find /home/Dell/Desktop -type d -exec chmod 775 {} \\; && sudo find /home/Dell/Desktop -type f -exec chmod 664 {} \\;
递归地对目标目录进行Chmod处理(同样,在您的情况下,它将为/home/Dell/Desktop
) sudo chown :www-data /home/Dell/Desktop && sudo chmod 775 /home/Dell/Desktop && sudo find /home/Dell/Desktop -type d -exec chmod 775 {} \\; && sudo find /home/Dell/Desktop -type f -exec chmod 664 {} \\;
sudo chown :www-data /home/Dell/Desktop && sudo chmod 775 /home/Dell/Desktop && sudo find /home/Dell/Desktop -type d -exec chmod 775 {} \\; && sudo find /home/Dell/Desktop -type f -exec chmod 664 {} \\;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.