「技術」カテゴリーアーカイブ

VPSにPHPを入れる

前回はVPSにnginxを入れました。

今回はPHPを入れて、nginxと連携させます。

まずはインストール

$ sudo apt-get install php php-fpm php-mysql

PHPプラグインを有効化

$sudo vi /etc/php/7.4/fpm/php.ini

cgi.fix_pathinfo=0

phpプラグインを再起動

$ sudo systemctl restart php7.4-fpm

nginxの設定

$ sudo vi /etc/nginx/sites-available/default

serverの項を書き換えます

server {
listen 80 default_server;
listen [::]:80 default_server;

root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;

server_name [ドメイン名];

location / {
try_files $uri $uri/ =404;
}

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

設定を読み込む

$ sudo systemctl reload nginx

お次はPHPが動いていることの確認

$ vi /var/www/html/info.php

以下のコードを書く。

これはPHPの情報を一覧に表示するコード

<?php

phpinfo();

?>

保存したらブラウザでinfo.phpにアクセスしてみる。

PHPの情報が表示されればOK!

VPSにHTTPサーバを立ち上げる

お次はHTTPサーバを立ち上げます。

今回はnginxを使用します。

Apatchも良かったのですが、全部コミコミでフル実装できる分、余り使わない機能も動いているので、少々重い。

しかし、nginxは必要な機能を別途組み込む必要がありますが、その分軽量です。

スペック的に非力なサーバならnginxを使用する方が良いと思ったわけです。

早速インストール。

$ sudo apt-get install nginx

インストールが終われば、

# service nginx start

ブラウザで

http://[ドメイン名]/

にアクセスして、

Welcome to nginx!

と表示されればOKです。

wwwのルートは

/var/www/html/

です。

VPSサーバにドメインを関連付ける

VPSにサーバを立ち上げましたが、

サーバにアクセスするのにかっこ悪いホスト名が付けられています。

このままでは使いづらいので、ちゃんとしたドメインを付けてあげましょう。

お名前ドットコムなら.clubが30円で取得できます。

でも安いから競争率は高いです。

ドメインの獲得は早い者勝ちなので、VPS立ち上げたら、すぐに購入した方が良いでしょう。

運良くドメインが取れたら、すぐにドメインとIPアドレスを関連付けます。

VPSのIPアドレスをお名前ドットコムに登録する。

DNS関連設定からAレコードに、

[ドメイン名]とwww.[ドメイン名]の2つ、IPアドレスを設定します。

設定が完了して、登録すれば、最長72時間後に設定完了のメールが届きます。

(なので、ドメイン取ったらすぐに設定しましょう!)

お次はconoha側の設定です。

コントロールの逆引きホスト名の欄に、お名前ドットコムで取得したドメイン名を設定します。

これで設定完了。

sshからホスト名で接続してみましょう。

接続できれば設定完了です。

Alexaさんで遊ぼう2 音楽を聴くには?

Alexaで音楽を聴こうと思っても、実は自前で持っている音楽は聴くことができないのです。

ではどうするかというと、他の音楽配信サービスを介して、こちらが要求した音楽をAlexaが探してくれる、という形になります。

対応している音楽配信サービスは、

  • Amazon music
  • Spotifyプレミアム
  • Tuneln

のみ。

Spotifyはプレミアム登録者じゃないと利用できないのが地雷です。

まぁ、Amazon musicも有料サービスなので、どちらにしてもお金がかかるのですが。

でも幸い、オイラはAmazon Prime登録者なので、いまのままでも100万曲の音楽再生はできるのですが、でも、せっかくAlexaさんがいるんですもの、もっと音楽を楽しみたいじゃないですか。

そこで調べてみると、こんな物を見つけました。

Amazon music Unlimitedに登録すると、6500万曲から音楽を再生できます。

しかし、 Amazon music Unlimitedに普通に登録すると、さらに月額780円かかります。

ところが、一番右、Echoプランというのがあり、これを使用すれば 月額380円で Amazon music Unlimitedの曲数がEchoで再生できるのです。

Echoでしか再生しないのであれば絶対このプランの方がお得。

登録方法はAlexaに

「Alexa、 Amazon music Unlimitedに登録して」

と言えば登録完了。

実際に使ってみた。

が、

滑舌が悪いせいか、Alexaさんが正しくアーティスト名や曲名を認識してくれません。

こういうときは、アプリからリストを選択して、再生指示を出すこともできます。

PCなどでストア内を検索し、あらかじめリストに登録することで、Alexaアプリから再生する曲を指示することができます。

特定の曲を聴きたいときは、こちらの方が都合が良いかもしれません。

ちなみに、ストアで検索して見ましたが、自分好みの曲は、Amazon music Unlimitedが一番揃ってるという感じでした。

これはSpotify、YouTubeミュージックと比較して感じたことなので、間違いないです。

ここにはない曲が Amazon music Unlimited にはあることが多かったです。

ただし、あくまでも個人的な見解です。好みは人それぞれですから。

無料期間を利用して比較するのが一番だと思います。

VPSでサーバを立ち上げる!

VPSとはクラウド上にサーバを立ち上げることができます。

レンタルサーバと違うのは、レンタルサーバは機能が制限されている代わりに、

いろいろな機能が簡単に使用することができます。

VPSになると、クラウド上に自分専用の仮想サーバを設置することができ、自由に設定できます。

自由になる分、機能を使用するには自分でサーバの設定を作らなければならず、高度な知識が要求されます。

でも今の連辣サーバでは物足りないと感じたため、VPSでサーバを立ち上げることにしました!

オイラが選択したのはConoha VPSです。

お手頃価格でそれなりのサーバを運用できます。

個人で使用するには十分ではないでしょうか。

OSはUbuntu16.04LTSを選択しました。

自宅で使用しているOSなので、使用しやすいでしょう。

と思ったんですが。

いろいろ勝手が違うもので。

いろいろメモしておきます。

まずはSSHでrootログイン。

キーを作った場合はダウンロードして保存しておく。

そのキーファイルを使用してログインする。

rootで使用し続けるのは危険なので、管理者ユーザーを作成。

# adduser [ユーザー名]

パスワード設定

# passwd [ユーザー名]

ユーザー作成を確認

# su [ユーザー名]

一度抜ける

$ exit

管理者ユーザーにsudo実行権を設定する。

# vi /etc/sudoers

%[ユーザー名]   ALL=(ALL:ALL) ALL

の行を追加。

(%はグループを表す。ユーザーの所属グループはユーザー名と同じ)

# su taki

sudoが使用できることを確認

$ sudo echo “aaaa”

SSHでログインする設定を行う

作成したユーザーのホームへ移動

$ cd ~

./.sshディレクトリ作成

$ mkdir .ssh

実行権の設定

$ chmod 700 .ssh

./.sshディレクトリへ移動

$ cd .ssh

ここで認証キーの作成を行う。

teratermでキーを作成し、秘密鍵、公開鍵を作成

公開鍵を/home/[ユーザー名]/.ssh/にauthorized_keysとして保存

一旦rootに戻る。

$ exit

公開鍵を使用したログインに設定変更

# vi /etc/ssh/sshd_config

AuthorizedKeysFile      %h/.ssh/authorized_keys

の先頭の#を消して保存

SSHを再起動

# service sshd restart

authorized_keysの実行権を変更

# su [ユーザー名]

$ sudo chown -R taki authorized_keys

これで、管理者ユーザーでsshログインできるはず。

秘密鍵を使ってログインできることを確認する。

rootでのsshログインを禁止する。

PermitRootLogin no

に変更。

SSHを再起動

$ exit

# service sshd restart

rootでsshログインできないことを確認。

sshのポート番号を変える

$ sudo vi /etc/ssh/sshd_config

Port [ポート番号]

22から大きな値(空いている番号)を書き込み保存

SSHを再起動

# service sshd restart

新しいポート番号でsshログインできることを確認

ポート番号22でログインできないことを確認

以上。

Alexaさんで遊ぼう

でん

あ、ロゴが枠に入ってない。

AmazonさんからAmazon Echoを買いました。

AIスピーカーの中からAmazon Echoを選んだ理由は、radikoのエリアフリーに対応しているから、です。

セットアップは簡単で、本体に電源を接続し、スマホのAlexaアプリからネットワークの設定を行い、Amazonアカウントにログイン。

これで使用できる状態になります。

そして、radikoのエリアフリーを聞くには、Alexaにradiko.jpのスキルをインストール。これはAlexaアプリから設定します。

Alexaにはこういった機能は「スキル」という形で公開されており、基本無料で使用できます。

スキルはAmazonのサイトからもインストールできますし、声で直接Alexaに指示することもできます。

セットアップしたらこんな感じで動きました。

いろいろいじると面白そうなので、いろいろ試してAlexaさんで遊んでみようと思います。

あ、外出先からAlexaに指示を出すときは、スマホのAlexaアプリから指示するんですよ。

YouTuberって本当にすごいと思った。

すごいと思ったのは動画の編集技術。

もはや、YouTuberにとって編集が命と言っても過言ではない。

料理で言うと、出演者たちが素材であり、編集とは調理である。素材が良くても調理次第で、動画はいい動画にもなるし、悪い動画にもなり得る。

実際に自分でゲームの画面を収録し、編集して公開してみたらわかります。

他のYouTuberの方々のほうがはるかに優れている、ということを。

なんというかな、見せ方がうまいというのか。

これは職人レベルなんだろうな。

本当に職業YouTuberじゃないとこんな編集無理だろう。

って思った。

はい、もっとがんばります。

まぁ、早い話が、動画編集ソフトの使い方だけではなく、動画をどう演出するか、というのも重要なのですよ。

これはセンスと経験の問題です。

オイラも他のYouTuberの動画を見て勉強しなければ。


WSLにGUIを実装してみた

WSLとはWindows Sub system for Linux、つまり、Windowsで動かすことができるLinux実行環境です。

目的はgitをWSLで使いたいけどGUIがいいから使えるようにしたい、と言うことです。

基本的には、こちらに書かれている通りです。

https://qiita.com/MERIK/items/ef4ecf7a51f89c403e94

xfce4をインストールします。

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install xfce4-terminal
sudo apt-get install xfce4

日本語フォントをインストールします。

sudo apt install fonts-takao

環境設定します。.bashrcに記載します。

export DISPLAY=:0.0
export LIBGL_ALWAYS_INDIRECT=1

記載したらsource .bashrcで反映させる

VcXsrvを入れる。

https://sourceforge.net/projects/vcxsrv/

VcXsrvを起動。One Window’を選択し、Display numberは0とする。

WSLからstartxfce4を実行。

これでWindowが表示されます。

ブラウザが入っていないのでFireFoxをインストール

ブラウザからSmartGitをダウンロード

dpkg -iでdebパッケージをインストール

次に日本語が入力できるようにします。

https://mongonta.blog.fc2.com/blog-entry-239.html

mozcとfcitxをインストール

$ sudo apt -y install fcitx-mozc dbus-x11 x11-xserver-utils
$ cat << EOS >> .profile
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
export DefaultIMModule=fcitx
xset -r 49 # 半角全角点滅防止
EOS
$ source .profile

fcitxを実行し、mozcを入力メソッドに設定する

あとは日本語フォントをインストールすればOKだと思う。

実際にiPad ProとHUAWEI M5を触って比較

昨日ちょっとビッグカメラに行ってきたついでに触ってみました。

前々から気になっていたiPad ProとHUAWEI M5の2つのタブレット端末です。

iPad Proは、ホームボタンが無いのにまだ違和感がありますが、これは慣れですね。画面が大きいから扱いにくいのかなと思っていたけど、実際にApple Pencilを使ってみて、ああ、さすがだなって思った。

iPad Proは本当に紙に書いている感じで手書きすることができる。

それに比べて、HUAWEI M5はというと、やっぱり違和感がある。

決定的な違和感というと、レスポンスの早さ。

HUAWEI M5は実際に筆を走らせてから画面に表示されるのに若干遅延が発生している。

その分、iPad Proは遅延がほとんど無い。本当に紙に書いている感じだった。

あと、筆圧も認識して書くこともできるのも大きな違い。

これがあったらすらすらーと手書きして保存すると言うこともできる、非常に使い勝手が良い、と感じました。これが仕事で使えたらなぁ。

ガルパやっているときもタッチの反応の差があるんですよね。

今使っているiPad mini3はタップ調整なしでプレイできるけど、HUAWEI P10 Plusではちょっと調整しないとズレるし。タッチの反応が遅い。

やっぱりiOS/iPad Proって操作性に優れる。

あとはお金との相談かな。

どうせ買うなら、安い物買って後悔するより、高い物買って使い倒す、と言うのが信念なので、次買うのはiPad Proかな。

【ネットワークの基本】【第1回】プロトコルの話

一年ぐらい前に社内で発表した内容。これが思った以上に好評だったので、公開します。主にネットワークについて知識が全くない人に向けて作成した物です。

まず、第一回目はプロトコルの話。

プロトコルとは、ネットワーク上でやりとりするときに使用する共通ルール(ネットワークの仕様)の事を指します。

ただLANケーブルにデータを流すだけでは、それを受信側が理解できなければ通信ができません。

このプロトコルがある事によってOSやハードウェアに依存することなく通信を行うことができるのです。

プロトコルの例としては、

  • イーサネット
  • IP
  • TCP
  • UDP
  • HTTP
  • SMTP
  • FTP
  • POP3

などがあります。

では、これらをプロトコルを使用してどのような事をしているのか、「Webページにアクセスする」というのを例として説明します。

Webページにアクセスするためには、HTTPというプロトコルを使用します。

こんな感じでHTTPフレームを作成します。

ユーザーデータにはPOSTパラメータ、HTTPヘッダには主にURLなどのパラメータが入っています。

このデータを送信するためにTCPプロトコルを使用します。

TCPというのはデータを確実に送信するために、データロスを検出して再送を行う仕組みが用意されています。

このTCPフレームを送信するためにIPというプロトコルを使用します。

IPというのは、IPアドレスを使用してデータを送信する宛先を指定する事ができます。

このIPフレームを送信するためにイーサネットというプロトコルを使用します。

イーサネットというのは、MACアドレス(物理アドレスとも言う)を使用してデータを送信する宛先を指定することができます。このMACアドレスはネットワークデバイスそれぞれに割り振られている値です。

最終的に、このイーサネットフレームをLANケーブルに流します。

なので、最終的にLANケーブルに流れるデータはこんな感じになります。

では、なぜこんなめんどくさいやり方をしているのでしょうか。

それを説明するにはOSI参照モデルというのを理解する必要があります。

ネットワークを7階層に分け、ユーザーに近い方からネットワークの最小単位に向けて、アプリケーション層/プレゼンテーション層/セッション層/トランスポート層/ネットワーク層/データリンク層/物理層と分けられています。左側には上に出てきたプロトコルを各層に割り当てて見ました。綺麗に各層に分かれていると思います。

これのメリットは各プロトコルは、自分の上の層が何のプロトコルかのみを意識すれば良く、それ以外は意識しなくても良いと言うことです。

そのため、一部の層のプロトコルに変更が入った場合は、その層だけを取り替えれば良いと言うことが可能になります。

例えば、IPをIPv6に変更するとします。

こんな感じで、ネットワーク層をIPv6に変えるだけで良く、他の層はそのまま使用できるのです。

新しい技術(プロトコル)が開発されたとしても簡単に適用できるのです。

ちなみに、3G回線はこんな感じになります。

この場合、データリンク層のATMを受信してIPフレームを取り出し、これをイーサネットに付け替えれば、既存のネットワークに流すことができます。

ケータイからWebにアクセスできるのもこの仕組みがあるためなのです。

IPアドレスの話をしようと思います。