aptosid LAMPセット
LAMPというのはダイナミックなウェッブサーバーとしてよく一緒に使われているフリーソフトウェアの頭文字からついた呼び名です
Linux, オペレーションシステム
Apache, ウェッブサーバー
MySQL, データベースマネージメントシステム (データベースサーバー)
Perl, PHP, または Python, スクリプト言語
警告: 毎日使っているデスクトップPCを同時にインターネット上のウェッブサーバーとして使うことは絶対に避けるべきです。 ウェッブサーバーは専用のPCを使い、それ以外のどんな役目も兼ねないようにするべきです!
サーバーの使い方いろいろ:
a) (ネットからのアクセスを前提としない)ウェッブのデザインのためのローカルサーバー、ここで取り扱うのはこのケースです;
b) ネットから接続できる個人の"押入れ"サーバー;
c) ネットから接続できて一般に公表されている個人用ウェッブサーバー
d) 業務用のウェッブサーバー, これについてはマニュアルの範疇に収まらないのでここでは取り上げません
最低限の必要条件
最低でも256MBのRAMを。 mySQLのサーバーは多くのメモリを必要とするためこれ以下だといろいろな問題が起こります。 mySQLはメモリー不足になると"cannot connect to mysql.sock"(ソケットに接続できません)というエラーメッセージを表示します。
インストールが必要なパッケージ:
apache2 apache2-utils apache2-mpm-prefork php5 php5-common mysql-server mysql-common libapache2-mod-php5 php5-mysql phpmyadmin
警告
apt-get remove --purge splashy
スプラッシーがあるとmySQLに問題が起こります
Apacheの設定ファイルは/etc/apache2/apache2.confにあります。 webフォルダは/var/wwwです。
phpが正しくインストールされ正常に作動しているのを確認するには /var/www/ に下記の内容の test.php というファイルを作り、phpinfo() を実行します。
mcedit /var/www/test.php # test.php <? phpinfo(); ?>
そしてブラウザで
http://localhost/test.php または http://あなたのIPアドレス:80/test.php
を開きます
を開くとそこにPHPの設定とデフォルト設定が表示されるはずです。
Apacheの設定ファイルで設定値を変えたり仮想ドメインを設定したりできます。
インストールがうまくいったかテストするにはブラウザに次のようにタイプします
http://あなたのIPアドレス/apache2-default/
インストールは正しく行われていれば、welcomeメッセージが表示されます。
Apache2のドキュメントルートの場所はデフォルトで /var/wwwです。 これを次のコマンド:
mkdir /home/myself/www ln -s /home/myself/www /var/www
でホームディレクトリからシンボリックリンクすると、普通のユーザーとしてウェッブサイトを編集できるようになります。
FTPクライアント
まずSSHとセキュリティ のページを注意深く読んでSSHを使いましょう。 aptosidに含まれるKonquerorをFTPクライアントとして使うこともできます。
ウェッブサーバーのセキュリティ設定
Firewalls
あなたのサーバーにfirewallがないとしたら、まったくセキュリティがないのと同じです。 原則として*すべて*をブロックして、どうしても必要なものだけブロックを解除し、必要が済んだらまたブロックすることです!
21 (ftp) 22 (SSH) 25 110 (email) 443 (SSL http or https) 993 (imap ssl) 995 (pop3 ssl) 80 (http) 許されるのはこれだけです!
デフォルトとしてサーバーのファイルを保護する
Apacheのデフォルトアクセスについてよく誤解があります。 ウェッブマスターが設定を変えない限り、通常のURLのマッピングルールに基づいてサーバーがアクセスできるファイルはウェッブのクライアントに送ってしまいます。
たとえば次の例を見てみましょう:
1. # cd /; ln -s / public_html 2. Accessing http://localhost/~root/
これでクライアントはファイルシステム全体が読めるようになってしまいました! このような事態を避けるためサーバー設定に次のようなブロックを入れます:
<Directory /> Order Deny,Allow Deny from all </Directory>
これでファイルシステムへのデフォルトアクセスを禁止できます。 ほかの<ディレクトリ>も同様にブロックしてアクセスが望まれるところだけが残るようにします。 一例:
<Directory /usr/users/*/public_html> Order Deny,Allow Allow from all </Directory> <Directory /usr/local/httpd> Order Deny,Allow Allow from all </Directory>
特に<Location>と<Directory>の関係について細心の注意を払いましょう。 たとえ<Directory /> がアクセスを許さなくてもその後の <Location /> がそれを無効にしてしまうこともあります。
同様にUserDirで遊ぶのも避けたほうが無難です。 もし"./"のようにセットされていると最初の例と同じことになってしまいます。 もしApacheの1.3以降を使っている場合、サーバー設定ファイルに次のような一行を入れることを強く勧めます。
UserDir disabled root
SSL
“apache2-ssl-certificate”スクリプトを実行します
# apache2-ssl-certificate
必要な項目を入力するため次のような画面が現れます。
Creating self-signed certificate replace it with one signed by a certification authority (CA) enter your ServerName at the Common Name prompt. If you want your certificate to expire after x days call this programm with -days x ----- Generating a 1024 bit RSA private key -------- writing new private key to '/etc/apache2/ssl/apache.pem' -------- You are about to be asked to enter information that will be incorporated into your certificate request. ----------- What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank. For some fields there will be a default value, ---------- If you enter '.', the field will be left blank.
Country Name (2 letter code) [GB]: (国名コード 2文字) State or Province Name (full name) [Some-State]: (州または地方の名) Locality Name (eg, city) []: (市町村名) Organization Name (eg, company; recommended) []: (組織名 会社名など) Organizational Unit Name (eg, section) []: (部課名) server name (eg. ssl.domain.tld; required!!!) []: (サーバー名) Email Address []: (Eメールアドレス)
“a2enmod ssl”スクリプトを実行する
# a2enmod ssl
このスクリプトは自動的にmods- availableとmods – enabled の間にシンボリックリンクを作くります
/etc/apache2/sites-available/ の default というファイルのコピーを作ります
# cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl
この新しい設定ファイルへのシンボリックリンクを作ります
# ln -s /etc/apache2/sites-available/ssl /etc/apache2/sites-enabled/ (または) #a2ensite ssl
Apacheの基本設定を変更したい時は /etc/apache2/apache2.conf を、デフォルトのドキュメントルートを変更したいときは /etc/apache2/sites-available/default を編集してApacheサーバーを再スタートします。
Apacheサーバーを再スタートするコマンドは
#service apache2 restart
さて、今SSLをインストールしましたから /etc/apache2/ports.conf の中のポート番号をデフォルトの80からSSLの443に変える必要があります。
Listen 443
/etc/apache2/sites-available/ssl (SSLサイト設定ファイルとして上のコマンドで使った名前のファイル)を編集してサイト名のポート番号80を443に変更します。
/etc/apache2/apache2.conf ファイルに次の2行を加えます。
SSLEngine On SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLCertificateFile /etc/apache2/ssl/apache.pemを編集しSSL電子証明書とkeyファイルの場所を入力します。 一例をあげると
SSLCertificateFile /etc/apache2/ssl/online.test.net.crt SSLCertificateKeyFile /etc/apache2/ssl/online.test.net.key
ServerSignatureをoffにセットします, /etc/apache2/apache2.conf を次の指示にしたがって編集します。 まず次の2行を加えます。
ServerSignature Off ServerTokens ProductOnly
indexファイルにデフォルト以外のタイプを加えたかったら /etc/apache2/apache2.conf の次の行をチェックします
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.shtml
Apacheサーバーの再スタート
service apache2 restart
これで練習用のテストサーバーの準備ができました。 このサーバーをネットにつなげたいと思ったら... ダメです!... インターネットのウェッブサーバー専用として他のPCを使うこと!
出典:
http://www.mysql-apache-php.com
http://httpd.apache.org/docs/1.3/misc/security_tips.html
http://www.debianhelp.co.uk/webserver.htm