LoginSignup
2
2

More than 3 years have passed since last update.

PHP: 所有者apacheファイル(dir)をrootなしで権限変更!

Last updated at Posted at 2020-10-24

ユーザー権限しかなくて、Laravelのフォルダを単純に削除しようとすると、
storage以下所有者apacheのフォルダが消せないんですよねー

PHPPermission変更かけてやると消せるんですが、ハマリポイントがあったんで備忘録です。

ディレクトリごと権限の変更

注:必ずブラウザから実行

chmod.php
<?php
function chmod_r($path) {
    $dir = new DirectoryIterator($path);
    foreach ($dir as $item) {
        if ($item->isDir() && !$item->isDot()) {
            //chomd()だとエラーがでたので。
            system('chmod 0777 ' . $item->getPathname());
            echo 'Dir : ' . $item->getPathname() . '<br>';
            //再帰的に変更
            chmod_r($item->getPathname());
        }
    }
}
//パーミッション変更したいフォルダをフルパス指定してください。
chmod_r('/var/www/html/laravel');
?>

こいつを実行できる場所(www以下等)においてブラウザから実行してください。
再帰的全フォルダのパーミッションが変更されていますので、rm -rf {フォルダ名} ですべてのapache所収者ディレクトリを消せるはずです!

追記:

ディレクトリごとではなく、1ファイルごとに権限の変更

注:ブラウザから実行

chmod_file.php
<?php
function chmodApacheFile($file) {
    if (file_exists($file)) {
        system('chmod 0777 ' . $file);
        echo 'file : ' . $file . '<br>';
    } else {
        echo 'ファイルが見つかりません';
    }
}
//ファイル名を適宜変更(フルパス)
chmodApacheFile('/path/filename.php');
?>

LGTMお願いします!
ストックのついでにお願いします!
モチベーションがあがります!

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2