Edited at

LAMPテストサーバの作り方 (DigitalOcean)

More than 1 year has passed since last update.

DigitalOcean を利用したLAMPテストサーバの構築方法です。

もし本番運用をする場合には root でのSSHログインを禁止するようにしてください。


ドロップレットの作成

以下の設定を参考に、ドロップレットを作成してください。


  • Choose an image > One-click Apps > LAMP on 16.04

  • Choose a size > $5 / mo

  • Choose a datacenter region > Singapore

  • Add your SSH keys > <自分の公開鍵を選択>

  • Finalize and create > Choose a hostname > <クライアント名-案件名>


SSHでのアクセス

作成したドロップレットのIPアドレスを確認して、Terminal (iTerm) からSSH接続をします。


クライアントPC

vi ~/.ssh/config

...
# 追加
Host rabi # SSHのショートカット名として利用/適宜変更
HostName <IP Address>
User root
IdentityFile ~/.ssh/id_rsa

ssh rabi # SSH接続


必要であれば、ファイルのアップロードのために、上記と同様の設定をSFTPクライアントでも行っておいてください。

public/ ディレクトリ以下を同期させる運用であれば、以下のようなコマンドで済ませてもいいです。1

# rsync <コピー元> <コピー先>

rsync -av --delete --exclude=".*" public/ rabi:/var/www/html/

※ コピー元ディレクトリに指定している末尾スラッシュは必須

参考: http://www.itmedia.co.jp/enterprise/articles/0804/21/news013.html

以下より、SSHで接続したホストPCでの操作となります。


SSHパスワード認証を不可にする

パスワード認証を不可にし、公開鍵認証のみ受け付けるようにします。


/etc/ssh/sshd_config

- PasswordAuthentication yes

+ PasswordAuthentication no

service ssh restart  # sshd の再起動


ベーシック認証


.htaccess の設定

以下の .htaccess ファイルをサーバに配置します。


/var/www/html/.htaccess

<Files ~ "^\.(htaccess|htpasswd)$">

deny from all
</Files>
Options -Indexes
AuthUserFile /var/www/html/.htpasswd
# AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
order deny,allow

作成元: .htaccess Editor

※ AuthGroupFile の行はコメントアウト(または削除)が必要です


.htpasswd の設定

apt-get install apache2-utils

htpasswd -c /var/www/html/.htpasswd <ユーザ名>


.htaccess の有効化


/etc/apache2/apache2.conf

<Directory /var/www/>

Options Indexes FollowSymLinks
- AllowOverride None
+ AllowOverride All
Require all granted
</Directory>


Apache の再起動

service apache2 restart


オプション


リダイレクト機能を利用する場合

.htaccess のリダイレクト処理が必要な場合は以下の設定が必要になります。

sudo a2enmod rewrite  # mod_rewrite モジュールの有効化

service apache2 restart


リダイレクトのログを確認する場合


/etc/apache2/apache2.conf

<Directory /var/www/>

Options Indexes FollowSymLinks
AllowOverride All
Require all granted
+ LogLevel rewrite:trace8 # trace[数字] の値は調節
</Directory>

参考: Apache HTTP サーバ バージョン 2.4 > LogLevel

service apache2 restart

tail -f /var/log/apache2/error.log # エラーログを監視


SSI を利用する場合

sudo a2enmod include  # mod_include モジュールの有効化

# ↑ 以下のコマンドと同じ意味
# ln -s /etc/apache2/mods-available/include.conf /etc/apache2/mods-enabled/include.conf
# ln -s /etc/apache2/mods-available/include.load /etc/apache2/mods-enabled/include.load

service apache2 restart


SSL を利用する場合

sudo a2enmod ssl  # SSL モジュールの有効化

sudo service apache2 restart

Let's Encrypt を利用した場合


/etc/apache2/sites-available/default-ssl.conf

- ServerAdmin webmaster@localhost

+ ServerAdmin <管理者のメールアドレス>
...
- SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
+ SSLCertificateFile /etc/letsencrypt/archive/<ドメイン名>/fullchain1.pem
- SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
+ SSLCertificateKeyFile /etc/letsencrypt/archive/<ドメイン名>/privkey1.pem

sudo a2ensite default-ssl.conf  # SSL用設定の有効化

sudo service apache2 restart





  1. [所有者:グループ] も同期されるので留意