ユーザー権限しかなくて、Laravelのフォルダを単純に削除しようとすると、
storage以下の所有者apacheのフォルダが消せないんですよねー
PHPでPermission変更かけてやると消せるんですが、ハマリポイントがあったんで備忘録です。
ディレクトリごと権限の変更
注:必ずブラウザから実行
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お願いします!
ストックのついでにお願いします!
モチベーションがあがります!