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と関連する良く見られている質問

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でも構いません。

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

Qコントロールパネルのユーザとパスワードでユーザーのパスワードを忘れてしまった!

Windows2000で
ユーザーとパスワードで
このコンピュータのユーザー
という一覧にある、ひとつのユーザーの
パスワードを忘れてしまいました。

そのユーザーを選択して、
新しいパスワードの設定をすればそれで
いいような気がしますが、(そのユーザを一度削除して、作り直しても同じ)
以前のパスワードが知りたいのです。

どうしようもないのでしょうか?どうしても思い出さないと
いけないのですが、何か方法はないでしょうか?

どなたか助けてください。よろしくお願いします。

Aベストアンサー

 これが参考になるんじゃないでしょうか?


http://homepage2.nifty.com/winfaq/howtoresetpassword.html#ntpass

参考URL:http://homepage2.nifty.com/winfaq/howtoresetpassword.html#ntpass

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

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

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

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

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

Aベストアンサー

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

Qデータベース ユーザの「このユーザーが所有するスキーマ」

テストで作成したユーザーを削除したいのですが、データベースユーザーの
プロパティの画面で「このユーザーが所有するスキーマ」が選択されている
状態(□に緑の■が入っている)だと削除できません。

試している最中に□にチェックを入れて[OK]をクリックした記憶があります。

他のユーザーの同じ項目の□にチェックを入れて[OK]を押せば消せる
(他のユーザーへ移る)事は判ったのですが、今度はそのユーザーから
消すことができません。

他のデータベースを確認すると「このユーザーが所有するスキーマ」が
選択されているユーザーはありません。

質問1 他のユーザーに移して、このまま放かっておいていいのでしょうか?
質問2 「このユーザーが所有するスキーマ」はどんな意味でどんな使い方なのでしょうか?

よろしくお願いします。

Aベストアンサー

SQL Server 2005からはユーザとスキーマは分離されています。
スキーマを分けてテーブルなどのオブジェクトを作ることで、オブジェクトを分類して管理することができます。

すべてのスキーマには所有者がいます。
所有者になれるのはユーザのほかデータベースロール、アプリケーションロールです。
従来はスキーマはユーザと連動していたので、testusrユーザを作るとtestusrスキーマが作られ、そのスキーマ内にテーブルを作ってしまうと、testusrを削除できなくなってしまうという問題がありました。
今は書かれている通り別のユーザにスキーマの所有権を移すことができるので、所有するスキーマを全部他のユーザに移してしまえば、ユーザの削除も可能です。

今回話題になっているスキーマがdb_datareader, db_ownerなどのシステムにもともと作られていたスキーマなのであれば、それらの本来のスキーマ所有者は同じ名前のデータベースロールです。なので、同じ名前のデータベースロールに所有者を変更しておけばよいでしょう。
また、testschema1など自分で作成したスキーマで、そのスキーマ自体がもう不要なものなのであれば、スキーマフォルダからそのスキーマ自体を削除してしまっても構わないです。既にそのスキーマに削除できないオブジェクトが作成されているならば、どれか別のユーザに所有権を移してあげて問題ありません。適当なユーザがないならばdboユーザに所有権をつけてください。

SQL Server 2005からはユーザとスキーマは分離されています。
スキーマを分けてテーブルなどのオブジェクトを作ることで、オブジェクトを分類して管理することができます。

すべてのスキーマには所有者がいます。
所有者になれるのはユーザのほかデータベースロール、アプリケーションロールです。
従来はスキーマはユーザと連動していたので、testusrユーザを作るとtestusrスキーマが作られ、そのスキーマ内にテーブルを作ってしまうと、testusrを削除できなくなってしまうという問題がありました。
今は...続きを読む

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

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

QLinuxユーザーとMySQLユーザの関係

VPSで色々とためしてみているのですが、どうもユーザーとか権限とかよく分かりません。
「Linux自体のユーザー」と「MySQLのユーザー」との間には何か関係はあるのでしょうか?
うまく言えませんが、例えば「MySQLのユーザー」は「Linux自体のユーザー」になってなければならない---なんてことです

Aベストアンサー

>結局「MySQLのユーザー」は自動的に「Linuxのユーザー」になっているということですか。

うまく伝わらないのがもどかしいですが

仮にlinuxのユーザーがaaa,bbb,cccとありその他rootがいるとします
またmysqlのユーザーがaaa,xxx,yyyとありその他rootがいるとします

(1)linuxのユーザーはmysqlのユーザーと全く別物
linuxにあるbbb,cccはmysqlのユーザーとしては存在しません
またmysqlにあるxxx,yyyはlinuxのユーザーとして存在しません
たまたまaaaという同じ名前がある場合もあるし、rootのように
管理者を明示するようなある程度定型なユーザーも存在します。

(2)linuxに存在しないユーザーでもmysqlにログインできる
かりにaaaさんがxxxでmysqlにログインすることはできるし
同様にaaaさんがrootとしてログインすることもできます
もちろんaaaさんがaaaとしてログインすることもできます
とうぜんlinux上のrootが、yyyという一般ユーザーでログインすることもできます
繰り返しになりますがlinuxのユーザーはmysqlにとって直接意味はありません。

(3)プログラムは特定のlinuxユーザー権限で動いている
mysqld(サーバー)は起動時のオプションの指定で
特定の権限で動くことになります。
もっとつっこんで言えばすべてのlinuxのプログラムは「誰か」の権限で
動いています。
理論上mysqldをlinuxのroot権限で動作させることは可能ですが、
セキュリティ上の問題で万が一mysqldがセキュリティホールを利用して乗っ取られた
ときに、root権限で動いていればlinuxシステムに対してroot権限をもつことができ
システム全体が乗っ取られる危険があります。
したがってmysqldは「mysql」という特別なユーザー(この場合の特別とは
特別に権限を制限された・・・という意味に近い)によって実行されるわけです

(4)サーバーの実行権限者がlinuxファイルシステムへの実行権限者になる
仮に自分がlinuxのrootで、rootとしてmysqlにログインしたとしても
outfileする際に発揮できるのはサーバーが実行されている「mysql」という
(限定された)ユーザーの権限でしかありません。
mysqlにログインしているのは「クライアント」としてログインしているにすぎず
mysqldは常に「自分はmysql権限でしかうごかないよ」と認識しているからです

結論としてselect * from テーブル into outfile "/tmp/test.txt";
でファイル出力する場合、そのファイルの所有者はmysqlでしかなく
ls -la /tmp/test.txtとすると、mysql所有であることが確認できます

私の説明の仕方もわるく、うまく理解してもらえないのは申し訳ないですが
一度linuxの入門書から読み始めて最低限linuxがどうやって動いているか
学習されることをお勧めします

>結局「MySQLのユーザー」は自動的に「Linuxのユーザー」になっているということですか。

うまく伝わらないのがもどかしいですが

仮にlinuxのユーザーがaaa,bbb,cccとありその他rootがいるとします
またmysqlのユーザーがaaa,xxx,yyyとありその他rootがいるとします

(1)linuxのユーザーはmysqlのユーザーと全く別物
linuxにあるbbb,cccはmysqlのユーザーとしては存在しません
またmysqlにあるxxx,yyyはlinuxのユーザーとして存在しません
たまたまaaaという同じ名前がある場合もあるし、rootのように
管理者を...続きを読む

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では、
最初の行のスクリプトエンジン(?)の起動設定が無視されるような気がします。
間違っていたらすみません。

QOSを再インストールしましたが、起動するたびに「ユーザー環境」「ユーザ

OSを再インストールしましたが、起動するたびに「ユーザー環境」「ユーザープロファイルを読み込みできませんでした。既定のシステムファイルでログオンしました。」と出ます。消す方法を教えてください。
OSは、XPホームエディションです。

Aベストアンサー

この問題は過去にも多くの方が出会っているようですね。

ユーザプロファイルが壊れているようですね。

OSの再インストールはクリーンインストールでしょうか。
そうであれば再度インストールしてみるのも手かと思います。

あるいは管理者権限のある他のアカウント(なかったら新たに作る)でログオンして、下記を参考に作業してみたらいかがでしょうか。

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1328313563

他にも参考になりそうな記事を揚げておきます。

http://www.fmworld.net/cs/azbyclub/qanavi/jsp/qacontents.jsp?PID=5605-2948

「ユーザープロファイルを読み込みできませんでした。既定のシステムファイルでログオンしました」で検索するといろいろ出てきます。

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ランキング