質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.44%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

2347閲覧

PHPからunlink()でファイル削除が出来ない

退会済みユーザー

退会済みユーザー

総合スコア0

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/10/26 09:29

編集2017/10/26 10:04

もしかしたら、またつまらないところかもしれませんが、
可能性でもいいのでご指摘いただければ。
お助けください。

###前提・実現したいこと
古いphp(元は4系→5.3移植して稼働中)からphp 7.1を使う新サーバーに移植しようとして、vmware上ゲストOSである自分で構築しているCentOS7.3上で動作確認していますが、
なぜかunlink出来ない事態に遭遇していて困っています。

###発生している問題・エラーメッセージ

Warning: unlink(../../~~~/042017101900003.dat): Permission denied in /var/www/html/~~~/file2db.php on line 2713

この表示からするとSELinuxも稼働中でしょうか。

# getenforce Enforcing # sestatus SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: enforcing Mode from config file: enforcing Policy MLS status: enabled Policy deny_unknown status: allowed Max kernel policy version: 28

/var/log/audit/audit.log に気になる記述が。

type=AVC msg=audit(1509011982.095:483): avc: denied { write } for pid=2189 comm="httpd" name="input" dev="dm-0" ino=68788307 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:httpd_sys_content_t:s0 tclass=dir type=SYSCALL msg=audit(1509011982.095:483): arch=c000003e syscall=87 success=no exit=-13 a0=7fad02e5b978 a1=1 a2=7fad02e5b97f a3=7fad11ee30f0 items=0 ppid=990 pid=2189 auid=4294967295 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=4294967295 comm="httpd" exe="/usr/sbin/httpd" subj=system_u:system_r:httpd_t:s0 key=(null)

###試したこと
/var/www/html/ 以下のオーナーをapacheにし、
そのdatファイルはFTPでアップロードされるものでその際のユーザーはapacheグループに属しています。
該当ディレクトリのアクセス権は775、ファイルも775です。

###補足情報(言語/FW/ツール等のバージョンなど)
CentOS Linux release 7.3.1611 (Core)
PHP 7.1.4 (cli) (built: Apr 11 2017 18:26:18) ( NTS )

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

PHPのバージョンアップですか?
サーバーの引っ越しもあれば
SELinuxの設定は確認しましたか?

cmd

1/usr/sbin/getenforce

audit.logにログが出ていたりしませんか?

投稿2017/10/26 09:39

u-ta

総合スコア60

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/10/26 10:02

audit.logに関係しそうなログが出ていました。質問文に追記しています。なるほど、今ひとつ思い通りに動いていない原因がSELinuxにあるとは知りませんでした、勉強になります。
退会済みユーザー

退会済みユーザー

2017/10/26 11:53

# chcon -R -t httpd_sys_rw_content_t ./ などとやって、無事回避できました。
u-ta

2017/10/27 05:28

返信遅くなりました、解決してなによりです。
guest

0

試しに同じディレクトリにファイルを作成するスクリプトを書き、権限を確認してみては?
php の cli は apache じゃないんじゃないですかね?

投稿2017/10/26 09:33

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/10/26 09:51

こちらの情報を参考に、phpを入れ替えて構築しています。確かに動作確認不足感は否めないので、ちょっとテストしてみます。 CentOS 7 : PHP 7.1 インストール : Server World <https://www.server-world.info/query?os=CentOS_7&p=php71>
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.44%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問