ホームページ >バックエンド開発 >PHPチュートリアル >Centos および Debian PHP 環境変数の問題。

Centos および Debian PHP 環境変数の問題。

WBOY
WBOYオリジナル
2016-06-23 14:17:011134ブラウズ

PHPのshell_execを通じてシェルスクリプトを実行します。
シェルスクリプトは Python に対して実行されます。

Python スクリプト、os.path.expanduser('~')
Centos システムでは、/root/ が取得されます。
Debian システムでは、/home/www が取得されます。

PHP の実際のバージョン ユーザーは www ですが、上記のシェル スクリプトは root 権限で実行されます。


Centos では、root ユーザーのホーム ディレクトリが取得されます
/root/

、Debian では、www ユーザーのホーム ディレクトリが取得されます
/home/www

一貫性を保つ方法については、私は少し理解しています。混乱した。


ディスカッションに返信(解決策)

あなたはファイルをchownしました、
phpでget_current_userを使用すると、すべてwwwになるはずです

phpが実行されるとき、それはWebサーバーの現在のユーザーであるため、次のようになりますユーザーは一貫性がありません。一貫性を保ちたい場合は、~ を使用しないでください。または、シェルで Python を実行するときに www ユーザーを使用してください

実際、これは、php 実行の現在のユーザーも意味します。 Centos では root です。 。 。

ファイルを chown します。
php で get_current_user を使用します。すべて www になるはずです

これは問題ではありません。

php が実行されるとき、それは Web サーバーの現在のユーザーであるため、直接シェル内のユーザーとは矛盾します。一貫性を保ちたい場合は、実行時に ~ を使用しないでください。または www ユーザーを使用してください。シェル内の Python

実際、Centos で php を実行する現在のユーザーが root であることも示しています。 。 。

いくつかのエラーは解決されており、一貫性があります。
これで、すべて www ユーザーになります。
php スクリプト (www ユーザー) -> C (特権 root ユーザー) -> python (代わりに、www ユーザー) Python が www のメイン ディレクトリを取得する方法がよくわかりません。
シェル ID -u は 0、つまりルートです。論理的には、ルートのホーム ディレクトリを取得する必要があります。
代わりに、Python は実際の PHP ユーザー www のホーム ディレクトリを取得します。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。