Samba の設定は /etc/samba/smb.conf を直接編集してもいいですが、GUI設定ツール SWAT(Samba Web Administration Tool、パッケージ swat)をインストールして、ブラウザから http://localhost:901/ で行うのが簡単です。"localhost" の部分は Sambaサーバ名 あるいは IPアドレス でもいいです。設定には root のパスワードが必要となります。
SWAT を使うために /etc/hosts.deny 及び /etc/hosts.allow を設定します。(参考)
/etc/hosts.deny
swat: ALL(あるいは ALL: ALL。他ホストからのアクセスを拒否)
/etc/hosts.allow
swat: LOCAL .foo.ne.jp
その後、/etc/inetd.conf の swat 起動エントリを確認します。
#<service_name><sock_type><proto><flags> <user> <server_path> <args> swat stream tcp nowait.400 root /usr/sbin/tcpd /usr/sbin/swat
そして、inetd を再起動します。
# kill -HUP `cat /var/run/inetd.pid`
SWAT を起動し、Global Parameters に dos, unix, display 各 charset が表示されないときは View を Advanced とし、環境に応じて charset 等のパラメータ、その他 Share Parameters などを変更します。変更後はコマンド $ testparm でエラーの出ないことを確認します。
dos charset:CP850 → CP932、Windows で使用する日本語文字コード
unix charset:UTF-8、Samba サーバが使用する文字コード
display charset:LOCALE、Samba, SWAT が画面表示に使用する文字コード(一般的には unix charset と同じにする)
Samba サーバにアクセスするためには、Samba が動いている Linux システムにユーザ登録してあっても、コマンド # smbpasswd -a ユーザ名 による登録が必要です。
Linux マシンから Windows 共有ディレクトリにアクセスするには smbclient をインストールし、
$ smbclient //サーバ名/共有名 (プロンプト smb: \> で使えるコマンドのヘルプは help)
Windows 共有ディレクトリをマウントするには smbfs をインストールし、
$ smbmount //サーバ名/共有名 マウントポイント [-o [username=ユーザ名][,password=パスワード][,ro][,rw]]
あるいは、/etc/fstab に、マウントポイント、タイプ smbfs、オプション user などを書いておくと、一般ユーザが $ mount コマンドでマウントできるようになります。
マウントを解除するには $ smbumount マウントポイント (# umount コマンドでも可)です。
apache 2.2.3
/etc/apache2/apache2.conf (抜粋)
ServerRoot "/etc/apache2" ・・・ サーバの設定ファイルが置かれるルートディレクトリ
User www-data ・・・ (apache2.2.9/lenny:/etc/apache2/envvars)
Group www-data
HostnameLookups Off ・・・ ログのホスト情報はIPアドレス ホスト名にするなら On
# Include module configuration:
Include /etc/apache2/mods-enabled/*.load ・・・ cgid, userdir -> /etc/apache2/mods-available/*.load
Include /etc/apache2/mods-enabled/*.conf ・・・ cgid, userdir -> /etc/apache2/mods-available/*.conf
# Include all the user configurations:
Include /etc/apache2/httpd.conf
# Include ports listening
Include /etc/apache2/ports.conf
# Include generic snippets of statements
Include /etc/apache2/conf.d/
# ServerTokens
# Set to one of: Full | OS | Minor | Minimal | Major | Prod
ServerTokens Full ・・・ (apache2.2.9/lenny:/etc/apache2/conf.d/security)
# Optionally add a line containing the server version and … to server-generated pages
# Set to one of: On | Off | EMail
ServerSignature On ・・・ (apache2.2.9/lenny:/etc/apache2/conf.d/security)
#AddDefaultCharset ISO-8859-1 ・・・ (apache2.2.9/lenny:/etc/apache2/conf.d/charset)
# To use CGI scripts outside of ScriptAliased directories:
# (You will also need to add "ExecCGI" to the "Options" directive.)
#AddHandler cgi-script .cgi ・・・ CGI スクリプトを /usr/lib/cgi-bin/ に置くならこのままでOK
(apache2.2.9/lenny:/etc/apache2//mods-available/mime.conf)
# Include the virtual host configurations:
Include /etc/apache2/sites-enabled/ ・・・ 000-default -> /etc/apache2/sites-available/default
/etc/apache2/mods-available/dir.conf
<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml
</IfModule>
/etc/apache2/mods-available/userdir.conf
<IfModule mod_userdir.c>
UserDir public_html ・・ ユーザのホームディレクトリに public_html というディレクトリを作成すれば
UserDir disabled root http://サーバ名/~ユーザ名/ にアクセス可能となる
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
</Directory>
</IfModule>
有効/無効にしたいモジュールは、# a2enmod/# a2dismod コマンド実行後、そのモジュールを選ぶ。その後、# /etc/init.d/apache2 force-reload
/etc/apache2/httpd.conf
(設定なし)
/etc/apache2/conf.d/charset
AddDefaultCharset UTF-8
/etc/apache2/sites-available/default
default を(例えば)my_site としてコピーし修正後、# a2dissite default ; # a2ensite my_site。
/etc/apache2/sites-enabled/000-default が消え、/etc/apache2/sites-enabled/my_site -> /etc/apache2/sites-available/my_site が作成されます。
修正を反映させるために # /etc/init.d/apache2 reload
NameVirtualHost * ・・・ (apache2.2.9/lenny:/etc/apache2/ports.conf -> *:80)
<VirtualHost *> ・・・ (apache2.2.9/lenny:-> *:80)
ServerAdmin webmaster@localhost ・・・ サーバ管理者のメールアドレス
DocumentRoot /var/www/ ・・・ http://サーバ名/ でアクセスするときのトップページのディレクトリ
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/> DirectoryIndex(index.html等)が存在しないときに
Options Indexes FollowSymLinks MultiViews ・・ ファイル一覧を表示させないなら Indexes を削除
IndexOptions Charset=UTF-8 ・・・ ファイル一覧の文字化け対策
AllowOverride None
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place
RedirectMatch ^/$ /apache2-default/ ・・ URI が / で終わるとき /apache2-default/ を表示させる
</Directory> /index.html を表示させたいなら行頭に # を付加
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined ・・・(ログのフォーマット指定)
ServerSignature On ・・・(エラーページのフッタ(バージョン、OS名等)を表示させないときは Off)
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
サーバが生成するドキュメント(エラーメッセージ等)の最下行に表示するフッタの内容は、/etc/apache2/apache2.conf の ServerTokens の内容(Prod[uctOnly], Major, Minor, Min[imal], OS, Full/または未指定)により変わります。この設定はサーバ全体に適用されます。
Full Apache/2.x.y (Debian) PHP/5.x.y-z+etch‥ Server at 192.168.xx.x Port 80 OS Apache/2.x.y (Debian) Server at 192.168.xx.x Port 80 Minimal Apache/2.x.y Server at 192.168.xx.x Port 80 Minor Apache/2.x Server at 192.168.xx.x Port 80 Major Apache/2 Server at 192.168.xx.x Port 80 Prod Apache Server at 192.168.xx.x Port 80
/etc/apache2/apache2.conf の ServerSignature が Off になっていても、/etc/apache2/sites-available/my_site の ServerSignature が On であればフッタを表示します。フッタ表示をしないときは /etc/apache2/sites-available/my_site の ServerSignature を Off にします。
Perl へのパス #!/usr/bin/perl
ScriptAlias ディレクティブにより、/cgi-bin/ ディレクトリ下の全てのファイルは CGI プログラムとして扱われます。そのため、/cgi-bin/ ディレクトリ下の gif 画像は CGI プログラムによってはエラーとなって表示されないこともあります。対策として、画像ファイル(CGIファイル以外)はドキュメント用のディレクトリ下に置きます。(例えば、/var/www/img/ に置く。/cgi-bin/ 側からみると、そのディレクトリは /img/ となる。)
あるいは、/etc/apache2/sites-available/default の <Directory "/usr/lib/cgi-bin"> に AddHandler の記述を追加します。
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
・・・
AddHandler image/gif .gif ・・・ この他に image/jpeg .jpg など(/etc/mime.types 参照)
</Directory>
エラーコード500(Internal Server Error)は Perl の文法誤りか改行コードを疑います。Windows 端末で作ったファイル(shift-jis-dos)を FTP アスキー(テキスト)モード転送せずに cp コマンドでコピーするときはあらかじめ shift-jis-unix に変換しておきます。(アスキーモード転送では改行コードを相手に合わせて変換してくれます。)
ブラウザで文字コード自動判別に設定していても読み込んだときに文字化けするときは、CGIスクリプトでContent-typeを記述している1行を次のようにしてみます(Shift_JISの場合)。
print "Content-type: text/html; charset=Shift_JIS\n\n";
あるページ(例えば http://サーバ名/private/)を特定メンバーのみがアクセスできるように Digest 認証を行います。(Basic 認証はクライアント(ブラウザ)からサーバへパスワードを暗号化せずに送りますが、Digest 認証では暗号化して送ります。)
# a2enmod auth_digest
/etc/apache2/sites-available/my_site に次の記述を追加します。
<Directory /var/www/private/>
AuthType Digest
AuthName "private room" ・・ 認証を行う場所に付ける名前で、認証画面に表示される
AuthUserFile /path/to/passwdfile ・・ パスワードファイル(Webからアクセスできないディレクトリに置く)
Require valid-user
</Directory>
メンバー(username)登録を行います。(メンバー登録を初めて行うときのみ、オプション -c を付けます。既にファイル passwdfile が存在するときにオプション -c を付けるとそのファイルは削除後に再作成されます。)
# htdigest -c /path/to/passwdfile "private room" username Adding password for username in realm private room. New password:
設定を反映させるために # /etc/init.d/apache2 reload。
ドキュメントルートに次の内容の robots.txt を置きます。
User-agent: * Disallow: /
または、HTML文書に記載します。
<meta name="ROBOTS" content="NOINDEX,NOFOLLOW">
/etc/apache2/sites-available/my_site に記述追加し、特定のディレクトリ、ファイル(例えば、/test/, /robots.txt)以外へのアクセスを他のサーバ(例えば another-server)の同名ディレクトリ、ファイルへリダイレクトさせる例です。
RedirectMatch ^/((?!(test|robots))/?.*)$ http://another-server/$1
デフォルトでインストールされる Exim4 (exim4-daemon-light) の設定変更は # dpkg-reconfigure exim4-config を実行します。(または、/etc/exim4/update-exim4.conf.conf, /etc/mailname を修正し # update-exim4.conf を実行します。)
(設定例) 設定を小さなファイルに分割しますか:いいえ (単一ファイル /etc/exim4/exim4.conf.template を使用) メール設定の一般的なタイプ:スマートホストでメール送信; SMTP または fetchmail で受信する (動的IPアドレスのシステムでは送出するメールを別のマシン(スマートホスト)に送るように設定。 迷惑メール対策 Outbound Port25 Blocking でメールがブロックされるため) システムメール名:domain.example (ローカルホストのメールアドレスが foo@domain.example の場合。/etc/mailname。 書き換えを有効にするとこの名前はメールのFrom:に現れない) 入力側 SMTP 接続をリスンするIPアドレス:(空白) (全ての利用可能なネットワークインタフェースの接続をリッスン。外部接続しないなら127.0.0.1) メールを受け取るその他の宛先:domain.example (ローカルドメイン。空白にするとローカル配送は行われない) メールをリレーするマシン:192.168.xx.xx (自らもスマートホストとなり、他ホスト192.168.xx.xxからのメールを中継する) 送出スマートホストの IP アドレスまたはホスト名: (メールの送出先/スマートホスト/メールサーバ。プロバイダ指定の中継用メールサーバ) 送出するメールでローカルメール名を隠しますか:はい (メールヘッダ From, Reply-To, Sender, Return-Path を書き換える) 表示するローカルユーザのドメイン名:(DDNSサービスで取得したドメイン名) (送信者アドレスをこのドメイン名で書き換える) DNSクエリの数を最小限に留めますか(ダイヤルオンデマンド):いいえ (常時接続) ローカルメールの配送方式:mbox (mbox/単一ファイル形式 または Maildir/分割ファイル形式)
メールシステムが不正中継利用されることのないよう、次のサイト等でチェックを行っておきます。
第三者中継チェック/RBL.JP、Mail relay testing/abuse.net 等
exim4-daemon-light に代えて exim4-daemon-heavy をインストールするといろいろ楽しめそうです。
qpopper をインストールします。起動、アクセス制限を xinetd 等により行います。
なお、Maildir 形式対応を求めるなら dovecot-pop3d、IMAP を利用するなら dovecot-imapd 等をインストールします。
mysql-server-5.0 をインストールします。phpmyadmin もインストールすると MySQL を管理しやすくなると思います。
MySQL の root(admin) パスワードはインストール直後は設定されていません。
$ mysql -u root Welcome to the MySQL monitor. Commands end with ; or \g. Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
データベース一覧を表示してみます。(データベース名やテーブル名は大文字・小文字を区別しますが、それ以外は区別しません。)
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | 情報スキーマ:テーブル、ユーザ等の情報を参照するためのデータベース | mysql | mysql:MySQL の管理用データベース +--------------------+
登録されているユーザを確認してみます。
mysql> select Host, User, Password from mysql.user; +-----------+------------------+------------------+ | Host | User | Password | +-----------+------------------+------------------+ | localhost | root | | | localhost | debian-sys-maint | 1234567890abcdef | +-----------+------------------+------------------+
MySQL の root パスワード(例えば abc)を設定します。システムの root パスワードと異なるものを設定して下さい。
mysql> set password for root@localhost=password('abc');
コマンド mysqladmin を使ってパスワードを設定することもできます。
$ mysqladmin -u root -hlocalhost password abc
root パスワードを設定した後、次のようなエラーが返ることを確認しておきます。
$ mysql -u root ERROR 1045 : Access denied for user 'root'@'localhost' (using password: NO)
パスワード設定後、データベース mysql に接続するには、
$ mysql -u root -p mysql Enter password:
MediaWiki1.7 には次の環境が必要です。Web server (apache2 is suggested), PHP ≥ 5.0, MySQL ≥ 4.0
etch(linux-2.6.18), apache2(2.2.3), apache2-mpm-prefork(2.2.3) 環境に mediawiki1.7(1.7.1), mysql-server-5.0(5.0.24), php5(5.2.0), php5-mysql(5.2.0) の他、php5-gd(5.2.0), php5-cli(5.2.0) 等をインストールします。
参考にするサイト:Manual:Running MediaWiki on Debian GNU/Linux
root(admin) パスワードを設定しておきます。
/etc/php5/conf.d/mysql.ini, /etc/php5/conf.d/gd.ini に、それぞれ extension=mysql.so, extension=gd.so の記載があることを確認しておきます。
次のスクリプト php_test.php を Apache2 ドキュメントルート(/var/www/)に置き、ブラウザで http://127.0.0.1/php_test.php にアクセスして PHP のインストール環境が表示されることを確認しておきます。(確認を終えたら php_test.php は削除します。)
<?php phpinfo(); ?>
モジュール php5 が有効(/etc/apache2/mods-enabled/ -> /etc/apache2/mods-available/)になっていることを確認しておきます。
/etc/mediawiki1.7/apache.conf
Alias /mediawiki /var/lib/mediawiki1.7
<Directory /var/lib/mediawiki1.7/>
Options +FollowSymLinks
AllowOverride All
order allow,deny
allow from all
</Directory>
# some directories must be protected
<Directory /var/lib/mediawiki1.7/config>
Options -FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/lib/mediawiki1.7/upload>
Options -FollowSymLinks
AllowOverride None
</Directory>
ブラウザで http://localhost/mediawiki/config/ を開きます。
* サイト名 * サイトを管理するユーザ名(WikiSysop)及びパスワード
* データベース名 (wikidb) * データベースにアクセスするユーザ名(wikiuser)及びパスワード * データベースのスーパユーザ名(root)及びパスワード(MySQL での設定 abc)
インストールボタンを押します。
MediaWiki 1.7.1 installation
Checking environment...
* PHP 5.1.6-5 installed
* Found database drivers for: MySQL
* PHP server API is apache2handler; ok, using pretty URLs (index.php/Page_Title)
* Have XML / Latin1-UTF-8 conversion support.
* PHP's memory_limit is 8M. If this is too low, installation may fail!
Attempting to raise limit to 20M... ok.
* Have zlib support; enabling output compression.
* Neither Turck MMCache nor eAccelerator nor APC are installed,
can't use object caching functions
* Found GNU diff3: /usr/bin/diff3.
* Found GD graphics library built-in, image thumbnailing will be enabled
if you enable uploads.
* Installation directory: /var/lib/mediawiki1.7
* Script URI path: /mediawiki
* Environment checked. You can install MediaWiki.
・・・
Generating configuration file...
・・・
* Finished update checks.
Creating LocalSettings.php...
Installation successful!
To complete the installation, please do the following:
1. Move /config/LocalSettings.php to /var/lib/mediawiki1.7/LocalSettings.php
for normal install, root of your install for multisite, with rights 640
2. Start using your wiki!
ファイル /var/lib/mediawiki1.7/config/LocalSettings.php を /var/lib/mediawiki1.7/ に移動し、アクセス権を 640 にします。セキュリティを高めるためにフォルダ /var/lib/mediawiki1.7/config を削除しておきましょう。
/var/lib/mediawiki1.7/LocalSettings.php
$wgGroupPermissions['*']['createaccount'] = false; 新規ユーザ登録不可 $wgGroupPermissions['*']['edit'] = false; 編集は登録ユーザのみ $wgShowIPinHeader = false; IPアドレス非表示
/var/lib/mediawiki1.7/LocalSettings.php
$wgLocaltimezone = "Asia/Tokyo"; timezone設定(全ユーザ共通)
$oldtz = getenv("TZ"); (デフォルトは UTC)
putenv("TZ=$wgLocaltimezone");
$wgLocalTZoffset = date("Z") / 60;
putenv("TZ=$oldtz");
http://localhost/mediawiki/index.php/メインページ を http://localhost/wiki/メインページ とします。
/var/lib/mediawiki1.7/LocalSettings.php
$wgScriptPath = "/mediawiki"; $wgScript = "$wgScriptPath/index.php"; # $wgArticlePath = "$wgScript/$1"; $wgArticlePath = "/wiki/$1";
/etc/apache2/conf.d/mediawiki1.7.conf
Alias /wiki /var/lib/mediawiki1.7/index.php Alias /index.php /var/lib/mediawiki1.7/index.php
特別ページ/表示メッセージ一覧/Sidebar
* navigation ** mainpage|mainpage ** portal-url|portal ** currentevents-url|currentevents ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help ** sitesupport-url|sitesupport
/var/lib/mediawiki1.7/LocalSettings.php
$wgLogo = "$wgStylePath/common/images/wiki.png"; ロゴ画像の変更 $wgCapitalLinks = false; ページ名の最初の1文字を自動的に大文字にしない
その他、参考とするサイト:MediaWiki Help: Configuration settings
ADSL で常時接続、といっても、プロバイダから割り振られた グローバルIP アドレスが変わることがあります。自宅サーバを公開しようとしても、その都度 IP アドレスを皆に知らせるわけにもいきません。そういうときは、ダイナミック DNS サービスを利用しましょう。自分の利用するサブドメイン名への IP アドレスの設定を随時、簡単に行うことができます。
私は 家サーバー・プロジェクト(ieServer.Net)を利用しております。ドメイン名(myhome.cx, or.tp, jpn.ph, fam.cx, dip.jp)の中から好きなものを一つ選び、ユーザ名(サブドメイン名になります)、メールアドレス、パスワードを登録するだけです。もちろん、無料です。
自宅 LAN(ローカルIPアドレス例 192.168.0.*)内の PC から同一 LAN 内の自宅サーバ(例 192.168.0.80)にアクセスする場合、IPアドレスを指定すると Web ページが表示されるがドメイン名を指定するとルータ(例 192.168.0.1)の設定画面となることがあります。このときは、/etc/hosts にドメイン名とローカルIPアドレス(例 192.168.0.80)の対応付けを追加記入すればいいです。
外部から自宅サーバ/Webページがどのように見えているかを次のサイトで確認できます。
WWWサーバテスト/パソコンおやじ