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接続をします。
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パスワード認証を不可にする
パスワード認証を不可にし、公開鍵認証のみ受け付けるようにします。
- PasswordAuthentication yes
+ PasswordAuthentication no
service ssh restart # sshd の再起動
ベーシック認証
.htaccess の設定
以下の .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 の有効化
<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
リダイレクトのログを確認する場合
<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 を利用した場合
- 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
-
[所有者:グループ] も同期されるので留意 ↩