null mayu

web勉強中の記録・雑記とか

【Windows PC】ブラウザでLINE MUSICが再生できない時の対処

※前置き(重要)

 この記事は専門知識がない人が書きました。個人的に望む動作が得られたので書き残しますが、動作の保証、また同じ操作をした場合に生じる不具合等については責任を負えません。
 もしここで書いた操作についてセキュリティ上などの問題があればコメント欄にてご指摘いただければ私のみならず他の方の参考にもなると思いますので、詳しい方は書き残していただければ幸いです。

 

起こったこと

 スマホでLINE MUSIC(https://music.line.me/)を利用していたが、PCでの作業中にも利用したいと思い、MacOS環境でブラウザ版を利用し始めた。
 問題なく利用できたため、今度は同じようにWindowsOSでブラウザ版を利用しようとしたところ、「ネットワークに接続できません」とエラーが表示され、楽曲が一切再生できなかった。

環境

・OS:Windows10 Home(64bit)

・ブラウザ:Google Chrome

・セキュリティソフト:ESET Internet Security

 

対策

 おそらく保護によってサイトがブロックされていると判断した。
 以下、実行したことと結果。

Google ChromeでLINE MISICのサイトを開き、LINE MISICのFlashの設定を"許可"に変更(ブラウザのアドレスのすぐ左、鍵マークなどが表示されているところをクリックすると設定できます)。
 →再生できない。

・ESETを開き、設定をクリック
 →詳細設定(画面右下にある)
 →Webアクセス保護
 →URLアドレス管理
 →アドレスリスト 編集
 →許可するアドレスのリストをクリック 編集
 →追加 出てきたウインドウに「https://music.line.me/」を入力してOK
 →OKを押して各画面を戻り、設定の一覧画面でOKを押して設定を保存。
 →再生できない。

・同じくESETの詳細設定のWEBとメールをクリック
 →プロトコルフィルタリング
 →対象外のIPアドレス 編集
 →追加
 →LINE MUSICのIPアドレスを入力してOK(IPアドレスの調べ方は「IPアドレス 検索 方法」などで各自検索方法を調べてみてください。変更になって同じ症状になった場合のために、調べ方を覚えておいた方が良いと思います。どうしてもわからない場合はきいてください)
 →上記と同じく設定の一覧画面でOKを押して設定を保存。
 →再生に成功。

雑感

 MacOSでも同じブラウザ、同じセキュリティ環境なのに設定することなく再生できていたのは謎です。OSの差によるソフトの違いなのか、OSそのもの(ファイアウォールなどのシステム・個人の設定)の違いによるものなのか、知識がないためわかりません。
 この問題について検索したところ同じウイルスソフトで同じ症状が出ていると思われる方の質問を見かけたので書いてみましたが、再生できず困っている方の一助になれば幸いです。
 それでは、暑いのでお気をつけて。

Debian9でnginxにVirtualHostを設定した

だいぶ苦戦しました。

やったこと

1.さくらのVPSを利用しているアカウントでSAKURA internetの独自ドメイン取得サービスから独自ドメインを取得、ネームサーバーの登録を行った。

2.さくらのVPSにインストールしたDebian9 において、nginxにVirtualHostの設定を行った。

 

1.さくらのVPSを利用しているアカウントでSAKURA internetの独自ドメイン取得サービスから独自ドメインを取得、ネームサーバーを登録

さくらのVPSを利用しているので、独自ドメインを設定するなら同じプラットフォームで取得したほうがいいかなと思いSAKURA internetサービスから取得しました(

独自ドメイン取得・管理 - レンタルサーバーはさくらインターネット

)。

この後の設定がよくわからずひたすら迷いに迷いました。

最初、自分で調べた情報を見たところ取得したドメインと同名のネームサーバーを登録しなければならないのかと思い、さくらインターネットの会員メニューから契約情報のタブを開き、契約情報の確認→ドメインメニュー→ネームサーバ新規登録に進み、ドメイン名と同じものを入力してみると「登録することができませんでした。このゾーンは利用中です。(E007) 」と返されてしまい、途方に暮れました。

ヘルプセンターにこの件を問い合わせたところ、お客様の状況ではネームサーバの登録は必要ありませんと言われたため、ドメインメニューのドメインリストに表示されている取得した独自ドメインのゾーン編集を行いました。

簡単設定でIPアドレスVPSサーバーのアドレスを入力、あとは画像のようになるように設定(といっても最初から設定されたような気がします)。

f:id:tanukijanaika:20180609074623p:plain

しばらくすると登録が完了し、ドメインの問題は解決しました。

 

2.さくらのVPSにインストールしたDebian9 において、nginxにVirtualHostの設定

VirtualHostの設定はプログラミングビギナーNekoteniがあなたに贈る!NginxでVirtual Hostの巻 - ねこテニを参考にしました。

これを見ながら設定を行ったのですが、nginxの起動は問題ない(VPSサーバーに接続するとnginxのhtmlが表示される)ものの、取得した独自ドメインのアドレスにアクセスしようとすると403エラーを返されてしまいました。

何回ファイル内の記述を確認しても問題を発見できなかったのですが、エラーログを確認したところ「"/home/username/public_html/domain/public/index.html" is forbidden (13: Permission denied)」とありました。

permissionに問題があることがわかったのでpublicディレクトリ以下のpermissionを変更。しかし、また同じエラーが出ました。

その後ルートのパス全てにreadのpermissionが必要とのアドバイスをもらったのでpermissionを変更。やっと独自ドメインのURLを表示させることに成功しました。 

sshコマンドでリモート接続

さくらのVPSサーバーのdebianmac端末からリモート接続してみた

 

安全なssh接続の設定を覚えるためにリモート接続を設定してやってみました。

流れはMac OS X から Linuxサーバ へ、RSA 鍵を用いて SSH 接続する - joker8phoenix's diaryに大体まとめてありました(リンク先ではパスフレーズの設定を飛ばして試しているのでこの通りにはやりませんでした)。

1. そもそもsshってなに?

ssh

 【 Secure SHell 】 セキュアシェル

sshとは、主にUNIXコンピュータで利用される、ネットワークを介して別のコンピュータにログインして操作するためのソフトウェアの一つ。通信経路が暗号化されるため、インターネットなどを経由しても安全にアクセスすることができる。

コンピュータ上で動作しているOSに利用者が指示を与えるためのシェル(shell)と呼ばれるプログラムの一種で、遠隔からコンピュータの操作画面を呼び出し、手元のコンピュータのキーボードなどで入力したコマンド(命令)などを送信して実行し、結果を受信して表示することができる。公開鍵暗号秘密鍵暗号を組み合わせて通信経路を暗号化し、パスワードなどの認証情報や入力されるコマンド、出力された処理結果などをすべて暗号化して送受信する。

ssh(セキュアシェル)とは - IT用語辞典

 

すんなり入ってきたものの、 公開鍵暗号秘密鍵暗号が全然ピンと来なかったので調べてみた。

全くイメージできなかった僕にとってはここがわかりやすかったです。

4枚の図解でわかる公開鍵暗号 | パーソルテクノロジースタッフ株式会社

 

2. sshのインストールと設定

概要がわかったところで実際にsshをインストールして設定してみました。

まずはサーバー側(debian 9)にOpenSSHをインストール。

Debian GNU/Linux 4.0(etch)にOpenSSHをインストール - bnote

 

この時"/etc/ssh/sshd_config"の認証に関わるあたりを修正。

・Port 22 → 数字を任意の数字に変更。

(ポート番号について【3分で把握】ポート番号とは?と代表的なポート番号まとめ

・PermitRootLogin yes → PermitRootLogin no

(Rootログインできなくする)

・PasswordAuthentication yes → PasswordAuthentication no

(パスワード認証を禁止して公開鍵認証に限定する)

 

上記の設定を有効にするためにsshdを再起動($ sudo /etc/init.d/ssh restart)。

 

3. 鍵の作成と設定

今回はmacから接続するのでmacでターミナルを起動しました。

(ここからはSSHなるものをよくわからずに使っている人のための手引書 - Qiitaを参考に進めています)

 

鍵暗号方式はオプション"-t"を使用してRSA鍵を作成しました。どれを指定すればいいのかわからなかったので調べて選びました。

暗号化とハッシュ化に関する基本的な事柄まとめ - Qiita

 

パスフレーズもしっかりと設定して、鍵の作成が完了。

scpコマンドを使ってコピーした公開鍵の情報をサーバーに送る。

やり方は参考にしたサイトの流れですんなりいけました。

 

あとはサーバー側でログアウトした後にmacからsshコマンドを使ってログインしておしまい。

 

ポート番号など自分が変更した設定で弾かれた場合はオプションで指定してログインするといけました。

【 ssh 】コマンド――リモートマシンにログインしてコマンドを実行する:Linux基本コマンドTips(80) - @IT

念のために上記のオプションでsshdが設定通りになっているか確認しました(パスワード認証でログインを試してみるにはssh コマンドでパスワード認証を指定して接続するオプション - Qiitaをするといけました)。

 

※実はここで確認した時に変更が反映されていなかったのでおかしいなと思ってサーバー側のsshdをもう一度確認してみたところ、設定の頭のコメントアウト(#記号)がついたままになっていて設定が無効になっていました。

コメントアウトを解除したらちゃんと反映されました。セキュリティに関わることなので、このうっかりは怖いですね。

aptコマンドのこと

debianでのターミナル操作の学習をやっていますが、aptコマンドについてまとめてみます。

 

・概要 - aptコマンドとは

APT (Advanced Packaging Tool) は、Debian用に開発されたパッケージ管理システムである。dpkgのフロントエンドとして動作するように設計されたが、現在はRPMに対応するように移植されたapt-rpmもある。

コンパイル済みのソフトウェアを管理する機能に加え、ソースコードからソフトウェアをコンパイルする際の依存関係を解決する機能も備えている。

APT - Wikipedia

別のページでも見てみました。

APTとさまざまなパッケージ操作コマンド

 ソフトウェアを配布する際には、実行ファイル1つだけではなく、設定ファイルやマニュアルなど、関連ファイルをまとめて「パッケージ」にしておくと便利です。UbuntuなどDebian系のディストリビューションでは、「debパッケージ」と呼ばれるフォーマットのパッケージを使用します。

 debパッケージの操作には、伝統的に「dpkg」コマンドが使われていました。

その後、APT(Advanced Packaging Tool)というパッケージ管理システムが登場しました。APTでは、インストールや更新、削除に「apt-get」コマンドを使い、パッケージの検索には「apt-cache」コマンドを使用します。APTはdpkgのフロントエンドとして動作するので、操作対象はdpkgと同じdebパッケージです ※。

RPMパッケージ用に移植されたAPT-RPMも開発されています。

 

 

 現在は、apt-getとapt-cacheを統合した「apt」コマンド、そしてCUI画面でもグラフィカルな表示が可能な「aptitude」も使われています。dpkgとapt-get、apt-cache、apt、aptitudeを同じマシンに対して使用しても問題ありません ※2。

【 apt 】コマンド(基礎編)――ソフトウェアをインストールする:Linux基本コマンドTips(139) - @IT

 

・コマンド 

以下のページを参考にしました。

【 apt 】コマンド(基礎編)――ソフトウェアをインストールする:Linux基本コマンドTips(139) - @IT

aptコマンドチートシート - Qiita

Ubuntu 16.04 / Debian 8: aptコマンドの使い方 - Narrow Escape

最後のページでapt upgradeとapt-get upgradeの違いについて書かれていました。

apt upgradeは新規パッケージをインストールする場合があります。apt-get upgradeは新規パッケージをインストールしません。

apt dist-upgrade/apt dist-upgradeは新規パッケージを追加するだけでなく既存パッケージを削除する場合があります。これはapt upgrade/apt-get upgradeとは異なります。

基本的にはapt upgradeを使う方が良いです。

 壁にぶつかるまではapt upgradeを使って行こうと思います。

 

・おまけ - パッケージをsearchしたら同じ文字列を含んだパッケージがたくさん出てきてしまった。

試しに"vim"をインストールしようと"apt search vim"で検索をかけたら、文字列"vim"を含むパッケージがたくさん出てきました。

部分一致検索のコマンドを実行しているので当たり前なのですが、今回は"vim"をインストールしたいとはっきりわかっているので完全検索をします。

 

方法1:用意されているコマンドを使う。

完全一致検索は"apt search [パッケージ名]"ではなく、"apt list [パッケージ名]"でした。

 

方法2:正規表現を使う。

この方法は教わるまで知りませんでした。

参考:正規表現 - Wikipedia

今使っているシステムにおいてのことになりますが、"^[検索する文字列]"とすると前方一致検索に、"[検索する文字列]$"とすると後方一致検索に、"^[検索する文字列]$"とすると完全一致検索になりました。

これを使えば、"apt search"コマンドでも"apt search ^[パッケージ名]$"とすることで"apt list [パッケージ名]"とコマンド入力した時と同じ結果になりました。

※"apt-cache search"コマンドでも使い方は同じ。

正規表現、覚えておこうと思います。

 

 

debianのキー配列変更に悩んだ

さくらのVPSdebian 9をインストールしてやっていたらコロンが出せなくて詰まった

macbook Proのusキーボードそのままの配列でやりたいんだけどな、という話。

キー配列の問題だろうと思ったので調べて変更してみることに。

 

1.さくらVPS側でコンソールのキー配列を変更する。

各種設定→VNCコンソールキー配列を「en-us」に変更

結果:配列は変わったが、端末のキー配列どおりにならない。

 

2.debian側でキー配列を変更する。

Debianで利用するキーボードの種類を変更する - memo.xight.org

ここの方法2(etc/default/keyboardを直接書き換え)を使って配列を変更した。

※この辺でそういえばインストールする時にキー配列日本語にした気がする、と気づく。

結果:これもうまくいかない。(もしかしたら再起動すれば使えたかも?)

 

3.OSの再インストール。

何かをする前だったので、「いっそ再インストールしちゃった方が早いや」と思い、OSを再インストール

今度は間違いなくキーボードの設定のところで米国を選択

結果:当たり前かもしれませんが、ちゃんとusキーボードの配列になりました

 

おわりに

今回はなにかをする前だったからOS再インストールで済んだけど、本当はそれをせずに設定できないとまずいよなあ。と思った。

htmlのこと

html5において、html(のマークアップ)ではなにをすべきなのか。

わかっているようでわかっていなかったのでおさらい。

 

htmlでやるべきことは何なのか。htmlはなんのためにあるのか。

HTMLって何だ -- ごく簡単なHTMLの説明 を見てみる。

 

> コンピュータが人間に代わって文書を適切に分析できるようにするためには、その文書がコンピュータにも理解しやすい形で書かれていることが必要です。人間は、文書の内容、文字の大きさ、レイアウトなどから、どれが文書のタイトルで、どこが重要なポイントなのか分かります。しかしコンピュータは、文書のレイアウトやフォントサイズだけでは、どこをどう解釈すべきなのか判断できません。そのために、文書にコンピュータにも分かる「目印」を付けておくことが、これらを「有益なツール」にするために大切になります。

HTMLの「マークアップ」とは、このような目的で設計された文書をコンピュータにもうまく分析できる形にするための印付けの方法です。

 

htmlのマークアップは名前の通り、あくまで目印。体裁を整えることはCSSに任せる。

html5で使用するタグ一覧をまとめたサイト↓

http://webcre8.jp/investigate/html5-all-tags.html

 

タグとインデントを正しく使って、見やすくて間違いの無いhtmlマークアップを行うには慣れが必要だと思うので、数をこなして身体に染みつけたい。

mac terminal操作練習

terminalの基礎的な操作は既にやってあるのでささっと。

 

主なコマンド

ls:一覧表示。

pwd:カレントワーキングディレクトリのパス表示。

echo something:somethingを引数として渡して表示。

$PATH:変数。ここに設定したディレクトリはファイル名だけで実行できる。

env:環境変数一覧表示。

cd /ディレクトリ名:ワーキングディレクトリの変更。

ls -a:一覧表示に.からはじまる名前のものを含めるオプション。

   .:今いるディレクトリ。

     ..:一つ上のディレクトリ(../..と重ねていくことで更に上のディレクトリも指定できる)。

※オプションにはショートオプションとロングオプションがある。

8.1.2 UNIX互換コマンドの記述規則 : JP1/Advanced Shell

 

curl:引数に与えたurlを表示。

curl 引数(url) -o ファイル名:内容を指定したファイル名で保存。

open:渡した引数を開く。普通のファイルは関連付けられたソフトで。URLは標準ブラウザで。open .で今いるディレクトリを開く。

saykana:mac音声合成プログラムsaykanaを入れていると引数として渡したひらがな・カタカナを日本語音声で読み上げてくれるコマンド。
"-s 数字"のオプションで速度調節(100がデフォルト)。

"-o ファイル名.aiff"オプションでaiff(音声ファイル)として保存可能。

"-h"でヘルプ表示。

 

Homebrewを使ってみる

HomebrewはPackage manager。Package Managerそのソフトにどのソフトのバージョン何以上が必要か今インストールされているソフトは何かといった情報を持っているため、必要に応じてソフトを勝手にダウンロードしてきてインストールしてくれる。

以下、導入手順。

手順1:Xcodeをインストールする(既に持っているので省略)。

手順2:$ sudo chown -R `whoami` /usr/local で/usr/localディレクトリの所有者を自分のユーザーに変更。

sudoは引数に渡したコマンドを管理者権限で実行するコマンド。suSuper Userの略で管理者の事。Super Userで実行するからsudosudoは起動に必要なファイルを消すとか致命的なコマンドでも実行できてしまうので注意
chownCHange OwNerの略でファイルやディレクトリの所有者を変更するコマンド。所有者のユーザー名と変更したいファイル・ディレクトリ名を指定。-Rは指定したディレクトリより下全部を変更するというオプション。
whoamiは自分のユーザー名を表示するコマンド。
`(バッククォート)で文字を囲うとその文字をコマンドとして実行して、出力結果に置き換える)

手順3:$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" でHomebrewをインストール。

 

Homebrewをインストールすると/usr/local/binbrewというコマンドが増える。

brewsearch, install, uninstallといったサブコマンドと言われる引数を最初に指定する。

例:"tree"を含むソフトを検索・表示。

gyazo.com

 

"brew install ソフト名"でソフトのインストール。

"brew uninstall ソフト名"でソフトのアンインストール。

 

ファイル操作の基本

$ touch:空ファイルの作成。

$ mkdir:ディレクトリの作成。

$ mkdir -p(例:foo/bar/buz):深い階層のディレクトリを一気に作成。

$ cp :コピーコマンド。

(例:foo /tmp):第一引数のファイルfooを第二引数の場所/tmpにコピー。

(例:foo bar):fooをファイル名を指定(bar)してコピー。

-r:ディレクトリを丸ごとコピーするオプション。

$ mv:ファイルを移動するコマンド。第一引数を第二引数に移動。cpと違って元ファイルは無くなる。cpと違いオプションをつけなくてもディレクトリの移動が可能。

$ rm:ファイルの削除

$ rm -r:-rオプションをつけるとディレクトリごと削除できるが危険。sudoと組み合わせて実行してはいけない。

$ cat:ファイルの中身を表示するコマンド。本来は引数に渡した二つのファイルを繋げて表示するコマンドだが、一つしかファイルを渡さなければ単に中身を表示するため、その用途の方で主に使われている。

作業の自動化

ファイルに実行するコマンドを書いておくと、$ shコマンドにファイル名を渡すと順番に実行してくれる。

・自分の書いたスクリプトをコマンドっぽく実行する。

shebang(シバン):スクリプトを単体で実行する機能。

例:以下をecho-helloというファイル名で保存。

gyazo.com

実行。

gyazo.com

chmodはファイルの権限を変更するコマンド。echo-helloというファイルにユーザー実行権限(u+x)を追加している。

shebang(#!)は、

「“黒い画面”で実行しようとしたファイルの1行目の最初の二文字が#!だったら、その後に書いてあるコマンドに2行目以降の全てを渡す」

という機能。

PATHを設定する

独自のスクリプトを置く場所について。

全ユーザーで共有するものは/user/local/binに、自分だけが使うものはホームディレクトリにbinというディレクトリを作成して置く。

例:

$ mkdir bin
$ mv file名 bin/

デフォルトでは/Users/user名/binはPATHに含まれていないため面倒。PATHを設定する。

gyazo.com

exportは環境変数を設定するコマンド。envコマンドの出力結果のように環境変数名と中身を=(イコール)で区切って渡すとその値に設定される。

~/binは$HOME/binと同じ意味。“黒い画面”では$HOMEを~(チルダ)一文字で表すことができる。

環境変数PATHは:(コロン)で区切ってディレクトリ名をつなげたものだったので、上記は”今までPATHに設定されてたものに~/binを追加する”という意味になる。

これでPATHに追加出来たので、ファイル名を打ち込むだけでスクリプトがコマンドのように使える。