1

私は今、約1週間この問題を抱えています。ただし、これらすべてのエラーが発生するのはこのサーバー上だけのようです。異なるパーティションで OS を複数回再インストールしようとしましたが、まったく同じことが起こっています。今、私はなぜそれが起こっているのか分かりません。

問題は、何らかの理由でコマンドを実行すると、lsPHP がファイル/ディレクトリのアクセス許可と所有者に対して多くの疑問符を返すことです。たとえば、コマンドを実行すると、次のls -al /ように返されます。

total 96
dr-xr-xr-x.  25 root root  4096 Oct 14 12:52 .
dr-xr-xr-x.  25 root root  4096 Oct 14 12:52 ..
-rw-r--r--.   1 root root     0 Oct 14 12:45 .autofsck
dr-xr-xr-x.   2 root root  4096 Oct 14 13:12 bin
d??????????   ? ?    ?        ?            ? boot
drwxr-xr-x.  17 root root  3740 Oct 14 12:46 dev
drwxr-xr-x.   2 root root  4096 Oct 14 12:52 downloads
drwxr-xr-x. 102 root root 12288 Oct 14 13:12 etc
drwxr-xr-x.   2 root root  4096 Sep 23  2011 home
dr-xr-xr-x.  11 root root  4096 Oct 14 12:41 lib
dr-xr-xr-x.   9 root root 12288 Oct 14 13:11 lib64
d??????????   ? ?    ?        ?            ? lost+found
drwxr-xr-x.   2 root root  4096 Sep 23  2011 media
drwxr-xr-x.   2 root root     0 Oct 14 12:46 misc
drwxr-xr-x.   2 root root  4096 Sep 23  2011 mnt
drwxr-xr-x.   2 root root     0 Oct 14 12:46 net
drwxr-xr-x.   3 root root  4096 Oct 14 12:41 opt
dr-xr-xr-x. 225 root root     0 Oct 14 12:45 proc
d??????????   ? ?    ?        ?            ? root
dr-xr-xr-x.   2 root root 12288 Oct 14 13:12 sbin
drwxr-xr-x.   7 root root     0 Oct 14 12:45 selinux
drwxr-xr-x.   2 root root  4096 Sep 23  2011 srv
drwxr-xr-x.  13 root root     0 Oct 14 12:45 sys
drwxrwxrwt.   5 root root  4096 Oct 14 13:11 tmp
drwxr-xr-x.  13 root root  4096 Oct 14 12:37 usr
drwxr-xr-x.  22 root root  4096 Oct 14 12:52 var

当然のことながら、ディレクトリ/root/lost+found戻り疑問符は、それらのアクセス許可がすべてのユーザー (drwx------. など) の読み取りと実行を許可していないためです。ただし、ディレクトリ/bootは、すべてのユーザーからの読み取りと実行を許可する権限があるにもかかわらず、疑問符も返します ( dr-xr-xr-x.)。

screen(GNU Screen)などのコマンドを実行すると、これはさらに問題になります。Screen では、 にあるディレクトリを使用する必要があります/var/run/screen。残念ながら、PHP から screen を実行するたびに、 というメッセージが返されますCannot make directory '/var/run/screen': File exists。SSH 経由で screen を実行すると、期待どおりに動作します。

ls -al /var/runディレクトリのアクセス許可を確認するために PHP を介してコマンドを実行すると、次のように返されます。

total 48
drwxr-xr-x. 23 root  root   4096 Oct 14 12:52 .
drwxr-xr-x. 22 root  root   4096 Oct 14 12:52 ..
d??????????  ? ?     ?         ?            ? ConsoleKit
drwxr-xr-x.  2 root  root   4096 Oct 14 12:46 abrt
-rw-r--r--.  1 root  root      5 Oct 14 12:46 abrtd.pid
-??????????  ? ?     ?         ?            ? acpid.pid
s??????????  ? ?     ?         ?            ? acpid.socket
-??????????  ? ?     ?         ?            ? atd.pid
-??????????  ? ?     ?         ?            ? auditd.pid
-??????????  ? ?     ?         ?            ? autofs-running
p??????????  ? ?     ?         ?            ? autofs.fifo-misc
p??????????  ? ?     ?         ?            ? autofs.fifo-net
-??????????  ? ?     ?         ?            ? autofs.pid
drwxr-xr-x.  2 root  root   4096 Feb 22  2013 certmonger
-??????????  ? ?     ?         ?            ? certmonger.pid
d??????????  ? ?     ?         ?            ? console
-??????????  ? ?     ?         ?            ? console-kit-daemon.pid
-??????????  ? ?     ?         ?            ? cron.reboot
-??????????  ? ?     ?         ?            ? crond.pid
d??????????  ? ?     ?         ?            ? cups
-??????????  ? ?     ?         ?            ? cupsd.pid
drwxr-xr-x.  2 root  root   4096 Oct 14 12:46 dbus
drwxr-xr-x.  2 root  root   4096 Feb 21  2013 faillock
d??????????  ? ?     ?         ?            ? hald
-??????????  ? ?     ?         ?            ? haldaemon.pid
drwx--x---.  2 root  apache 4096 Oct 14 13:04 httpd
d??????????  ? ?     ?         ?            ? lvm
d??????????  ? ?     ?         ?            ? mdadm
-??????????  ? ?     ?         ?            ? messagebus.pid
drwxr-xr-x.  2 mysql mysql  4096 Oct 14 12:52 mysqld
drwxrwxr-x.  2 root  root   4096 Feb 22  2013 netreport
d??????????  ? ?     ?         ?            ? plymouth
d??????????  ? ?     ?         ?            ? pm-utils
d??????????  ? ?     ?         ?            ? portreserve
-??????????  ? ?     ?         ?            ? rpc.statd.pid
-??????????  ? ?     ?         ?            ? rpcbind.lock
-??????????  ? ?     ?         ?            ? rpcbind.pid
s??????????  ? ?     ?         ?            ? rpcbind.sock
d??????????  ? ?     ?         ?            ? saslauthd
d??????????  ? ?     ?         ?            ? screen
d??????????  ? ?     ?         ?            ? sepermit
drwxr-xr-x.  2 root  root   4096 May 10 05:06 setrans
-??????????  ? ?     ?         ?            ? sm-notify.pid
-??????????  ? ?     ?         ?            ? sshd.pid
-??????????  ? ?     ?         ?            ? syslogd.pid
-??????????  ? ?     ?         ?            ? utmp
drwxr-xr-x.  2 root  root   4096 Feb 21  2013 winbindd

ユーザー root の下で SSH を介して同じコマンドを実行し、すべてのディレクトリのアクセス許可をクロス チェックすると、次のようになります。

total 164
drwxr-xr-x. 23 root      root      4096 Oct 14 12:52 .
drwxr-xr-x. 22 root      root      4096 Oct 14 12:52 ..
drwxr-xr-x.  2 root      root      4096 Oct 14 12:46 abrt
-rw-r--r--.  1 root      root         5 Oct 14 12:46 abrtd.pid
-rw-r--r--.  1 root      root         5 Oct 14 12:46 acpid.pid
srw-rw-rw-.  1 root      root         0 Oct 14 12:46 acpid.socket
-rw-r--r--.  1 root      root         5 Oct 14 12:46 atd.pid
-rw-r-----.  1 root      root         5 Oct 14 12:46 auditd.pid
prw-------.  1 root      root         0 Oct 14 12:46 autofs.fifo-misc
prw-------.  1 root      root         0 Oct 14 12:46 autofs.fifo-net
-rw-r--r--.  1 root      root         5 Oct 14 12:46 autofs.pid
----------.  1 root      root         5 Oct 14 12:46 autofs-running
drwxr-xr-x.  2 root      root      4096 Feb 22  2013 certmonger
-rw-------.  1 root      root         5 Oct 14 12:46 certmonger.pid
drwxr-xr-x.  2 root      root      4096 Feb 21  2013 console
drwxr-xr-x.  2 root      root      4096 Oct 14 12:46 ConsoleKit
-rw-r--r--.  1 root      root         5 Oct 14 12:46 console-kit-daemon.pid
-rw-r--r--.  1 root      root         5 Oct 14 12:46 crond.pid
----------.  1 root      root         0 Oct 14 12:46 cron.reboot
drwxr-xr-x.  3 root      lp        4096 Oct 14 12:46 cups
-rw-r--r--.  1 root      root         5 Oct 14 12:46 cupsd.pid
drwxr-xr-x.  2 root      root      4096 Oct 14 12:46 dbus
drwxr-xr-x.  2 root      root      4096 Feb 21  2013 faillock
drwx------.  2 haldaemon haldaemon 4096 Jul 19  2011 hald
-rw-r--r--.  1 root      root         5 Oct 14 12:46 haldaemon.pid
drwx--x---.  2 root      apache    4096 Oct 14 13:04 httpd
drwx------.  2 root      root      4096 Feb 22  2013 lvm
drwx------.  2 root      root      4096 Feb 21  2013 mdadm
-rw-r--r--.  1 root      root         5 Oct 14 12:46 messagebus.pid
drwxr-xr-x.  2 mysql     mysql     4096 Oct 14 12:52 mysqld
drwxrwxr-x.  2 root      root      4096 Feb 22  2013 netreport
drwxr-xr-x.  2 root      root      4096 Feb 22  2013 plymouth
drwxr-xr-x.  4 root      root      4096 Oct 14 12:40 pm-utils
drwxr-xr-x.  2 root      root      4096 Oct 14 12:45 portreserve
-r--r--r--.  1 root      root         0 Oct 14 12:45 rpcbind.lock
-rw-r--r--.  1 root      root         5 Oct 14 12:45 rpcbind.pid
srw-rw-rw-.  1 root      root         0 Oct 14 12:45 rpcbind.sock
-rw-r--r--.  1 rpcuser   rpcuser      5 Oct 14 12:45 rpc.statd.pid
drwxr-xr-x.  2 root      root      4096 Nov 27  2012 saslauthd
drwxrwxr-x.  2 root      screen    4096 Jul 19  2011 screen
drwxr-xr-x.  2 root      root      4096 Feb 21  2013 sepermit
drwxr-xr-x.  2 root      root      4096 May 10 05:06 setrans
-rw-------.  1 root      root         5 Oct 14 12:45 sm-notify.pid
-rw-r--r--.  1 root      root         5 Oct 14 12:46 sshd.pid
-rw-------.  1 root      root         5 Oct 14 12:45 syslogd.pid
-rw-rw-r--.  1 root      utmp      3456 Oct 14 12:47 utmp
drwxr-xr-x.  2 root      root      4096 Feb 21  2013 winbindd

繰り返しになりますが、/bootディレクトリと同様に、すべてのユーザーに読み取りと書き込みを許可するアクセス許可 (-chmod 0775) があるにもかかわらず、ディレクトリdrwxrwxr-x.はアクセス許可と所有者に疑問符を返します。

screen から返されたこのエラーについて 1 つか 2 つの質問しか見つけられませんでしたが、回答はありませんでした。これを機能させるための簡単な修正は、/var/run/screenディレクトリを削除し、ユーザーがディレクトリへの書き込みを許可することでPHPがこれを再作成できるようにすること/var/runでした。ディレクトリのパーミッションを変更しても何も起こらないので、root ユーザーからディレクトリを再作成し、所有者を Web サーバー ユーザーにします。

これは修正ですが、必ずしもすべてが正常に機能するとは限りません。java次に、画面内でJVM (コマンド) を起動しようとすると、次のエラーが返されます。

Error occurred during initialization of VM
Could not reserve enough space for code cache

この時点で、何が起こっているのか手がかりがなかったので、私はただあきらめました.

誰かが私の状況に光を当て、何が起こっているのかを説明したり、修正を提供したりできますか.

これが発生しているマシンは、16 GB の RAM、500 GB の HDD、Intel(R) Xeon(R) CPU E3-1230 V2 @ 3.30GHz を搭載した CentoOS 6.4 を実行する専用サーバーです。コマンドを使用するpartedprint、パーティションについて次のように返されます。

Model: ATA WDC WD5003AZEX-0 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos

Number  Start   End    Size    Type     File system     Flags
 1      1049kB  466GB  466GB   primary  ext3            boot
 2      466GB   500GB  34.4GB  primary  linux-swap(v1)

PHP がセーフ モードで実行されていません。

これは、コマンドなどを取得するために実行したコードですls。毎回 Web サーバーから実行されます。

<?php
error_reporting(E_ALL);
ini_set('display_errors', 'On');

echo `whoami`;
echo "\n";

echo `ls -al /var/run`;
echo "\n";
echo `ls -al /`;
?>
4

1 に答える 1

0

この問題は に関連していましたSELinux無効にすると問題が解決しました。プロセスがサブプロセスを実行しようとしているためです。

于 2015-03-20T18:18:03.487 に答える