RedHat9 WWWサーバ Apache 2.0.40 CGI 動作方法

このページはフレーム形式です。メニューを表示するにはここをクリック







スポンサードリンク


今回はローカル内ですが、ApacheでCGIを動作させる方法に付いて説明させて頂きたいと思います。

※Apacheをセットアップすると同時に【 perl 】は /usr/bin/perl ルートにセットされそのまま利用できます。

まず動かしやすい「ScriptAlias」を編集して、CGIを動かしてみたいと思います。
下のように【 cgi-bin 】 ルート以下にcgiの動作を許可させる方法です。
※CGI掲示板はKENTWEB様のASKABBSをお借りしました。


CGIを動作させる作業前に、Apacheのセットアップ先フォルダ(ルート)は【 var/www/html 】となっておりますが、cgiを動作させるに辺り、属性変更を行う必要があり、それに伴いhomeディレクトリにcgiを動作させるフォルダ(ルート)を作成しないといけません。

それらに伴い、このページを参照し、ローカルテストを行う前に新規ユーザーの作成の説明をさせて頂きたいと思います。
※Windows等のクライアントからFTPを利用してのテストの場合は、新規にFTPユーザー設定が必要になります。vsftpユーザーやディレクトリ作成方法はこちらを参照して下さい

【 レッドハットメニュー 】→【 システム設定 】→【 ユーザーとユーザーグループ 】を選択します。
Redhatユーザー管理画面が表示されます。
FTPアクセスユーザーを新規作成します。
【 ユーザーを追加 】を選択してください。
新規ユーザー作成項目
■ユーザー名:任意のユーザー名(例:akakage)
■パスワード:Linux及びFTPパスワードになります。任意のものでOK
■ホームディレクトリ:そのままでOKです。(例:home/任意のユーザー名)※FTPアクセス先ディレクトリでもあります。


作成したユーザーのホームディレクトリを右クリックしてアクセス権限から属性を変更します。
※レッドハットメニューのシステムツールからターミナルを選んで 
【 chmod 777 /home/作成した任意のユーザー名  】としても属性の変更は出来ます。
ディレクトリの表示方法はこちらの下の方を参照して下さい。

以上で準備完了です。

httpd.confを編集。
Redhat9 Apacheのhttpd.confは以下のルートにあります。
編集前にバックアップを取って置いたほうがいいでしょう。
/etc/httpd
httpd.confを右クリックしてファイルのコピーを選択し、貼り付けを選択するとhttpd(コピー).confファイルが作成されます。これでバックアップ作業は完了です。
httpd.confを右クリックして、アプリケーションから開くを選択しgedit(テキストエディータ)を選択して下さい。


するとApacheの編集する内容が表示されます。かなりの量になるので
編集の際は【 Ctrl 】キー+【 F 】キーで、編集する文字列を検索する事が出来て便利です。


ルートディレクトリの変更と、ScriptAliasの実行ディレクトリの変更
まず【 DocumentRoot"/var/www/html" 】を検索し、ホームページを公開するフォルダ(ルート)を変更します。
変更箇所は赤文字で表示
DocumentRoot"/var/www/html" を変更→DocumentRoot"/home/任意のユーザー名"
<Directory "/var/www/html"> を変更→Directory "/home/任意のユーザー名"
※任意のユーザー名はそれぞれ、上記の設定で作成したユーザー名です。
DocumentRoot "/home/akakage"

#
# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
#
# First, we configure the "default" to be a very restrictive set of
# features.
#
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>

#
# Note that from this point forward you must specifically allow
# particular features to be enabled - so if something's not working as
# you might expect, make sure that you have specifically enabled it
# below.
#

#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "
/home/akakage">

次に【 AddHandler cgi-script .cgi  】を検索します。
#AddHandler cgi-script .cgi となっております。"#"シャープを消してコメントアウトし有効にし、最後に【 .pl 】と追記して下さい。
AddHandler cgi-script .cgi .pl
又は以下のように書いても同意味じです。
AddHandler cgi-script .cgi
AddHandler cgi-script .pl

つぎに【 ScriptAlias /cgi-bin/ "var/www/html/cgi-bin/" 】を検索して下さい。
変更箇所は赤文字で表示、この項目では二箇所です
ScriptAlias /cgi-bin/ "var/www/html/cgi-bin/" を変更→ ScriptAlias /cgi-bin/"home/任意のユーザー名/cgi-bin/" 
<Directory "/var/www/cgi-bin"> を変更→ <Directory "/home/任意のユーザー名/cgi-bin">
※この設定の場合、例: http://127.0.0.1/cgi-bin/任意のcgi と言う形で動作させる事が可能です。
ScriptAlias /cgi-bin/ "/home/akakage/cgi-bin/"

<IfModule mod_cgid.c>
#
# Additional to mod_cgid.c settings, mod_cgid has Scriptsock <path>
# for setting UNIX socket for communicating with cgid.
#
Scriptsock run/httpd.cgid
</IfModule>

#
# "/var/www/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "/home/akakage/cgi-bin"> 
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
※以下のように記述するとルートディレクトリ内のcgi-binを含む全フォルダにてcgiを動作させることが出来ます。
<Directory "/home/akakage"> 
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>

以上で編集完了です。
geditの【 保存 】を選択して編集完了です。

次に編集した内容をApacheに反映させる必要があります。Linuxを再起動させると同じ手順になるのですが、Apacheを以下の手順で再起動させると反映されます。
レッドハットメニューからシステム設定→サーバー設定→サービスを選択します。
サービス設定画面が表示されます。
【 httpd 】を選択し【 再起動 】を選択します。メッセージが表示されるので【 OK 】を選択し設定完了です。



WindowsクライアントからのCGI設置サンプル(FFFTPを使用)
上記で作成したユーザーにてFTPログイン後【 cgi-bin 】フォルダを新規作成。


作成した【 cgi-bin 】フォルダを右クリックして、属性の変更を選択し、777に設定します。


KENTWEB様からお借りしたASKABBSを【 cgi-bin 】フォルダにアップし、所定の【 lock 】フォルダを作成の上、アップロードします。
※aska.cgiのperlパスはデフォルトでlinuxのperlパスが指定されているので特に編集する必要は無いと思います。
※2、ネットに公開する場合は、管理者パスワード設定及び
# ファイルロック形式を以下に変更すれば良いと思います。
# → 0=no 1=symlink関数 2=mkdir関数
$lockkey = 1;


アップロード後、それぞれの属性を変更して設置完了です。
それぞれ以下の属性に変更して下さい。
aska.cgi 属性[705]
askalog.cgi 属性[606]
jcode.pl 属性[604]
lock フォルダ属性[707]


上手く表示及び上手く動作するかを確認し、作業完了です。


このページはフレーム形式です。メニューを表示するにはここをクリック



スポンサードリンク

|パソコン勉強部屋 | パソコン勉強部屋2 | ADSL勉強部屋 | メール勉強部屋 | LAN勉強部屋 | ホームページ勉強部屋 | 自宅サーバー勉強部屋 | お役立ちソフトの部屋 | C言語勉強 | 無料ゲーム | 無料セキュリティー | Linuxのコーナー | あかかげまる | オンライン通販 | ショップブランドパソコン | DVDとCD編集ツール | Avast |

 Subscribe in a reader