phpの実行ユーザーは設定・変更できませんでしょうか。

CGIなら、suexec を用いて実行ユーザーを設定・変更できますが、

phpは全てhttpdサーバーのユーザーで実行されます。

他のユーザーで実行するように設定・変更できないでしょうか。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

sudoつかってみたらぁ?


PHP自体にはできないけどPHPから実行するコマンドにはできるようになるし
    • good
    • 0

単純にCGI版のPHPを使えばいいのではないでしょうか?

この回答への補足

CGI版って、モジュール版と両立できませんよね。

補足日時:2001/05/11 18:18
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qphp/cgi , php(cgi)とは?

phpを勉強するのに当たって無料レンタルサーバーを借りたのですが、PHPをそのままおけば出来る物だと思っていたのですが、できなかったので詳細をみたところPHP/cgiと書かれていたのですがどういうことなのでしょうか?
この意味をわからなければPHPを使用することはできないと思い質問させていただきました。
PHPをCGIにする方法(?)とできればそのやり方をアドバイスして頂きたいのですがよろしくお願いします。。

Aベストアンサー

CGIというのは、「Common Gateway Interface」の略になります。
webサーバがリクエストに応じてプログラムを呼び出す(実行する)ための仕組みです。
言語は対応さえしていれば何でもいいです。

webサーバ(例えばapache)に拡張子が.cgiというリクエストがきたら、プログラムを起動してねと設定しておきます。
このとき、拡張子は設定次第ですので、.phpでも構いません。

すると、リクエストのあったファイルを実行ファイルとして認識し、実行しようとします。
そしてその結果をリクエストにたいして返します。
このとき、そのファイルの冒頭に
#!/usr/bin/php
などと書いておくことで、そこに指定してあるものによって実行されます。

極端にいうと、指定してある拡張子のリクエストが来ると、webサーバはそのファイルを実行するようにOSに依頼する。
OSはそれがそのままで実行できるものなら実行するけど、phpファイルはただのテキストファイルなので実行できないが、冒頭に書いてあるPHP本体にそのファイルを渡して実行させる。
というようなイメージです。(イメージね)

これに対して、アップロードするだけでいいんじゃ?っていっているのは、webサーバのモジュールとして組み込んでいる場合になります。
簡単にいえば、apacheが/usr/bin/phpと同じようにPHPを解釈して実行できるようにapacheに機能を追加しているものです。
mod_phpですね。
これは別にPHPの専売特許ではなく、perl版、python版、ruby版など他にもあります。

CGI形式は、webサーバとは別にプログラムを起動して実行するので、
webサーバとは異なる権限で実行することも可能です(suexec)
ただ、別プログラムを起動し実行させるので、その分実行が遅くなります(リクエストの度に起動するので。予め起動しておいて、実行待ちにする方法もあります)

モジュール形式は、webサーバの機能の一部ですので、webサーバの権限で実行します。また、別のプログラムを起動する必要はないので、その分速くなります。

これらの設定はレンタルサーバで行われているはずなので、PHPファイルを解釈実行させるプログラムを冒頭で宣言しておくだけでCGIとして実行されます。

CGIというのは、「Common Gateway Interface」の略になります。
webサーバがリクエストに応じてプログラムを呼び出す(実行する)ための仕組みです。
言語は対応さえしていれば何でもいいです。

webサーバ(例えばapache)に拡張子が.cgiというリクエストがきたら、プログラムを起動してねと設定しておきます。
このとき、拡張子は設定次第ですので、.phpでも構いません。

すると、リクエストのあったファイルを実行ファイルとして認識し、実行しようとします。
そしてその結果をリクエストにたいして返...続きを読む

QPHP/CGIを用いた応募フォーム…

いつもお世話になっています。

現在プレゼント系のサイトを運営しておりますが、応募の際「SendMail」のCGIを使い応募データーをメールで受信しているため応募が集中した際大変サーバーに負荷が掛かって悩んでいます。

そこで応募データーをメールで受信するのではなくそのままWeb上で確認したりするCGIやPHPなどご存知の方がいればご教授頂きたくご質問させて頂きました。

分かりにくいご質問ですがよろしくお願い致します。

Aベストアンサー

sendmail関数を使わずに掲示板のログのように.datファイルに書き込めば負荷は和らぐと思います。
当然.datファイルの保護をしなくてはなりません。
それを管理側が閲覧するにはファイルを関数で呼び出してhtmlに書き出す。
それだけでは確認しずらいので必要に応じてテーブルタグなどで見やすく工夫する。
こんなところでしょうか。
閲覧する際のhtmlもパスワードなどで保護しなければ、誰でもデータを閲覧できるようになってしまいます。

QPHPをCGIとして実行する方法

PHPをCGIとして実行する方法

現在PHP(モジュール版)にて開発を行っているのですが、
仕様上.htaccessを使用してcgi-binディレクトリ内にあるphpファイルをCGIとして
実行しなければならなくなりました。
下記の記述方法だと500エラーが発生してしまい、大変困っています。

<Directory "/usr/~(任意のcgi-binディレクトリのフルパス)~/cgi-bin">
AddType application/x-httpd-cgi .php
</Directory>


因みに.htaccessはcgi-binディレクトリの1階層上に設置しています。
単に「AddType application/x-httpd-cgi .php」を記述する分には誤作動は起さないのですが、出来れば指定のディレクトリ内だけで指定したいと考えています。
もし思い当たる点がありましたら、ご教授お願い致します。
下記に環境を記しておきます。

【環境情報】
OS:FreeBSD 6.2(レンタルサーバ)
PHP:5.2.4

Aベストアンサー

.htaccess での指定内容は、.htaccess を置いたディレクトリおよびその下に対してのみ有効であり、
<Directory>ディレクティブは .htaccess では指定できません。

cgi-bin ディレクトリに .htaccess を作って、その中で
AddType application/x-httpd-cgi .php

とだけ指定するようにしてみてください。

Q拡張子をphpではなくcgiで実行する方法

添付つき送信フォームを、test.htmlからsend.phpを
<form method="post" action="test/send.php">
で定義して実験成功しました。

このphp拡張子をcgiに変更して
<form method="post" action="test/send.cgi">
ファイル名も変更しましたが、エラーになります。

ルートディレクトリ - test.html
          - testフォルダ - send.cgi

Apacheのhttpd.confの設定は下記サイトの
「Windows XPでPHPを動作させてみよう!」のCGIの設定です。
http://aki.adam.ne.jp/index.php

拡張子cgiで実行する手段を宜しくお願い致します。

Aベストアンサー

#6です。
すみません
駄目でしたね。

AddTypeの作戦でOKだと思いますが、
cgiの定義がcgi-scriptとかぶって、
エラーになっているのだと思います。

PerlのCGI等は、動かなくなる思いますが、
httpd.confのcgi関係の部分をコメントアウトしたらどうでしょう?

AddType ■■■ cgi
AddHandler ■■■ cgi
LoadModule cgi_module modules/mod_cgi.so(?)
AddModule mod_cgi.c(?)

といったところだと思います。

たぶん、PerlのCGIとの共存(同一拡張子)は、
無理だと思います。
プロセス起動の普通のCGIを使えば、原理的にできるのですが、
ActivePerlなどを見る限り、Windowsでは、
最初の行のスクリプトエンジン(?)の起動設定が無視されるような気がします。
間違っていたらすみません。

Qapacheのhttpd.confにAdd Type application/x-httpd.phpが見当たらない

こんにちは

手動でPHPをインストールしたのですが、
apacheと関連付けるために、apacheのhttpd.confに
「apacheのhttpd.confにAdd Type application/x-httpd.php」が見当たりません。
こういった場合は、何がいけないのでしょうか。
また、自分で追記してもいいのでしょうか。
よく追記すると、apacheが起動できなくなります。

Aベストアンサー

> apacheと関連付けるために、apacheのhttpd.confに
> 「apacheのhttpd.confにAdd Type application/x-httpd.php」が見当たりません。
> こういった場合は、何がいけないのでしょうか。

PHP はメジャーだから、あらかじめ MIME タイプに定義されているはずだ、と思い込んでいるのがいけない :-)

追加してください。

<IfModule mod_mime.c>
AddType application/x-httpd-php3 .php3
AddType application/x-httpd-php3-source .phps

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfModule>



> よく追記すると、apacheが起動できなくなります。

そりゃあ、きちんと定義しないから。起動できなくてもエラーログかイベントビューア(きっとあなたは Windows ユーザ)に原因が載っています。


1.3.20 のときには、httpd.conf にコメントとして載っていたのだけれど、1.3.24 では、
コメントとしての記述が無いんですね。

# たまたま、Apache をインストールしてて、たった今、動作確認が終わったところ

> apacheと関連付けるために、apacheのhttpd.confに
> 「apacheのhttpd.confにAdd Type application/x-httpd.php」が見当たりません。
> こういった場合は、何がいけないのでしょうか。

PHP はメジャーだから、あらかじめ MIME タイプに定義されているはずだ、と思い込んでいるのがいけない :-)

追加してください。

<IfModule mod_mime.c>
AddType application/x-httpd-php3 .php3
AddType application/x-httpd-php3-source .phps

AddType application/x-httpd-php .php
Add...続きを読む


人気Q&Aランキング

おすすめ情報