*当サイトのリンクにはAmazonアソシエイトやアフィリエイトリンクが含まれております。

さくらVPSのLet’s EncryptスタートアップスクリプトでWordPressを運用するまで

おあけおめです。
新年早々、物作りでは無くWeb作りに勤しんでしまいました。
pleskの値上げのお陰で収支の悪くなったサイトのコスト削減であります。
SSH接続は頭が沸いてきますが勉強を兼ねてチャレンジです。

広告

さくらVPS CentOS7 + Let’s Encryptスタートアップスクリプト + nginx + WordPress

今回は人気のさくらVPSを使ってみる事にしました。



結構つまずく部分があったので相変わらず自分メモです。
こんな深夜に書いてるのは、後でメモるのが面倒なので一気に終わらせる為。

なので文章は粗雑です。

途中は要約します。

まず、さくらVPS CentOS7 + Let’s Encryptスタートアップスクリプトはnginxがデフォなので、nginxのインストなどは省かれます。
ついでに初期セットアップも省きます。

Mysqlのインスト


# yum remove mariadb-libs
# rm -rf /var/lib/mysql/

たしかmariadbが初期はインストされてた気がするので削除。


# yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
# yum install mysql-community-server

mysqlのインスト。


# systemctl start mysqld.service
# systemctl enable mysqld.service

MySQLを起動してサービスに追加。


# cat /var/log/mysqld.log | grep root

2019-01-06T00:16:42.309144Z 1 [Note] A temporary password is generated for root@localhost: ********* <-ここに初期パスワード

初期パスワード取得


# mysql_secure_installation

Securing the MySQL server deployment.
Enter password for user root: 初期パスワード

~~~
要約
~~~
All done! 

パスワード設定の流れへ。
基本Y。


# systemctl restart mysqld.service

# mysql -u root -p

mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

mysql> exit

mysqlのチェック。
問題無ければ、exit で終了。

phpMyAdminのインスト

もろSEの人はいらないんだろうけど、私には便利なphpMyAdminを入れておく。

最新のphpMyAdminの本家から取得。
https://www.phpmyadmin.net/

/usr/share に入れた。


# unzip phpMyAdmin-4.8.4-all-languages.zip

# mv phpMyAdmin-4.8.4-all-languages phpmyadmin

# rm phpMyAdmin-4.8.4-all-languages.zip
rm: remove regular file 'phpMyAdmin-4.8.4-all-languages.zip'? y

ZIP解凍からネーム変更。
そんでZIP削除。


# vim /etc/nginx/conf.d/default.conf

    location /phpmyadmin {
        root /usr/share;
        index index.php;

        location ~ ^/phpmyadmin.+\.php$ {
             # fastcgi_pass unix:/var/run/php5-fpm.sock;
             fastcgi_pass   localhost:9000;
             fastcgi_index index.php;
             fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
             include fastcgi_params;
        }

    }

nginxの設定。


# vim /etc/php.ini

;session.save_path = "/tmp"
session.save_path = "/var/lib/php/session"

session.save_pathの設定。


# chown -R root.nginx /var/lib/php/session

# cd /var/lib/php 

# ls -l

total 0
drwxrwx--- 2 root nginx  6 Dec  5 22:25 session

sessionのグループ変更。
メモでは省いているけど、nginxはユーザーもグループもnginxに変更済。
デフォはApacheだった気がする。

ls -lで一応確認。


# systemctl restart php-fpm
# systemctl restart nginx

php-fpmとnginxをrestart。
これで ホスト名/phpmyadmin でphpmyadminに繋がる。

このままだと簡単にphpmyadminに繋がるのでalias設定。


# vim /etc/nginx/conf.d/default.conf

    location /phpmyadmin*テキトーな乱数文字* {
        alias  /usr/share/phpmyadmin;
        #root /usr/share;
        index index.php;

        location ~ ^/phpmyadmin.+\.php$ {
             # fastcgi_pass unix:/var/run/php5-fpm.sock;
             fastcgi_pass   localhost:9000;
             fastcgi_index index.php;
             fastcgi_split_path_info ^/phpmyadmin*テキトーな乱数文字*(.+\.php)(.*)$;
             fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
             include fastcgi_params;
        }

    }

こーすると、ホスト名/phpmyadmin*テキトーな乱数文字* で繋がる。
アタック防止に少しはなると思う。

WordPresのインスト


# cd /var/www/html
# wget https://ja.wordpress.org/wordpress-4.9-ja.tar.gz
# tar xvzf wordpress-4.9-ja.tar.gz
# rm wordpress-4.9-ja.tar.gz
# mv wordpress/* .
# rmdir wordpress

WordPresの本体をUPして解凍。
そんで圧縮ファイル削除と、wordpressディレクトリの削除。


# chown -R nginx:hoge *
# ls -l


# usermod -G nginx hoge 
# id amavps
uid=1000(hoge) gid=1000(hoge) groups=1000(hoge),994(nginx)

nginxとユーザー(hoge)が触れるように変更。
作っていたユーザー(hoge)がnginxに属したほうが楽じゃね?と思って、それも設定。

SSL証明書の発行

さくらVPSのチュートリアルを見ると、最初にDNS設定しておけば勝手に発行されたのかもだけど、そんな説明読んで無かったので自分で発行するハメに。


# cd /usr/local/certbot/
# ./certbot-auto certonly --webroot --agree-tos -w /var/www/html -m メールアドレス -d ドメイン

# ls -lrth /etc/letsencrypt/live/ドメイン
total 4.0K
lrwxrwxrwx 1 root root  46 Jan  7 22:27 privkey.pem -> ../../archive/ドメイン/privkey1.pem
lrwxrwxrwx 1 root root  43 Jan  7 22:27 cert.pem -> ../../archive/ドメイン/cert1.pem
lrwxrwxrwx 1 root root  48 Jan  7 22:27 fullchain.pem -> ../../archive/ドメイン/fullchain1.pem
lrwxrwxrwx 1 root root  44 Jan  7 22:27 chain.pem -> ../../archive/ドメイン/chain1.pem
-rw-r--r-- 1 root root 692 Jan  7 22:27 README

これで証明書発行完了。


server {
    listen      80;
    server_name ドメイン;
    return      301 https://$host$request_uri;
}

server {

	listen      443 ssl;
	server_name  ドメイン;

	root /var/www/html;
	index  index.php index.html index.htm;
	
	charset utf-8;

	ssl_certificate /etc/letsencrypt/live/ドメイン/fullchain.pem;
 	ssl_certificate_key /etc/letsencrypt/live/ドメイン/privkey.pem;

nginxの設定ファイルを常時SSL用に書き換えて終わり。


0 4 1 * * root /usr/local/certbot/certbot-auto renew --post-hook "systemctl restart nginx.service"

最後に証明書の更新をcronに登録してAutoに更新されるようにしてOK。

多分こんな感じ。

とりあえず私のサイトは動いています。

ではでは


おすすめのコンテンツ

広告

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください