web-dev-qa-db-ja.com

phpスクリプトはApacheuidで実行されています

Apache2とphp5でdirectadminを実行しているvpsがあります。PHPスクリプトはファイルの所有者uidではなくApache:apacheで実行されることがわかったので、今日まですべて正常に機能していました。 。これはシステム全体を台無しにしましたが、主な問題は、なぜsuphpが突然動作を停止するのか理解できないことです。

いくつかの情報:

_root # php -v
PHP 5.2.17 (cli) (built: Aug 17 2011 21:02:28)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies
_

httpd.conf

_User Apache
Group Apache
...
<Directory "/var/www/html">
    Options -Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
   <IfModule mod_suphp.c>
        suPHP_Engine On
        suPHP_UserGroup webapps webapps
    SetEnv PHP_INI_SCAN_DIR
   </IfModule>
</Directory>


<VirtualHost 192.168.56.55:80 >
        ...
    SuexecUserGroup robert robert
        ...
        <Directory /home/robert/domains/testing.com/public_html>
        Options +Includes -Indexes

        php_admin_flag engine ON
    </Directory>
</VirtualHost>
_

extra/httpd-php-handlers.conf

_<FilesMatch "\.(inc|php|php3|php4|php5|php6|phtml|phps)$">
AddHandler application/x-httpd-php .inc .php .php3 .php4 .php5 .phtml
AddHandler application/x-httpd-php-source .phps
</FilesMatch>
_

/ var/www/html内でphpinfo()を実行するか、home/robert /ドメイン/testing.com/public_html(ファイル所有者robert:robertを使用)を実行すると、結果は同じになります:User/Group Apache(48)/48

どうすればこれを解決できますか?

  • そしてsuphpログは空です:(
1
develroot

suPHPがインストールされていない可能性があります。

条件付きロードステートメントを使用しているため、Apacheのアップグレード時にsuPHPが削除されている可能性があります。

DirectAdminボックスはもう使用していませんが、カスタム構成の上書きで問題が発生していたことはわかっています。

  1. SuPHPが実際にApacheにインストールされていることを確認します。使用する:

    httpd -l

組み込みのApacheモジュールを一覧表示します。または、構成でLoadステートメントを探します。テストする簡単な方法は、条件付きロードステートメントにコメントを付けてから、Apacheを再起動することです。

  1. ドメインでsuPHPが有効になっていること、およびhttpd構成でユーザー/グループの仕様が正しいことを確認してください。 (あなたが投稿したものはよさそうです。)

  2. SuPHPを有効にすると、ディレクトリを正しいユーザーにchownすることができます。

2
jeffatrackaid

正直なところ、(管理者の観点から)suphpは悪い考えであり、危険です。共有システムでは二重にそうです。そうは言っても... suphpがロードされているのは確かですか?モジュールのロードに失敗したか欠落している場合は完全に無視される、適切にフォーマットされたステートメントがあります。

0
TheCompWiz