サーバーをたてる!(ブログ移行編)

新しいサーバーにブログを移転します

前回の記事分の作業が終了した状態でサイトURLを
開くとWordPress初期設定画面になります

必要情報を入力するだけで簡単にサイトができてしまいます
ここでは、簡単なトラブルシューティングを書きます
(前回の記事と多少かぶっています)

No.1
画像ファイルがアップロードできない

たぶん権限がありません。
ディレクトリのアクセス権限をいじるとできます

sudo chmod -R g+w /var/www/html/wacode/

No2.
Wordpressで新しいパーマリンクを作ろうとするとエラーになる

以下修正します

~$ sudo vim /etc/apache2/apache2.conf

##追記する
<Directory /var/www/html/wacode>
    AllowOverride All
</Directory>

忘れずに設定を反映

~$ sudo apache2ctl configtest
~$ sudo a2enmod rewrite
~$ sudo service apache2 restart

 

ルートにindex.htmlを置く

Apache2は、ルートのフォルダにファイルがなくなると
(デフォルトファイルを消した)

ディレクトリリスティングという機能が動いて
ルート以下のフォルダ・ファイルを丸見えにしてしまいます
前回オフにしました

なので、ルートはからっぽになっていてNotFoundです
https://www.washio.net/まで来た人が、
wacodeにたどり着かないともったいないので
(あと父親がもう一つページを増やすそう)

サーバー作った理由の企画
進めたいのでCSSとか考えずに文字だけで
スピード重視で作ります

index.htmlを置いて、wacodeへ誘導します

お約束

ubuntu 14.04 のアップデートを確認

root@localhost:~# sudo apt-get update

アップデートを適用

root@localhost:~# sudo apt-get upgrade

使わなくなったパッケージを削除

root@localhost:~# sudo apt-get -y dist-upgrade

autoremove

root@localhost:~# sudo apt-get -y autoremove

aptのキャッシュを削除

root@localhost:~# sudo apt-get -y autoclean

vimエディタは、指定されたパスにファイルがないと自動で生成します

vim /var/www/html/index.html

“/var/www/html/index.html” [New File]
と表示されて記述画面になります
大文字”A”をコマンドモード(escを押すとなる)で入力すると
その行の末尾から挿入になります

保存、終了はコマンドモードで”:wq”です
保存しないで終了は”q!”とか色々ある

<html>
<head>
<title></title>
<meta charset="utf-8">
<meta name="description" content="">
<meta name="author" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="">
<link rel="shortcut icon" href="">
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body>
<h1>washio.net - Homepage Selecter</h1>
<a href= “https://www.washio.net/wacode”>
</body>
</html>

内容だけ決めればささっとできます

打ち終わったら”:wq”で保存

sudo service apache2 restart

Apacheを再起動
これでたぶんルートにファイルができました

https://www.washio.net

サーバーをたてる!(WordPress準備編)

WordPressをApacheに入れます

お約束

ubuntu 14.04 のアップデートを確認

root@localhost:~# sudo apt-get update

アップデートを適用

root@localhost:~# sudo apt-get upgrade

使わなくなったパッケージを削除

root@localhost:~# sudo apt-get -y dist-upgrade

autoremove

root@localhost:~# sudo apt-get -y autoremove

aptのキャッシュを削除

root@localhost:~# sudo apt-get -y autoclean

 

Apache2自動起動設定

~$ sudo apt install software-properties-common
~$ sudo apt-get install sysv-rc-conf
~$ sudo sysv-rc-conf apache2 on

 

Apacheセキュリティ対策
ハッカー様にあげる情報を減らして差し上げる基本的な操作

iconsフォルダ非表示化

~$ vim /etc/apache2/mods-enabled/alias.conf

##ファイルの中で以下の部分をごっそりコメントアウト

  <Directory "/usr/share/apache2/icons">
        Options FollowSymlinks
        AllowOverride None
        Require all granted
  </Directory>

ディレクトリリスティング無効化

~$ vim /etc/apache2/apache2.conf

##ファイルのこの部分を
<Directory /var/www/>
        #Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

##このように編集
<Directory /var/www/>
        #Options Indexes FollowSymLinks
        Options FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

HTTP TRACE 無効化

vim /etc/apache2/apache2.conf

##最下部に以下を追記
# HTTP TRACE off
TraceEnable off

たぶんすごいハッカーが本気を出したらこんなの意味ないのだろうな…

 

PHPインストール
慣れていなかったぼくは、パッケージ化されてなかったPHP7.2を
入れようとして、わけがわからなくなり、一度初期化…
慣れるまでPHP5でいきます( ・∇・)

~$ sudo apt install php5 libapache2-mod-php5 php5-mcrypt php5-mysql php5-gd

MySQLインストール
MySQL(データーベース)をインストール
途中でホップアップみたいなのがでるのでパスワードを設定

~$ sudo apt install mysql-server

WordPress用のデーターベースを作成

~$ mysql -u root -p
> CREATE DATABASE データーベース名 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

MySQLの操作を終了

> exit

データーベース自動起動設定

~$ sudo sysv-rc-conf mysqld on

 

WordPressインストール

wp-cilをインストール

~$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

ディレクトリ生成

~$ sudo mkdir /var/www/html/wacode/

WordPressファイルダウンロード

~$ sudo wp core download --locale=ja --path=/var/www/html/wacode --allow-root

 

WordPress有効化

.htaccess作成&660権限設定

~$ sudo touch /var/www/html/wacode/.htaccess
sudo chmod 660 /var/www/html/wacode/.htaccess

更新ファイル用ディレクトリ作成

~$ sudo mkdir /var/www/html/wordpress/wp-content/upgrade

デフォルト設定ファイル作成

~$ sudo cp /var/www/html/wacode/wp-config-sample.php /var/www/html/wacode/wp-config.php

パスフレーズランダム生成

~$ curl -s https://api.wordpress.org/secret-key/1.1/salt > ~/tmp_pass

WordPress設定変更

~$ sudo vim /var/www/html/wacode/wp-config.php

##ここに必要情報を入力
define('DB_NAME', '');
define('DB_USER', '');
define('DB_PASSWORD', '');

##さっき作ったパスフレーズ入力
define('AUTH_KEY', '');
define('SECURE_AUTH_KEY', '');
define('LOGGED_IN_KEY',    ');
define('NONCE_KEY', '');
define('AUTH_SALT', '');
define('SECURE_AUTH_SALT', '');
define('LOGGED_IN_SALT', '');
define('NONCE_SALT', '');

##最後の方のやつを書き換える
define('FS_METHOD', 'direct');

 

ディレクトリアクセス権限設定
これと、この次のやっておかないと
Wordpressで作り始めてから
NotFound連発することになります(なった)

sudo chmod -R g+w /var/www/html/wacode/

Apache側でのWordpressディレクトリ設定

~$ sudo vim /etc/apache2/apache2.conf

##追記する
<Directory /var/www/html/wacode>
    AllowOverride All
</Directory>

 

Apache設定変更を反映
これしないと、サーバー再起動時に元に戻っちゃうらしい

~$ sudo apache2ctl configtest
~$ sudo a2enmod rewrite
~$ sudo service apache2 restart

 

SSL化
Let’s encryptでSSL化する

Let’s encryptのツールをインストール

$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ apt-get install python-certbot-apache -y

コマンドを実行

~$ letsencrypt --apache

設定ウィザードがEmailアドレスとか
httpでアクセス許可するかとか
サービス利用規約いい?とか聞いてくるので
答えながら進む

work by:

となったら設定完了

 

証明書自動更新設定
ほっておくと証明書が90日で切れちゃうので設定

~$ sudo certbot renew --dry-run
~$ certbot renew

 

終わりに

https://www.washio.net/wacodeでWordpressログイン画面へ
前回に引き続き、間違っていたら教えてください…

サーバーをたてる!(Ubuntu設定編)

Ubuntu Server をたてたので初期設定

環境 ubuntu server 14.04 LTS (64bit)

SSHでサーバーにログイン
Macのターミナルを開く

$ ssh -p ポート番号 -l root washio.net
Password: 
root@localhost:~#

 

お約束

ubuntu 14.04 のアップデートを確認

root@localhost:~# sudo apt-get update

アップデートを適用

root@localhost:~# sudo apt-get upgrade

使わなくなったパッケージを削除

root@localhost:~# sudo apt-get -y dist-upgrade

autoremove

root@localhost:~# sudo apt-get -y autoremove

aptのキャッシュを削除

root@localhost:~# sudo apt-get -y autoclean

root管理者権限での直接ログインを禁止する

一般ユーザーを作成

root@localhost:~# adduser 一般ユーザー名
New UNIX password: 
Retype new UNIX password:

root権限でのアクセスを終了

root@localhost:~# exit

root管理者権限での直接ログインができないようにする
一般ユーザーで再ログイン

$ ssh -p ポート番号 -l 一般ユーザー名 washio.net
一般ユーザー名@washio.net's password:

root権限を行使

一般ユーザー名@localhost:~$ su -
Password: 
root@localhost:~#

vimエディタでsshd_configを編集

root@localhost:~# vim /etc/ssh/sshd_config

//ファイルの40行目くらいを編集
#PermitRootLogin yes
PermitRootLogin no

escを押してコマンドモードにした後:wqで保存vimを終了

root@localhost:~# service ssh restart

SSHを再起動

 

ファイアーウォールを設定

aptでufwをインストール

~$ sudo apt-get install ufw

ufwでsshを許可

~$ ufw allow ssh

ファイアーウォールをオン

~$ sudo ufw enable

サーバーをたてる!(契約編)

やりたいことができたので、サーバーを立てることにしました

プロパイダー選び
父親が過去に取得して放置していたwashio.netなるドメインがありました
Value-domeinでとったものだったので同管理会社の
Core-Serverに最初に目をつけました
Python3も動くし、WordPressも

良さげ…と思ったら気になる部分が

基本料金は198円/月なのですが、オプションにやたら
高いものが隠れています
特に説明もなく、ちょっと調べても
不都合なことがありますくらい出てきません

よくわからなかったので、きちっと調べたところ
Core-Serverは共有サーバーなので
いくつかの契約でiPアドレスを共有している

で、仕様に書いてあるSSL対応というのは
そのiPに対してとった共有SSLというもの(らしい)
ということで、セキュアにすると自分のドメインを
つけられなくて、Core-Serverのドメインになる
(間違ってたら教えてください)

Xcodeでリンク作ったりするときは、例外にしなければ
SSLの方がいいので、https://www.washio.net/ にしたい…
でも恐ろしいことに、オプションの割引がいつまでなのか
書いてない…(見つけなれない?)

心配なので、別のプロパイダーを探すことにしました。

プロパイダー選びPart2
そも、探しているサーバーは
・安いやつ
・Python3が動く
・Apache
・WordPressも使える
・他社ドメイン逆引きできる
…という感じのものです

Prototypecafeで店長?さんがオススメしていたのは
VPSというやつでした
VPSというのは、自分で好きなOSやソフトが入れられて
root管理者権限が行使できるサーバーとのことでした

VPSの価格比較サイトがあって、容量などから
絞り込んでいくと
Serverman@VPSというのがありました。
Dream train internetという会社のものです
Entryプランで467円/月
VPSなのでソフト系はほぼほぼ気にしなくてよし
他社ドメイン逆引きできる

ここで気づきましたが、VPSということは
そのそれぞれに独自iPが付いているのだと思うので
こっちだとあのオプションを気にしなくて済む?

これ良さそうだなーということで
プロパイダー選びの旅はゴールしました

 

プラン選び
Serverman@VPSでは初期インストールOSを
CentOS7(64bit)
CentOS6(64bit/32bit)
Debian7(64bit)
Debian6(64bit/32bit)
ubuntu14.04LTS(64bit)
ubuntu12.04LTS(64bit)
から選べます

本屋さんで本棚をふわーって見た感じだと
CentOS7が多かった

でも、ラズパイを家でさわっていたので
似たようなコマンドが使えるやつがいいなというのと
Let’s encryptが入ってるということで
Debianかubuntuに絞りました

さらに、AI関連のページだとubuntu指定が多かったので
最終的にubuntu14.04LTS(64bit)を選ぶことに

契約はEntryプランでサーバーを借りました

 

他社ドメイン逆引き設定(Value-Server側)
IPv4 27.120.98.26 のサーバーを借りました
ここに、washio.netのドメインを関連付けます

このドメインのiPは?と聞くことを正引き
このiPのドメインは?と聞くことを逆引きと言う

まず、Value-domeinのコントロールパネルで
washio.netのiPは27.120.98.26であると設定します

コントロールパネル>ドメイン>DNSレコード/URL転送の設定から
契約しているドメインの管理画面を開きます
画面にて、必要情報(サーバーのiP)を入力します

入力したら、変更ボタンを押して、確定します

 

他社ドメイン逆引き設定(Serverman@VPS側)
先の設定で、washio.netのiPは27.120.98.26であるとされました

なので、次はServerman@VPSに、私のドメインはなーに?
と質問させるよう設定します

MyDTI(会員情報・お手続き)を開きます
MyDTI>契約中サービス>確認・変更>他社管理ドメイン設定
で設定ボタンを押し、必要情報(ドメイン名)を入力します

設定が完了すると、以下のようになります

これで他社ドメイン逆引き設定は終了。
ブラウザでhttp://ドメインネーム/と入力すると、
Apache2の初期画面が出てきます。

 

終わりに

慣れない作業で、混乱しました
何かおかしい部分があれば教えてください