LoginSignup
0
0

PHPでファイルを操作する際にファイルの権限によって書き込み・読み取りができなることがある件

Posted at

環境

  • CentOS Linux release 7.9.2009(Core)
  • Apache 2.4.6
  • PHP 7.1.33

起こったこと

PHPでWebスクレイピング的なプログラムをWindowsからCentOSに転送してCentOS側で実行したとき、色々なセーブデータをファイルに保存するはずが保存されてませんでした。
自分はurlencode、urldecode関数が混沌としていたためそこらへんでエラーが起こっていたと思っていました。

原因

自分はWindowsでscpでCentOSに転送してからCentOSでまたドキュメントルートに転送するスクリプトを実行していたので無駄だったため、CentOSからWindowsにscpして、というスクリプトでやっていました。
その時のスクリプトはこちら。モザイクは[]で囲っています。

apply.sh
echo -n "Host Address: "
read hostaddr

hostip="[ユーザー名]@192.168.0.$hostaddr"
hostdir=":C:[Windows側のドキュメントルート]"
host="$hostip$hostdir"
rm -r ~/docroot
scp -r $host ~

sudo cp -r ~/docroot /var/www/html
sudo rm -r /var/www/html

お察しの方がいますでしょうか。そう! sudo権限でドキュメントルートにコピーしていたのです!!

対処法

スクリプトにこのような分を追加して解決しました。

apply.sh
sudo chmod 766 /var/www/html/[セーブデータのファイル名]

まとめ

ファイルの権限管理はしっかりしましょう!

0
0
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
0
0