Webサーバ 2006.12.9
サーバ管理を開く サイトで*がついているからこれをダブルクリック 一般 ドメイン名: seigi.accsnet.ne.jp IPアドレス: 192.168.1.3 をプルダウンから選択 Webフォルダはデフォルトのまま。 デフォルトの索引ファイルに index.htm 追加。 オプション フォルダのリスト表示 off WebDAV on CGI の実行 on Web mail on SSI on パフォーマンスキャッシュ off 保護領域 いまのところ設定しない。あとでここのページができたら設定 ログ アクセスログ、エラーログとも 7日ごとにアーカイブとし、デフォルトの場所に保存 フォーマット、レベル はデフォルトのまま。 セキュリティ SSL 使用しない エイリアス Webサーバのエイリアスに www.seigi.accsnet.ne.jp を登録 そもそも上流のDNSにこれが登録されているから意味ないけど。 MINE タ イ フ ゚ とりあえずデフォルトのまま ウエブログ 有効にしない。ほかのBlogソフトを導入する予定だから。付属の Blogソフトはめちゃめちゃだからな。 プロキシ 使用しない モジュール デフォルトのまま。 これで、subnet内からは http://192.168.1.3/ でデフォルトのページが表示される。 /Library/WebServer/Documents/index.html だ。ここ公開ページを置く。デフォルトでは各ユーザのページは、各ユーザのHome Directory内にあるサイトSites の中身が公開される。そこで その場合は /~[ユーザ名]/ となる。 $$$$$$$$$$$$$$$$$$$$$$$$$ URLにチルダをつけない方法 この~(チルダ)がいやだというユーザが必ずいるので、各ユーザのサイトフォルダのエイリアスをそのユーザ名にして /Library/WebServer/Documents/ 内におけばいい。 ターミナルを起動し、root権限で /Library/WebServer/Documents の directory で、 #ln -s /Users/[登録名]/Sites [登録名あるいはshort name あるいはあだ名等] #chown -h [登録名]:[グループ名] [登録名あるいはshort name あるいはあだ名等] 例 登録名が hogehoge short nameがhoge、 グループがtonpu だったら #ln -s /Users/hogehoge/Sites hoge #chown -h hogehoge:tonpu hoge 確認すると lrwxr-xr-x 1 hogehoge tonpu 19Dec 10 10:35 hoge -> /Users/hogehoge/Sites になっていればシンボリック・リンクの完成だ。大文字小文字は区別されない。 http://192.168.1.3/hoge/ で hogehoge のトップページが表示される。 $$$$$$$$$$$$$$$$$$$$ トップページ と各ユーザのページの関係 トップページは /Library/WebServer/Documents/ 内の index.htm とする。 このページから各ユーザへのページへのリンクの記述は <img src="[ユーザ名]/cgi-bin/g_counter/g_counter.cgi"> (カウンターのimage の場合) CGIは各ユーザのhome direxctory の cgi-bin だけが有効と設定したからである。 <a href="[ユーザ名]/100s/100s.html"> (ユーザのリンク先のページの場合) とする。トップページを書き換えることはめったにない。ftp で上記 directory に転送するように設定するのは面倒だ。書き換える必要があるときは、サーバ上でやればいい。 トップページは /Users/seigi/Sites に転送することにする。 だから http://seigi.accsnet.ne.jp/index.html は http://seigi.accsnet.ne.jp/seigi/index.html と同じだ。トップページに必要な絵もおなじものを /Users/seigi/Sites においておくことにすればいい。 サーバ上でファイルを /Users/seigi/Sites/ から /Library/WebServer/Documents/ に移動すればいい。 どうせトップページを構成するファイル数は少ないのだから。 $$$$$$$$$$$$$$$$$$$$$$$$$$ 外部からのアクセスに対しては、ルータがポート80は現在192.168.1.2 をさしているから、ルータの設定を変えて、ポート80は192.168.1.3 にする。これは現在のサーバが192.168.1.2 だからページが完成してからにする。現在の利用者に迷惑をかけてはいけない。(2007.1.5設定済み) ● Webページを特定の人・場所だけがアクセスさせる方法 そこで、サーバ管理−Web-サイト から seigi.accsnet.ne.jp をダブルクリックし保護領域で保護領域の下にある+をクリックして設定した。 保護領域名:seigi-user-only (英語でないとブラウザのIDパスワード入力プロンプトが文字化けする) 認証:基本 フォルダ:保護したいフォルダを選択 /Users/[ユーザ名]/Sites/secret とかを選ぶ これで、seigiに登録したユーザ(アカウントのある人)だけがユーザ名とパスワードを入力すると見ることができる。 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ CGI を各ユーザのSites で有効にする。 /etc/httpd/httpd.conf を書き換えた。各ユーザのhome directory の Sites のcgi-bin というdirectory に保存したcgiファイルが使えるようにした。Default では、/Library/WebServer/CGI-Executable においたファイルが有効 と設定してあった。 ## ScriptAlias: This controls which directories contain server scripts. ## ScriptAliases are essentially the same as Aliases, except that ## documents in the realname directory are treated as applications and ## run by the server when requested rather than as documents sent to the client. ## The same rules about trailing "/" apply to ScriptAlias directives as to ## Alias. ## # ScriptAlias /cgi-bin/ "/Library/WebServer/CGI-Executables/" (625行目) ScriptAlias /cgi-bin/ "/Users/*/Sites/cgi-bin" ## ## This should be changed to whatever your ScriptAliased ## CGI directory exists, if you have that configured. ## # <Directory "/Library/WebServer/CGI-Executables"> (630行目) <Directory "/Users/*/Sites/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory> $ perl -wc [ファイル名] のコマンドでsyntax error をチェックする $perl -wc httpd.conf ものすごく一杯でてきた。とりあえず気にしない。 Premature end of script headers というエラーは 1)1行目の#! /usr/bin/perl が誤りである。 2)2行目に print"Content-type: text/html; charset=Shift_JIS?n?n"; を記述する 3)$ perl -wc [ファイル名] で Name "main::mode" used only once: possible typo at init.cgi line 125. というエラーがでても気にしない。これは変数に指定してあるが1回しかつかってないけどいいのか? という意味だから syntax OK となればいい。 ################################################################### 例 test.cgi の全文 #! /usr/bin/perl print "Content-type: text/plain\n\n"; print "Hellow World"; exit; この本文の test.cgi というファイルで保存して <a href="cgi-bin/test.cgi">Test script</a> ページに書けば Hellow World と表示される。これがうまくいけばいい。 あるいはいきなりブラウザのURL欄に http://192.168.1.3/seigi/cgi-bin/test.cgi と入力してHellow World と書かれたページが出てくればいい。 BBSの設定 web forum をダウンロードした。 以前のログファイルをそのままコピーして置き換えたら、どれもが new がついて表示されてしまう。 そこで wf_init,cgi の112行目をコメントアウトして、48時間以内の投稿に new をつけるというのをやめにした。 カウンターの設定 g_conter をダウンロードした。 昔のカウントをそのまま維持するためには g_counter.dat に、サーバを新しくした直前数値を入力した。 $$$$$$$$ Webページアクセス制限の要約 はじめ $$$$$$ 1)サーバ管理 ー> Web −> サイト −> 保護領域 ここで directory を指定、ユーザを指定する。設置名は 英語のみ。 これが一番簡単。だがphp cgi で動くページは指定しても有効にならない。 2).htaccess を使う ○ /etc/httpd/http.conf で、.htaccess が有効であることを確認する。 /etc/httpd/httpd.conf の内容は ## ## AccessFileName: The name of the file to look for in each directory ## for access control information. ## AccessFileName .htaccess (223行目あたり) ## となっていることを確認する。 ○ /etc/httpd/seites/ にあるファイルを書き換える。このdirectory にあるファイルがデフォルトに加筆されたmike 特有の設定である。2つある。 0000_192.168.1.3_80_seigi.accsnet.ne.jp.conf ←これ virtual_host_global.conf 0000_192.168.1.3_80_seigi.accsnet.ne.jp.confの内容は <Directory "/Library/WebServer/Documents"> Options All -Indexes +ExecCGI +Includes +MultiViews # AllowOverride None AllowOverride All <IfModule mod_dav.c> DAV On </IfModule> </Directory> である。 ● ip address で制限する。 .htaccess の内容は、 Order deny,allow deny from all allow from 123.456.789.012 allow from 123.456.123.456 allow from hogehoge.net 123.456.789.012と123.456.123.456のipaddressとhogehoge.netのドメインが許可される。この.htaccessファイルを該当するdirectory におく。 ● seigi サーバにアカウントのあるユーザで制限する。 .htaccess の内容は、 AuthName Diary ←Diary は自由な名称。ブラウザのID、パスワード要求プロンプトに出てくる名前。 AuthType Basic <LIMIT GET POST> require valid-user </LIMIT> である。このファイルを該当するdirectory におく。 ● 複数の特定のユーザに制限する(seigi のID password はそのまま使えない、まったく別のものとなる。同じに設定しても問題ない)。これはまだ試していない。 .htaccess の内容は、 AuthUserFile /usr/local/etc/.htpasswd AuthGroupFile /usr/local/etc/.htgroupd AuthName Diary ← Diary の部分は好きにする AuthType Basic <LIMIT GET POST> require user [ユーザ名1] ←個人とか共通の名前のとき require group family ←グループを作り各個人のパスワードが違うとき、family はグループの名前だから自由に設定する。 </LIMIT> である。このファイルを該当するdirectory におく。 /usr/local/etc に上記の .htaccess が参照するファイルを作る。 .htgroup と .htpasswd を作る 最初に # htpasswd -c /usr/local/etc/.htpasswd [ユーザ名1] として、新しい .htpasswd ファイルを作る。ユーザ名のパスワードを設定する。 2人目以降は # htpasswd /usr/local/etc/.htpasswd [ユーザ名2] New password: Re-type new password: Adding password for user [ユーザ名2] と出力される。 とする。 .htpasswd の内容は以下のようになる。 [ユーザ名1]:ovgJKrfrD7hX6 [ユーザ名2]:5.x5y7T2XgYVA .htgroup を vi で作成し 以下のように記入する family: [ユーザ名1] [ユーザ名2] ←familyは上出設定したグループ名 $$$$$$$$ Webページアクセス制限の要約 おわり $$$$$$ Webmail(Squirrelmail)の容量増加 webmail の添付書類の最大容量はこれまで2MBであった。 バックアップを作る→修正用にコピーを作る→コピーを変更する→httpdとmail機能を止める→コピーをオリジナルファイル名に変更する→httpdとmail機能をスタート の順である 1)オリジナルのファイルのバックアップとコピー php.ini がないから php.ini.default をコピーする。アクセス権は444 だからroot が書き換えられるようにmodeを変える。 2)コピーしたファイルを書き換える /etc で php.ini.copyの以下2行を書き換える。 upload_max_filesize = 20M 489行目 post_max_size = 20M 373行目 phpがアップロードできるファイル容量を20MBに変更したわけだ。 /etc/httpd で httpd.conf.copy の最終行以降に、以下の3行を加える。 コメントを残しておくのがいいだろう。 apacheでのphpの転送制限を50MBに変更したわけだ(1024*1024*50)。 3)サーバ管理で Mail と Web を停止 4)書き換えたファイルをオリジナルのファイル名に変更 /etcで #mv php.ini.copy php.ini php.ini のmode を444へ #chmod 444 php.ini /etc/httpd で #mv httpd.conf.copy httpd.conf 6)サーバ管理でMail と Web を起動 php や apache が動いているから、動いているファイルを書き換えるのは良くない。 ブラウザでhttp://seigi.accsnet.ne.jp/webmail/src/login.php にアクセスして、新規のメール作成の画面で最大20MBになっていることを確認する。 ログイン時の画面の絵を変更する。 絵は /usr/share/squirrelmail/images/web_mail_login.jpg であるから 別の絵をここに持ってきて同じ名前にすればいい。 ● robot 検索に許可・不許可を設定する /Library/Webserver/Documents/ に robots.txt を置く 内容は User-agent: * Disallow: /cgi-bin/ で最後に空白行が必要。パーミッションは644。 |