さくらVPSを運用してみるっ!DNS設定とかnginxとか!

とりあえずDNS設定!

nginxインストールするのは簡単なのですが、

その前にドメイン何とかしたいなぁ。。と思っていたら

そういえば今運用してるのってMyDNS使ってなかった?というのを思い出しました!

MyDNSで直接繋げちゃえば別に待たなくていいのでは。。

とりあえずアカウント取得せねば。

Free Dynamic DNS (DDNS) for Home Server and VPS etc | MyDNS.JP
Free Dynamic DNS (DDNS) by POP3,IMAP4,FTP,HTTP-BASIC for Home Server, Webcam, VPS. You can use many free sub domain, .jp, .net, .asia, etc.. DynDNS is not free

MyDNSにアクセスして

上のメニューの JOIN US

なんか登録情報入力して登録!

そしたらIDとPassが届くのでログインして

Domain Infoに書いてある

Primary DNS : ns0.mydns.jp

Secondary DNS : ns1.mydns.jp

こいつをドメイン管理してるサービスからネームサーバに登録!

後はIP ADDR DIRECTから

さくらVPSのサーバアドレス入れればOK!!

のはず。。

何年振りかだから間違ってるかもだけど。。

どちらにしても反映に時間かかるだろうし、

その間にゆっくり調べよう。。

とりあえずnginx入れよう!

うちはもうずいぶん前からLEMPで運用しているので

とりあえずその環境を構築しよう!

phpはバージョンどうしよう。。

なんか色々対応するの面倒で、今の鯖はphp5とphp7共存してるんだよなぁ。。

なんかこう、簡単に一発でLEMP環境構築するやつ無いのかな。。!

いいのあった!と思ったらCentOS用でした。。

はやくもUbuntuにしたことを後悔させられるとはw

せっかくゼロから構築するんだから、

なんかいい感じのやつとかあったら絶対逃さないようにしなければ!

nginxとか魔改造されたVerとかありそうだし、

phpも色々拡張モジュールは最初から入れておいた方がいいですよね。。

魔改造版nginx NGINX-MODを入れてみる!

NGINX-MOD: a better, faster NGINX build - GetPageSpeed
Make NGINX further faster by installing NGINX-MOD

やはり何かありましたね!

これは安全なのだろうか。。

なんか書いてあることはよさそうなんだけど、

全然情報が無いし公式ツイッター見たらフォロワー20人しかいないし

怖いからやめておこう。。

なんかTaobaoが開発しているnginxベースの独自エンジン

Tengineというのがあるらしいぞ。。

Taobaoなんて個人的にはちょっとタイムリーなので気になるけど、

ぶっちゃけこれも怖い。。w

でもなんか急速にシェアを伸ばしているらしいし

色々機能が付加されているらしいので、よさそうですな。。

nginxベースのTengineが大幅増加 - Webサーバ調査
インターネットサービス企業のNetcraftは8月24日(米国時間)、「August 2016 Web Server Survey|Netcraft」において8月のWebサーバ調査の結果を報告した。2016年8月はMicrosoft IISが6600万サイト増やし、最もシェアを伸ばした。逆に、Apacheは4100万サ...

以前はメルカリも採用していたらしい。。

こうやってみると2016年当時は結構よかった感じなのかな。

今は本家nginxも頑張ってるみたいだし、

あえて他を使う必要はないと。。

とりあえずpagespeed module?さえ入れておけば

あとは適当に対応すればよさそうなので。。

入れてみよう!

nginxのビルド、インストールに必要なものを用意

apt-get build-dep nginx

なんか

E: You must put some ‘source’ URIs in your sources.list

とか怒られたので、追加する必要がありそうです。

vim /etc/apt/sources.list

# nginx mainline
deb http://nginx.org/packages/mainline/ubuntu/ trusty nginx
deb-src http://nginx.org/packages/mainline/ubuntu/ trusty nginx
追加!

mkdir /usr/local/src/nginx
cd /usr/local/src/nginx
適当に作業用ディレクトリ作成
apt-get update
なんかエラーが出た。。
Err:4 http://nginx.org/packages/mainline/ubuntu trusty InRelease
   The following signatures couldn't be verified because the public key is not available: NO_PUBKEY ABF5BD827BD9BF62

keyを追加する必要がありそうっ
apt install -y curl gnupg2 ca-certificates lsb-release 
まだ必要なのが全然ないので念のためインストール
curl -fsSL https://nginx.org/keys/nginx_signing.key | apt-key add - 

追加
今度こそ!!
Hit:1 http://jp.archive.ubuntu.com/ubuntu eoan InRelease
 Get:2 http://jp.archive.ubuntu.com/ubuntu eoan-updates InRelease [97.5 kB]
 Get:3 http://jp.archive.ubuntu.com/ubuntu eoan-backports InRelease [88.8 kB]
 Get:4 http://nginx.org/packages/mainline/ubuntu trusty InRelease [3,593 B]
 Hit:5 http://security.ubuntu.com/ubuntu eoan-security InRelease
 Get:6 http://nginx.org/packages/mainline/ubuntu trusty/nginx Sources [73.5 kB]
 Get:7 http://nginx.org/packages/mainline/ubuntu trusty/nginx amd64 Packages [61.7 kB]
 Get:8 http://nginx.org/packages/mainline/ubuntu trusty/nginx i386 Packages [61.7 kB]
 Fetched 383 kB in 2s (205 kB/s)
 Reading package lists… Done

おお、今度はうまくいきました。

改めて
apt-get build-dep nginx 
よし、依存関係インストールできそうっ

やっとnginxのソースを取得です!
apt-get source nginx 

次はngx_pagespeed用の依存パッケージインストール
apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip 

ngx_pagespeedのソース取得
mkdir /usr/local/src/pagespeed
cd /usr/local/src/pagespeed
wget https://github.com/apache/incubator-pagespeed-ngx/archive/v1.13.35.2-stable.zip
unzip v1.13.35.2-stable.zip
次にPSOLってやつが必要らしいのですが、
なんか全然見当たらない。。
とりあえずバージョン合ってなくてもいいのかな。。
なんかあったから
wget https://dl.google.com/dl/page-speed/psol/1.12.34.2-x64.tar.gz
tar -xzvf 1.12.34.2-x64.tar.gz

cd /usr/local/src/nginx/nginx-1.15.12/

ngx_pagespeedをビルドに追加
./configure --add-module=/usr/local/src/pagespeed/incubator-pagespeed-ngx-1.13.35.2-stable/ 

checking for psol … not found
 ./configure: error: module ngx_pagespeed requires the pagespeed optimization library.
 Look in /usr/local/src/nginx/nginx-1.15.12/objs/autoconf.err for more details.

やっぱり駄目じゃないか。。
調べたらバージョン合ってるやつありました!
cd /usr/local/src/pagespeed 
wget https://dl.google.com/dl/page-speed/psol/1.13.35.2-x64.tar.gz 
tar xzvf 1.13.35.2-x64.tar.gz
これでもう一回nginxのディレクトリに移動してconfigure
まだ駄目でした。。
./configure --with-compat --add-dynamic-module=/usr/local/src/pagespeed/incubator-pagespeed-ngx-1.13.35.2-stable

なんかそもそも違った。。?
apt install -y uuid-dev
インストールしたらいけました。。
普通に追加してビルド出来るかな。
 ./configure --add-module=/usr/local/src/pagespeed/incubator-pagespeed-ngx-1.13.35.2-stable/ 
make
make install
いけました!
/usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.15.12
 built by gcc 9.2.1 20191008 (Ubuntu 9.2.1-9ubuntu2)
 configure arguments: --add-module=/usr/local/src/pagespeed/incubator-pagespeed-ngx-1.13.35.2-stable/

こんな感じで入ってるのが確認できます!
いちいちこれ叩くのも面倒なので、起動スクリプトを。。
 https://www.nginx.com/resources/wiki/start/topics/examples/redhatnginxinit/ 
ここのをコピペして
nginx="/usr/local/nginx/sbin/nginx"
のところを自分の環境のパスに合わせます。

chmod +x /etc/init.d/nginx
nginxの自動起動を。。と思ったらここもつまずいた。。
Ubuntuむつかしいw
chkconfigがないので代わりにsysv-rc-conf
とやらを
wget http://archive.ubuntu.com/ubuntu/pool/universe/s/sysv-rc-conf/sysv-rc-conf_0.99.orig.tar.gz 
tar zxvf sysv-rc-conf_0.99.orig.tar.gz 
cd sysv-rc-conf-0.99
make 
make install
色々追加
apt install libcurses-ui-perl libterm-readkey-perl libcurses-perl  
sysv-rc-conf nginx on
おk!

ところでnginx動くのかな。。
/etc/init.d/nginx start
動きませんでした。。
Can't open /etc/rc.d/init.d/functions
ふむふむ
なんか
 /lib/lsb/init-functions 
こいつ使えってことらしいので
/etc/init.d/nginx
の
上の方にある
 /etc/rc.d/init.d/functions 
こいつを変更しましょうっ
/etc/init.d/nginx -t
Can't open /etc/sysconfig/network

ふむ、sysconfigがなさそう
Ubuntuは
/etc/network/interfaces 
こいつが代わりと。。
また
vim /etc/init.d/nginx
で該当箇所を書き換え!

nginx.serviceWarning: The unit file, source configuration file or drop-ins of nginx.service changed on disk. Run 'systemctl daemon-reload' to reload units.
 Job for nginx.service failed because the control process exited with error code.
 See "systemctl status nginx.service" and "journalctl -xe" for details.
  failed!
なんかやたらながったらしく怒られました。。
SELinuxが悪さしてるらしい。。
セキュリティ的には微妙かもですが、外しておきますか。
apt install selinux-utils
setenforce 0

結局わけがわからぬ。。
 https://www.techlive.tokyo/archives/2141 
こちらのサイト様の起動スクリプトで
パスを
/usr/local/nginx/sbin/nginx
に変更

とりあえずnginx動いた!

なんかもう試行錯誤しすぎてわかりませんが。。

とりあえず動きました!

最終的には

wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx
chmod +x /etc/init.d/nginx
update-rc.d -f nginx defaults

これで起動スクリプト用意して

各パスを自分の環境に合わせて設定

nginx.confで

pidを設定

なんか設定しても場所が変わってくれなかったので

/usr/local/nginx/logs/nginx.pid;

ここに設定

起動しようとしてなんかエラーはかれたら

とりあえず

lsof -i | grep nginx

でプロセスID調べて

kill

なんとか起動した!!

と思ったらhtml表示されない。。

アクセスしようとしてもタイムアウト。。

色々いじったのに一向に改善せず

結局ファイアウォールが原因でした。

nginx起動したのにページが表示されない場合はfirewall!

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

ngx_pagespeedを設定

やっと起動したのでとりあえずngx_pagespeedを設定してみよう。

といってもまぁただのhtmlじゃ体感スピードとかわからんだろうけど。。

/etc/nginx/conf/

以下に適当にconfファイル作って

pagespeed on;
pagespeed RewriteLevel CoreFilters;
pagespeed FileCachePath /var/cache/ngx_pagespeed_cache;
pagespeed EnableFilters collapse_whitespace,trim_urls,remove_comments;

上のパスに合わせて

mkdir /var/cache/ngx_pagespeed_cache

/etc/init.d/nginx restart

curl -I http://xxx.xxx.xx.xx | grep X-Page-Speed
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 –:–:– –:–:– –:–:– 0
X-Page-Speed: 1.13.35.2-0

無事ヘッダに載ってるのでOK!

次はphp-fpm

さて、とりあえずphpが動かないとどうにもならんので

セットアップ!

php7も必要ですが、

今の環境持っていくならphp5も欲しい。。

php5.6とphp7.4があればいいかな。

さて、phpもまたモジュール込みでビルドしなきゃなんですよね。。

この辺難しくて面倒だなぁ。

pdoとかgdとかその辺が欲しい。。

apt install libxml++2.6-dev libkrb5-dev libssl-dev libsqlite3-dev libbz2-dev libcurl4-openssl-dev libpng-dev libfreetype6-dev libc-client2007e-dev libxslt-dev

libjpeg無いと怒られたので追加

apt install libjpeg-dev

lib-onigurumaとかいうのが無いといわれたので追加

apt install libonig-dev

mkdir /usr/local/src/php

cd /usr/local/src/php

wget https://www.php.net/distributions/php-7.4.1.tar.gz

tar fzxv php-7.4.1.tar.gz

./configure --prefix=/usr/bin/php74 --with-openssl --enable-mbstring --with-mysqli --with-pdo-mysql --with-pdo-sqlite --enable-gd --enable-gd-jis-conv --with-jpeg --with-freetype --with-zlib-dir --enable-opcache --with-curl --enable-exif --enable-ftp --with-bz2 --with-gettext --with-xsl --with-imap --with-kerberos --with-imap-ssl --without-pear --enable-intl

無事終わったら

make

時間かかりそうなのでしばらく放置。。

終わったら

make install

おk!

php5.6はなんかそのままインストールしてもいいみたい。。

apt install software-properties-common

add-apt-repository -y ppa:ondrej/php

apt-get update

apt-get install -y php5.6 php5.6-mysql php5.6-cgi php5.6-cli php5.6-bz2 php5.6-cgi php5.6-curl php5.6-fpm php5.6-gd php5.6-imap php5.6-json php5.6-mbstring php5.6-mysql php5.6-odbc php5.6-pspell php5.6-soap php5.6-sqlite3 php5.6-xml php5.6-xmlrpc php5.6-zip php5.6-cgi php5.6-snmp php5.6-xsl php5.6-opcache php5.6-intl php5.6-curl

php-fpmをいれる!

nginxなのでphp-fpmが必要ですね。

apt install php7.4-fpm

location ~ .php$ {
root /var/www;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
#$document_root$fastcgi_script_name;
include conf/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

こんな感じにnginx conf

/etc/php/7.4/fpm/pool.d/www.conf

listen = /var/run/php/php7.4-fpm.sock;

ここを上で指定したのに合わせる

touch /var/run/php/php7.4-fpm.sock;

chmod 777 /var/run/php/php7.4-fpm.sock;

なんかパーミッションエラーになるからこうしたけど、

いくつが適切なんだろ。。

あとは

/etc/init.d/php7.4-fpm start

/etc/init.d/nginx restart

まさかただphpページ表示するだけでこんなかかるとは。。

nginxむつかしい。

aptで一発で入れればあっという間に出来るのに。。!

とりあえず次はこのブログをクローンして表示しようかな。

なんかどうするか定まらないので、とりあえずFTP使えるようにしよう。

さくらVPSにftp導入

FTP使えないと色々不便なので、

先にこっちをやっちゃいます!

といっても、

さくらVPSでCentOS7 6.FTP接続 - Qiita
#はじめに 自由にテスト出来るLinuxのサーバーがほしくて、さくらVPSで構築してみました。 順次手順をアップしていく予定です。 今回は、FTPのインストール・設定をします。 #目次 1. (

こちらの記事がめちゃめちゃわかりやすくまとめられていたので

この通りに設定します!

ありがたやぁ。。

あっさり繋がるようになったので、これで色々いじれます!

コメント

タイトルとURLをコピーしました