コンテキスト:私は、プロジェクト内のさまざまなデータを処理するために作成したスクリプトライブラリ(.shと.php)にワンクリックでアクセスできるブラウザ内のコントロールパネルを作成しています。これはプロジェクトデータを管理するための「ワンストップショップ」です。
私は良い進歩を遂げました。私はApache、PHP、MySQLを実行しており、フロントエンドは次の場所にあります。http://localhost。これまではそんなに上手だった!
今私が持っている問題はこれです。デフォルトのApacheユーザー(私のコンピュータでは「_www」と呼ばれる)が私のスクリプトのいくつかを実行する権限がないようであることを除いて、うまく機能するindex.phpがあります。
だから私がするとき:
<?php
echo `ls`;
echo `whoami`;
echo `/Path/To/Custom/Script.sh`;
?>
ls
との出力を得ましたwhoami
が、カスタムスクリプトでは何の結果も得られませんでした。私がしたように(対話型シェルで)カスタムスクリプトを実行すると、もちろん動作します。
最後に私の質問は:何ですか?正しい設定する方法です。 Webサーバーは私のサーバーのように動作しますか?または、_wwwが自分のカスタムスクリプトを実行できるように権限を変更しますか?
ベストアンサー1
/usr/local/bin
最善の方法は、Webサーバーが実行するのに十分な権限を持つ標準の場所(たとえば)にスクリプトを配置することです。
これがオプションでない場合は、スクリプトグループを変更してからchgrp groupname path
そのグループに対して実行可能にすることができますchmod g+x path
。_www
ユーザーがまだグループにいない場合は、グループに追加しますusermod -aG groupname _www
。