XAMPPで自宅サーバー勉強中です、
レンタルサーバーの時はPHPファイルの1行目に
#!/usr/local/bin/php
と記入し拡張子をabc.cgiとしていました、
自宅サーバーの場合の1行目と拡張子はどのように
書くのですか、よろしくお願いします。

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

A 回答 (11件中1~10件)

phpは、本来


#!/usr/local/bin/php
という記載は不要です。

拡張子を abc.cgi から abc.php とすれば、1行目がなくても動きます。

仮に
#!/usr/local/bin/php
を入れたままにすると、自宅サーバーでは動くが、レンタルサーバーでは
動かない、という事が起こり得ますので、やめるのが得策です。

この回答への補足

回答ありがとうございます
記載は不要でいご来ませんでした
phpの中にCGIが入っています
自宅サーバーでは動くようにしたいのですが
よろしくお願いします。

補足日時:2009/05/22 11:07
    • good
    • 0

>まずは説明から


>PHPには、CLI版とCGI版が有ります。
>#!/usr/local/bin/php は、LINUXなどのUNIX系OSにて
>その後のスクリプトをどのシェル(または言語コマンド)で実行するか
>を指定するためのものです。
>上記の記載は、OSに対してCLI版のphpの実行を指定しています
>御利用のレンタルサーバーはUNIX系OS上でCLI版のPHPを使用していることになります。
CGIとサーバのモジュールが理解できてない方のようですね。

>WindowsのXAMPPではCGI版でしかWEBからは起動できません。
Windows版のXAMPPでデフォルトでインストールされているのは
モジュール版。
さらにはCLI版(コマンドライン版)もパスを通せばコマンドコマンドプロンプト側で問題なく使える。
    • good
    • 0

>> XAMPP for Windows です



まずは説明から
PHPには、CLI版とCGI版が有ります。

#!/usr/local/bin/php は、LINUXなどのUNIX系OSにて
その後のスクリプトをどのシェル(または言語コマンド)で実行するか
を指定するためのものです。
上記の記載は、OSに対してCLI版のphpの実行を指定しています
御利用のレンタルサーバーはUNIX系OS上でCLI版のPHPを使用していることになります。

WindowsのXAMPPではCGI版でしかWEBからは起動できません。
CGI版は、拡張子だけでスクリプト言語を判定します。
apacheのhttpd.conf内に有る下記ディレクティブでphpを実行するファイルの拡張子を設定します。
  AddType application/x-httpd-php .php
デフォルトでは、上記の様に.phpでしょう。
旧バージョンでは .php4になっている場合も有ります。

そこで回答
>> 自宅サーバーの場合の1行目と拡張子はどのように書くのですか
御利用の環境はCGI版なので 1行目は、不要です
拡張子は、httpd.confのAddType application/x-httpd-php で確認してそこの書いてある拡張子を使います。無い場合は
AddType application/x-httpd-php .php を追加しましょう。そうすればphpの拡張子で動きます。
    • good
    • 0

ソースコードを拝見したところ、PHPのみ記述されていますね。


<?php ~ ?> の部分がPHPのコードになります。

ご存知かも知れませんが、PHPは

<?php
$name = "hogehoge";
print "<html>";
print "<body>";
print "Hello, $name";
print "</body>";
print "</html>";
?>

のように、全てをPHPで記述する方法と

<html>
<body>
<?php
$name = "hogehoge";
print "Hello, $name";
?>
</body>
</html>

のように、HTMLの一部にPHPを記述する方法があります。どちらも拡張子は .php にするのが一般的で、もちろんどちらも同じ動作をします。

hana3090さんの場合は後者の記述をしていますね。

また一部のレンタルサーバではPHPの1行目に

#!/usr/local/bin/php

を記述しなければいけないことは私も調べてみて分かりました。
しかし、hana3090さんの自宅サーバではそのような記述は必要ないと思います。
    • good
    • 0

>> XAMPPで自宅サーバー勉強中です


サーバーの環境を明示しましょう

XAMPPには以下の4種類が有りますので、これ開示しないと
適切な回答は得られないでしょう。

XAMPP for Linux
XAMPP for Windows
XAMPP for Mac OS X
XAMPP for Solaris

この回答への補足

XAMPP for Windows です
よろしくお願いします。

補足日時:2009/05/22 20:11
    • good
    • 0

>HTMLの中にperl文をいれています、


だったら板違いだし
>#!/usr/local/bin/php
なんていう事をすることが意味不明。

この回答への補足

すみませんphp文でした
レンタルサーバーの時のコードです
#!/usr/local/bin/php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML lang="ja">
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=Shift_JIS">
<STYLE type="text/css">
<--
A {text-decoration: none;}
A:LINK {text-decoration: none; color: wwhite; font-weight: bold;}
A:VISITED {text-decoration: none; color: white; font-weight: bold;}
A:HOVER {text-decoration: underline; color: red; font-weight: bold;}
HTML {cursor:url(./okappa61.cur);}
.x14font {
mso-style-parent:style0;
font-size:18.0pt;
font-family:HG丸ゴシックM-PRO, monospace;
mso-font-charset:128; }
-->
</STYLE>
<TITLE>リンク</TITLE>
</HEAD>
<SCRIPT LANGUAGE="JavaScript"><!--
var no = 0;
function back() {
document.body.background="./kabe/p"+no+".jpg";
no++;
if(no >=10) { no = 0; }
window.setTimeout("back()", 6000);
}

//--></SCRIPT>
<?php
print "<body background=\"./kabe/$kabegami\" link=\"#ffccff\" text=\"#ffffff\" vLink=\"#ffffcc\">\n";
?>
<CENTER><?php
#########
print "<FONT SIZE=\"5\" COLOR=\"RED\"><A HREF=\"http://web.infoseek.co.jp/\">★★★★★★</A></FONT><BR><BR>\n";
#########
$stock = array (
"http://www.forum"=>"月月月月☆☆☆☆☆",
"http://www.jp/~oneenew/main.html"=>"月月☆☆☆☆☆",
"http://ch/bbs1/"=>"月月☆☆☆☆",
"http://miwaku.web.infoseek.co.jp/"=>"月月楽部");
$kaisuu = 0;
foreach($stock as $key => $value) {
$kaisuu++;
if($kaisuu == 1) { $iro = "#000080"; $iti = "left"; }
elseif($kaisuu == 2) { $iro = "#000000"; $iti = "center"; }
else { $iro = "#0000FF"; $kaisuu = 0; $iti = "right"; }

print"<TABLE BGCOLOR=\"#FF0000\" BORDER=\"0\" WIDTH=\"30%\" cellpadding=\"0\" cellspacing=\"1\" align=\"$iti\">\n";
print"<TR><TD HEIGHT=\"30\" align=\"center\" BGCOLOR=\"$iro\"><A HREF=\"{$key}\" TARGET=\"_blank\">{$value}</A></TD></TR>\n"; }
$s = date("s",time());
foreach($stock as $key => $value) {
$k++;
if($k == $s) { print "<TR><TD HEIGHT=\"30\" align=\"center\" BGCOLOR=\"#FFFFFF\"></TD></TR>\n";
print "<TR><TD HEIGHT=\"30\" align=\"center\" BGCOLOR=\"$iro\"><A HREF=\"{$key}\" TARGET=\"_blank\">ランダムリンクno{$k}</A></TD></TR>\n";
break; }
}
print"</TABLE>\n";
?>
</CENTER></BODY>
</HTML>
よろしくお願いします。

補足日時:2009/05/22 19:27
    • good
    • 0

回答#1をしたx_jouet_xです。


私の早合点(perlと勘違い)で誤った回答をしてしまいました。申し訳ないです。

回答#2および#5の方が説明されている通りです。

XAMPPを使用されているのであれば、PHPであれば
<?php
.....
?>
のように記述した *.php ファイルを\xampp\htdocs配下に置けば動作すると思います。

一般的なサーバ環境ではApacheとPHPをインストールすると、Apacheの設定ファイル(httpd.conf)が書き換えられてPHPをCGIモードで動作させる場合でもPHPファイルの1行目に #!..... の記述は必要なくなるような設定になるはずです。

hana3090さんが使用されているレンタルサーバは httpd.conf で別の設定がされているのだと思います。

http://memorandum.kurashian.com/2009/03/post-13. …

上記のURLにPHPをCGI版としてApacheで利用する場合の httpd.conf の記述例が記載されています。

この回答への補足

すみません
HTMLの中にperl文をいれています、
よろしくお願いします。

補足日時:2009/05/22 17:50
    • good
    • 0

>HTMLファイルの中にCGIが入っています


そもそもcgiは言語ではなくてシステムの事です。
PHPの場合、CGIモードで動かせばCGIとして動き
Webサーバのモジュールとして動かせばモジュールとして動きその場合はCGIではありません。
ですから
>phpの中にCGIが入っています
なんて状態は起きません。
    • good
    • 0

では、ちょっと逃げ気味ですが



#!/usr/local/bin/php



#!C:\xampp\php\php.exe

等にしてみてください。

C:\xampp\php\php.exe

はphp.exeが置いてあるフォルダのパスです。
    • good
    • 0

>記載は不要でいご来ませんでした


>phpの中にCGIが入っています

phpのファイルの中に、別のCGIが入っているということでしょうか?

例えば、以下のようなファイルを作って、hello.phpとして保存し、見てみると動きますか?
//------ここから(この行は不要)--------
<?php
echo "hello";
?>
//------ここまで(この行は不要)--------

この回答への補足

回答ありがとうございます
>phpのファイルの中に、別のCGIが入っているということでしょうか?
HTMLファイルの中にCGIが入っています
レンタルサーバーの時は動いていました、

>以下のようなファイルを作って、hello.phpとして保存し、見てみると動きますか?
動きます、

よろしくお願いします。

補足日時:2009/05/22 12:16
    • good
    • 0

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

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

Q犬は中国語ではどういう意味?

中国語で「犬」は「狗」と書きますよね。
でも、中国語にも「犬」という漢字はあると思うんですが、どういう意味になるんでしょうか?

それから、同様に「赤い」は中国語では「红」ですが、「赤」という漢字は中国語では どういう意味なんでしょうか?

Aベストアンサー

「犬」もいぬの意味です。狗の学名です。
牧羊犬、蝴蝶犬など犬の名称に使うのはほとんどですね。
また、「鸡犬不宁」などの熟語にも用いています。
「赤」の意味は多いです。
1.红色,比朱色稍暗的颜色(朱色よりちょっと暗い色。すみませんが、朱色は日本語でどう言うのかがわかりません。):赤血。赤字(日本語の赤字と同じ意味で、「赤い字」と「支出が収入より多い」の二つの意味を持っています。)。
2.真诚,忠诚(誠、忠実):赤诚(极其真诚)。赤忱。赤子(赤ちゃんの意味ですが、
赤ちゃんみたい純潔なこころを持っている人間を表現するのは一般です。)。赤胆忠心。
3.空无所有(何もないこと):赤手空拳。赤地千里。
4.裸露(裸の状態):赤脚(光脚)。

Q#!/usr/local/bin/phpはどこに書くのですか?

phpでWebページを作っています。
レンタルサーバーのマニュアルに「PHPで記述したCGIスクリプトの1行目に #!/usr/bin/phpまたは #!/usr/local/bin/phpと記述して下さい。
」とありますが、hoge.phpの「<?php ~ ?>」の「<?php」の次の行に書くのでしょうか?それとも前の行に書くのでしょうか?
また、hoge.phpの中身が「<html><head></head><body> ~ <?php ~ ?> ~ </body></html>」の場合はどこに記述するのでしょうか?

初心者的な質問ですみませんが、よろしくお願いします。

Aベストアンサー

>1行目に書いたら、この「#!/usr/bin/php」という記述がブラウザに表示されてしまいました。
ということなら#!/usr/bin/phpの記述そのものが不要ということですね
phpをcgiとして動かすときに必要ということでしょうか
hoge.phpをhoge.cgiのファイル名で実行する場合その1行目に#!/usr/bin/phpが必要になります。
cgiの場合は実行権や改行コードに注意が必要となります。

Q【中国語】中国語で今日の意味の漢字を教えてください。 あと中国語の許は苗字でいると思いますがその発音

【中国語】中国語で今日の意味の漢字を教えてください。

あと中国語の許は苗字でいると思いますがその発音はキョと読みますか?

あと京は中国語でなんと発音しますか?

以上3点教えてください。

Aベストアンサー

中国語で今日の意味の漢字は「今日」と「今天」。どちらでもいい。
中国語で「許」の発音は「xu3」、大体、「しゅう」と読みます。(あまり似ない-_-b)でも、日本語の場合に音読みが大丈夫。例え、許さん(きょさん)。
「京」の発音は「jing1」、大体、「じん」と読みます。

Q/usr/local/binへのパス追加

PHP、もしくはLinuxの質問をさせていただきます。

ソースからPHPをインストールした場合、
またはpearコマンドでライブラリをインストールした場合など、
php、phpize、phingなどのコマンドのエイリアスが/usr/local/binに作成されたりされなかったりしている気がしています。
複数の環境でインストールを実行しているので、環境要因かもしれません。
これらは、何らかの設定でエイリアスが作成されたりされなかったりするものなのでしょうか?

OSはCentOS5です。

Aベストアンサー

configure オプションを適切に設定しないと、デフォルトで振舞われちゃうので環境で差がでちゃうのかも。

configure --help でオプションを確認して必要なものを設定してみてはどうでしょう?

それ以外の理由は解らないのですが、出来上がった Makefile を確認してみてはどうでしょうか?

Q中国語と日本語で意味の違う言葉を教えて下さい。

「手紙」という言葉は中国語では「トイレットペーパー」を意味していると聞きましたが,ほかにも中国語と日本語で意味の違う言葉を教えて下さい。
どうぞよろしくお願いします。

Aベストアンサー

有名なものばかりですが
「飯店」=ホテルのことですね。
「愛人」=奥さんのことを指します。

Q/usr/local/lib/phpとはどういう意味ですか?

include_pathを設定して、どのディレクトリからも用意にphpをインクルードできるようにしたいのですが、.htaccessへの書き方やパスの書き方があまりにもわからないので質問させていただきました。

PHPの勉強を始めたのは最近で、私の知っているパスはこれだけ。
1 http://~から始まる絶対URI?パス?
2 ./ とか ../ などの相対パス。
の2つだけ。

include_pathについて、検索エンジンで調べるとほとんどのサイトで次のように書いてありまして、私にはよく分かりません。

php_value include_path ".:/usr/local/lib/php"

まず、include_pathの書き方はこのようで良いというのはわかりましたが、/ から始まっているので、httpなくていいの?..なのか.なのかどっちなのかもわからない、初めて目にしたもので……。

PHPの勉強をしていると、よく/から始まるURLをみるのですが、これについて説明しているところが見当たらず、当り前の知識のような感じなのでしょうか?

これらについて、教えてください。

include_pathを設定して、どのディレクトリからも用意にphpをインクルードできるようにしたいのですが、.htaccessへの書き方やパスの書き方があまりにもわからないので質問させていただきました。

PHPの勉強を始めたのは最近で、私の知っているパスはこれだけ。
1 http://~から始まる絶対URI?パス?
2 ./ とか ../ などの相対パス。
の2つだけ。

include_pathについて、検索エンジンで調べるとほとんどのサイトで次のように書いてありまして、私にはよく分かりません。

php_value include_path...続きを読む

Aベストアンサー

たくさん説明どころがあって悩ましいですね。(笑

まず、ご自分でもなんとなく気づいている感じですが、
URLとパスは別のものだと考えてしまった方がよいと思います。

URLはインターネット上の場所を示します。
パスというときは一般に、そのマシン内にあるファイルやディレクトリの場所を示します。

次に絶対と相対の違いについて。
絶対URLや絶対パスは、省略なしで場所を示すことをいいます。
相対URLや相対パスは、現在の自分の場所から相対的に場所を示すことをいいます。

URLならば、http://で始まっていると、省略なしの絶対URLになります。
パスの場合、/から始まっていると、省略なしの絶対パスになります。

相対についてはパスの場合だけ説明してみましょう。
まず、動かしたいPHPのスクリプトが/home/sample/test.phpにあるとしましょう。
このとき、/home/sample/hoge/以下にあるphpファイルをインクルードするためには、
以下のように記述すればよいはずです。

php_value include_path "hoge"

これがスクリプトの位置から見た相対パス指定です。

相対パスの書き方にはいくつか特殊なものがあって、
自分がいるディレクトリを示すときには「.」もしくは「./」、
自分がいるディレクトリの親ディレクトリを示すときには「..」もしくは「../」
と書くことになっています。

上記のスクリプトの例でいうと、「..」は/homeディレクトリを指すことになります。

あと、Linux系の設定では、複数のパスを同時に指定する場合に、
「:」で区切る場合が多いので、include_pathでも同様なのだと思います。

たくさん説明どころがあって悩ましいですね。(笑

まず、ご自分でもなんとなく気づいている感じですが、
URLとパスは別のものだと考えてしまった方がよいと思います。

URLはインターネット上の場所を示します。
パスというときは一般に、そのマシン内にあるファイルやディレクトリの場所を示します。

次に絶対と相対の違いについて。
絶対URLや絶対パスは、省略なしで場所を示すことをいいます。
相対URLや相対パスは、現在の自分の場所から相対的に場所を示すことをいいます。

URLならば、http:/...続きを読む

Q(翻訳)この中国語の意味は…?

(翻訳)この中国語の意味は…?


”相会”

この中国語の日本語での意味を教えてください。
ニュアンスなど、細かな所も教えて頂けると嬉しいです。

よろしくお願いします。

Aベストアンサー

「落ち合う」という意味ではないでしょうか?

Qphpのhex2binについてphpで、utf-16の文字をbin2hexに通し、hex2bin

phpのhex2binについて
phpで、utf-16の文字をbin2hexに通し、
hex2binに再度かけると、その16進数をutf-8と捉えられ、漢字等が上手く戻りません。
対策等無いですか?
文章では分かりにくいかと思いますので、コードの一例を載せておきます。
<?
$deta = "漢字";
$a = bin2hex(mb_convert_encoding($deta,"UTF-16LE"));
//$aは226f575b
echo hex2bin($a);//ここで「漢字」とechoされて欲しい
?>
実際表示されるのは "oW[ で、これはutf-8では226f575bとなります。

Aベストアンサー

違います。
正しく元の UTF-16LE に変換されています。
より正確に言えば、 bin2hex で16進文字列に変換されたバイト列が、hex2binで元のバイト列に戻されています。

0x22 0x6f 0x57 0x5b となったバイト列を「UTF-16LEの『漢字』」と解釈するのか、 「ASCII互換コードの 『"oW[ 』」と解釈するのかは、それを表示するアプリケーションです。

例えば、ブラウザに "oW[ と表示されるのなら、それは、ブラウザがUTF-16LEと解釈していないからです。

よって、対策は
・アプリケーション側の設定を変えて、UTF-16LEと解釈するようにする
・UTF-16LEからアプリケーション側で対応している文字コードに変換して出力する
のいずれかになります。

Q【中国語】中国語を日本語の意味に訳してください。 1鲁菜 2苏菜 3浙菜 4徽菜 5闽菜 6粤菜

【中国語】中国語を日本語の意味に訳してください。

1鲁菜
2苏菜
3浙菜
4徽菜
5闽菜
6粤菜
7湘菜
8川菜

Aベストアンサー

菜は中国語で「料理」という意味がありますので、すべて地域の名前の後ろに「料理」をつければよろしいと考えます。

1鲁菜=山東料理
2苏菜=江蘇料理
3浙菜=浙江料理
4徽菜=安徽料理
5闽菜=福建料理
6粤菜=広東料理
7湘菜=湖南料理
8川菜=四川料理

Qaaa.php?abc=1で渡したabcの値をechoする方法

<a href='aaa.php?abc=1'>テスト</a>
と記述したとします。
テストというリンクをクリックすると、aaa.phpに渡されますが、そのaaa.phpで、abcの値をechoしたいとき、どのように記述すればいいのでしょうか?
<?php
echo ×××;
?>
××× の部分が分からなくて困っています。初歩的ですみません。
よろしくお願いいたします。

Aベストアンサー

$_GET['abc']か$_REQUEST['abc']
もし、postで送った場合は
$_POST['abc']


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング