簡體   English   中英

我無法將PHP中的文件復制到apache2 Web服務器中/ var / www之外的另一個目錄中

[英]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用戶無權(或簡單地不允許)寫入給定目錄。

解決方法如下:

  1. 通過執行awk -F= '$1 == "export APACHE_RUN_GROUP" {print $2}' /etc/apache2/envvars查找Apache組。 如果您在ubuntu中並使用Apache2,則默認用戶和組為www-data
  2. 通過執行sudo chown :www-data /home/Dell/Desktop -R遞歸地終止目標目錄(在您的情況下為/home/Dell/Desktopsudo chown :www-data /home/Dell/Desktop -R
  3. 通過執行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/Desktopsudo 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM