LoginSignup
1
1

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-10-21

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. [所有者:グループ] も同期されるので留意 

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1