MACについてはあまり詳しくなく、困ってしまったので質問させていただきます。
現在MACのローカルにてCGIを起動させようと思っております。
そこでいろいろなサイトを見て設定したのですが行き詰ってしまいました。
現在の設定は「httpd.conf」は主に下記サイトを参考に修正
■http://homepage.mac.com/dnagase/macosx/perlcgi.h …
さらに諸事情によりCGI-BIN以外でもCGIを動かしたい為下記サイトの6-2を参考に修正
■http://szdy.info/docs/apache_on_osx/
しました。
WEB共有はしたので「http://127.0.0.1/」でApacheの初期画面は表示されました。
ですが、ユーザーローカルの「http://127.0.0.1/ユーザー名/」が表示されません。
また「ユーザー名.conf」をTerminalのcpコマンド?にてローカルに落とし、
修正後「sudo cp」にて上書きして、再度cpコマンドでローカルに落とすと修正が反映されていませんでした。
最終的には、一つのフォルダへ格納したCGI(出来ればPHPも)とHTMLがTerminalのコマンドを使わずに追加、削除出来てブラウザから見ることが出来る状態にしたいです。
いろいろ試したのですが解決出来ませんでしたので何か解決方法、試す方法はないでしょうか。
もちろん元々のApache以外のサーバーソフトでもぜんぜんかまいませんのでどうかよろしくお願いいたします。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
> 「最終的」というのはWINのHTTPDで言うルートフォルダ以下のフォルダと考えていただければいいです。
Mac OS Xには、各ユーザのためのホームページスペースがホームディレクトリのサイトフォルダにあります。
CGIプログラムは、Apacheの設定によりますが、サイトフォルダ自身、または、そのサブフォルダに入れることができます。
以下は、サイトフォルダ自身、または、そのサブフォルダCGIで利用するための設定です。
長いので最初に的に当たっているかチェックしてください。
「/etc/httpd」ディレクトリにある「httpd.conf」を管理者権限で開いて
「#AddHandler cgi-script .cgi」ディレクトリという一行を探し頭のコメントアウト「#」を除去します。
次に「/etc/httpd/ユーザ名」ディレクトリにある「ユーザ名」というファイルを開いて以下のように記述します。
<Directory "/Users/wayfarer/Sites/cgi-bin/">
Options Indexes MultiViews ExecCGI
AllowOverride None
Order allow,deny
Allow from all
</Directory>
これらの編集はターミナルアプリケーションを使って「nano」というエディタを使うのがお勧めですが、テキストエディットの標準テキストモードでも可能です。
しかし上記設定変更が間違っていないか確認する作業、「sudo apachectl configtest」というおまじないで実行する設定ファイルの文法チェックはターミナルを用いる必要があると考えます。
また、「sudo ln -s /usr/bin/perl /usr/local/bin」というおまじないでPerlのシンボリックリンクも是が非でも作っておくべきです。
この後Apacheを再起動しますが、システム環境設定の共有パネルでできるのはご存知ですね。「sudo apachectl restart」(ターミナル)
さて、うまく行くようになったと仮定してプログラム文書のパーミッション設定はどうしますか? (私はターミナルを使っているのですが…)
私はOS Xがターミナルの裏側に隠している様々な機能を使って行くにはターミナルに少しづつ慣れて行った方が良いと思います。
No.4
- 回答日時:
>また、あくまでローカル(オフライン)でのCGIの起動を考えています。
>「最終的」というのはWINのHTTPDで言うルートフォルダ以下のフォルダと考えていただければいいです。それがどこのフォルダであれ、一つのフォルダ以下ならば・・・・
cgiの前にもっと端的に説明する癖を付けましょうwww
あなたの言う「最終的」とはWindowsをサーバーにして
cgiを動作させるということ?
そうであればMacでなく最初からWinで試すべきw
もし(というか、こっちのことだと思うけど)Macで動かすのだが、apacheのドキュメントルートでcgiを
動かすという意味であれば、上に引用させてもらった言葉は書くべきじゃないわwww
それと
>CGIはWINにて何個か作成していますのでCGI自体の事は問題ないと思っております。
と先入観を持っている限り、問題が発生したときには、余計な時間を費やすよwww
この回答への補足
人のいい方に難癖を付ける前に前後の内容を読む癖を付けましょう。
>Windowsをサーバーにしてcgiを動作させるということ?
質問のタイトルをみてください。
>引用させてもらった言葉は書くべきじゃない
「最終的」という意味で若干食い違いがあったらいけないと思い書かせてもらっただけです。
また、WINの事を書いたのは最初の書き込みに書いた通り私はあまりmac(apacheもですが)に詳しくないため、そういう機能が実現出来るかどうかが確実でなかったので書かせてもらいました。
>先入観を持っている
持っていません。「思っている」だけでそういうCGIが動かない場合は基本的な事(パーミッションなど)も確認するようにしています。
また、最初の書き込みでCGIのレベルについて一切書いてなかったのでその”程度”を明確にしただけです。
最後に、これは人にもよると思いますが、「w」を多用すると不快に思う方は結構いると思います。出来れば少し自粛したほうがいいかもしれません。
No.3
- 回答日時:
あなたが紹介したリンクにあるとおり、作業をすれば、かならずCGIをローカルで動作させることができます。
それができないのなら、作業のどこかにミスがあるといっていいでしょう。
また、httpd.confは、デフォルトでPerlスクリプトを有効にしており、PHPは無効となっています。なので、Perlを有効にしようとして、いじったことが、逆にPerlを無効にしている可能性もあります。あるいは、いじらなくてもいいパスをいじったことで、パスが通らなくなっているのかもしれません。
ほかのかたも指摘しているように、ユーザディレクトリのパスは「http://127.0.0.1/~/」ないし「http://127.0.0.1/~(username)/」です。これがホームフォルダの「サイト」フォルダとなります。
ご回答ありがとうございます。
perlがデフォルトで有効になっているとのことでしたので、取っておいたバックアップを上書きしてみました。
しかし、どうも元々「sudo」コマンドが通っていないようで、
もう一度ドキュメントに落とすと内容が初期状態になっておりました。
何度sudoコマンドを実行しても同じ状態です。
また、その状態で
>ユーザディレクトリのパスは「http://127.0.0.1/~/」ないし「http://127.0.0.1/~(username)/」です。
にアクセスしても両方見る事が出来ませんでした。
「/~/」404
「/~(username)/」403
根本的に何か設定が必要なのでしょうか・・・・
No.2
- 回答日時:
当方TigerなのでApacheのバージョンが1.3ですが、Leopardの2.0のドキュメントも同じところにありますように…。
http://127.0.0.1/が表示されている「Apache HTTP サーバ バージョン 1.3 ドキュメント」の左上の方に「CGI による動的コンテンツ」http://127.0.0.1/manual/howto/cgi.htmlという目次が見つかれば占めたものです。
まずは、これを読んでCGIとはどんなもので、どうやって動いているのかを知ってください。(この程度のことがお分かりなら、以下は読み捨ててください)
> ユーザーローカルの「http://127.0.0.1/ユーザー名/」が表示されません。
Mac OS X付属のAppache設定ファイル「httpd.conf」を特にいじっていなければ「ユーザー名」の前に「~」(半角のチルダが必要なはずです)
ユーザー名がmxanaduならば、~mxanaduってことですね。
また、cpコマンドで書き換えた「ユーザー名.conf」ファイルが正しい場所にあるかを確認してください。
最終的に目指す状態として記述されている部分は、思い切って言い切ってしまえば、xHELP_MExさんが通常ウェブブラウジングしているサーバー群の世界です。無論、それらの多くは内蔵OSでも機能するはずですが、ここでは内蔵CGIの起動に説明を絞ります。
この回答への補足
ご回答ありがとうございます。
CGIはWINにて何個か作成していますのでCGI自体の事は問題ないと思っております。
また、あくまでローカル(オフライン)でのCGIの起動を考えています。
「最終的」というのはWINのHTTPDで言うルートフォルダ以下のフォルダと考えていただければいいです。それがどこのフォルダであれ、一つのフォルダ以下ならば・・・・
No.1
- 回答日時:
>また「ユーザー名.conf」をTerminalのcpコマンド?にてローカルに落とし、
>修正後「sudo cp」にて上書きして、再度cpコマンドでローカルに落とすと修正が反映されていませんでした。
まず始めに意味がわかる日本語の書き方を調べて下さい
cgiやローカルって意味理解出来てる?
cpコマンドでローカルに・・・ってことは、その「ユーザー名.conf」は
リモートから持ってきたって事ですよね?
まずcpコマンドでは無理なはず。(マウントしてれば別ですが)
それと、「http://127.0.0.1/ユーザー名/」(ユーザー名に「~」が要るのかは知らんが)はユーザーホームwww
cgiってphpと並ぶ言語名じゃないよw
Webブラウザからの要求で起動するプログラムっすよw
perlで書かれてるならperlの環境も必要だし・・・
とりあえずcgiが使える環境を作る一番の解決方法はパーミションとhttpd.confを勉強してください。
これが近道です。
ご回答ありがとうございます。
CGIの知識に関しては問題ないと思っております。
ですが、全てWINでの作業(HTTPD)だったので勝手が違い困っているところでした。
また、わかりにくい文章で申し訳ございませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
-bash: ftp: コマンドが見つか...
-
コマンドプロンプトから別マシ...
-
空きIPアドレスを探す方法
-
cshにてファイル名補完の設定の...
-
「Ctrl + C」が使用できない
-
bashのコピー&ペーストの方法を...
-
Linuxのfedora27のカーネルモジ...
-
linuxで、sendmailコマンドの使...
-
IPアドレスだとPingが通るのに...
-
最も安定しているフリーのUNIX...
-
no valid signature found
-
jobがstoppedになる理由
-
テストモード
-
端末(ターミナル)から端末を...
-
システムプロパティ情報をコマ...
-
CentOSのrebootがきかない
-
makeコマンド
-
vine2.5でtcshが使えない
-
MACのローカルでのCGI起動方法...
-
Linuxの画面の設定
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
IPアドレスだとPingが通るのに...
-
-bash: ftp: コマンドが見つか...
-
コマンドプロンプトから別マシ...
-
空きIPアドレスを探す方法
-
expectを使用しない自動PW入力方法
-
TERATERMを使ってのSSH接続がで...
-
端末(ターミナル)から端末を...
-
CentOSのrebootがきかない
-
「Ctrl + C」が使用できない
-
CentOS7 が起動できない
-
他のログイン中のttyをリモート...
-
Linuxのswap領域の表示について
-
no valid signature found
-
コマンドプロンプトからリモー...
-
ネームサーバからの応答なし。...
-
隠しレジストリについて
-
cshにてファイル名補完の設定の...
-
IPアドレスからその存在する機...
-
Berry Linux初心者です。。。初...
-
net time コマンドについて
おすすめ情報