Windows10からUbuntu16.04へリモートデスクトップ接続する設定

接続される側(Ubuntu16.04)の設定

インストー

$ sudo apt install xrdp lxde

設定

$ echo lxsession -s LXDE -e LXDE > ~/.xsession

以下のファイルを編集する

$ sudo vi /etc/xrdp/xrdp.ini
  • crypt_levelをlowからhighにする
  • xrdp1セクションのport=-1をask=-1にする

端末を起動して

$ gsettings set org.gnome.Vino require-encryption false

サービスを起動

$ sudo service xrdp restart

左上の"コンピューターを検索"から"デスクトップの共有設定"と入力し、設定画面を開きます。

“他のユーザーが自分のデスクトップを表示できる"にチェックを入れて、リモートデスクトップアクセスを許可します。

“このマシンへのアクセスを毎回確認する"のチェックは外しましょう。これが有効になっていると、アクセスするたびに、Ubuntu側で許可しなくてはいけません。

Windowsからリモートデスクトップアクセス

標準のリモートデスクトップでアクセスします。

f:id:watarisein:20170624235909p:plain

Windowsからアクセスする際は、consoleを選択します。

f:id:watarisein:20170624235919p:plain

これで、Windows10からUbuntu16.04へリモートデスクトップアクセスできました。

f:id:watarisein:20170625000010p:plain

まとめ

Windows10からUbuntu16.04へリモートデスクトップアクセスできました Windows標準のリモートデスクトップクライアント以外にも、Ultra VNCなども使えます。 Windows標準クライアントの場合はconsoleで接続する点に注意してください。

参考

WordPressプラグイン【Duplicator】でzip archive enabled fail が出た場合の対処(Linux)

パッケージをインストール後、再起動でPassしました。

以下、対処方法。

対処

パッケージをインストールします。

$ sudo apt install sudo apt install php7.0-zip
$ sudo reboot

確認

再度Duplicatorのパッケージ作成画面を見るとrequirementsがpassになりました。

f:id:watarisein:20170504184951p:plain

以上

Nginxでリバースプロキシサーバーを構築する【1つのグローバルIPで複数のドメイン名を振り分ける方法】

1つのグローバルIPしか持っていないが、複数のホスト名で振り分け先を変えたい場合、リバースプロキシを使います。 今回は、Nginxを使ってリバースプロキシを実現する方法について説明します。

Nginxのインストール

$ sudo apt install -y nginx

リバースプロキシの設定

例えば、hoge.co.jpというドメイン名でLAN内の192.168.1.100へアクセスを振り分ける場合

リバースプロキシ用の設定ファイルを作成します。ファイル名は任意で構いません。

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

server {
    server_name hoge.co.jp;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    location / {
        proxy_pass http://192.168.1.100;
    }
}

設定を有効化します。

$ sudo ln -s /etc/nginx/sites-available/hoge /etc/nginx/sites-enabled/

サービスを再起動します。

$ sudo systemctl restart nginx

サイトを増やす場合は、同様にリバースプロキシの設定を増やしていけばOKです。

P650RG【NG-N-i5910GA1】のHDD【WD10JPVX】をSSD【850 EVO MZ-75E250B】に換装

マウスコンピューターのセールで買ったP650RGには、M.2 SSD(250GB)とHDD(1TB)が搭載されていました。

併用していると、HDDの性能の低さが際立ってしまうので、せめてSSDに換装することにしました。

環境

PC: P650RG【NG-N-i5910GA1】

交換前ストレージ(HDD): WD10JPVX

交換後ストレージ(SSD): 850 EVO MZ-75E250B

交換作業

まずは、PCの裏の蓋を外します。

f:id:watarisein:20170502194438j:plain

左下に固定用のフレームにねじ止めされる形でHDDが収まっています。

側面から見た図。

HDDの固定用フレームをマザーボードに固定しているねじを外してから、HDDを固定しているねじを外し、用意したSSDを固定します。

固定用のフレームを、元会った通り固定します。

f:id:watarisein:20170502201244j:plain

これで蓋を閉じれば完成です。

ベンチマーク

交換前HDD

CrystalDiskInfoで見ると、正常に動作していることがわかります。

f:id:watarisein:20170502200318p:plain

CrystalDiskMarkベンチマークをとった結果です。

f:id:watarisein:20170502200421p:plain

2.5inch HDDなので、こんなものでしょう。

交換後SSD

次に、SSDCrystalDiskInfo。正常に認識しています。

f:id:watarisein:20170502200515p:plain

ベンチマーク結果

f:id:watarisein:20170502200550p:plain

格段に上がりました。

比較

表にまとめると、こんな感じです。

読み込み速度(MB/s)

Seq Q32T1 4K Q32T1 Seq 4K
HDD 119.3 1.388 119.1 0.552
SSD 548.9 198.3 510.9 35.39

書き込み速度(MB/s)

Seq Q32T1 4K Q32T1 Seq 4K
HDD 117.0 1.264 117.6 1.151
SSD 504.2 178.2 475.9 98.75

段違いに上がっています。

ついでに、P650RGに標準搭載のM.2 SSDの速度も計測してみました。

CrystalDiskInfo

f:id:watarisein:20170502203120p:plain

CrystalDiskMark

f:id:watarisein:20170502203142p:plain

恐ろしい速さですね。。

まとめ

P650RG【NG-N-i5910GA1】のHDD【WD10JPVX】をSSD【850 EVO MZ-75E250B】に換装する方法と、ベンチマーク結果(M.2 SSDも)をまとめました。 M.2 SSDの導入もそろそろ本格的に始めようかと思わせる測定結果となりました。

文字の横に水平線を表示するCSSテクニック【サンプルコードあり】

以下のように、文字の横に水平線を出すサンプルコード

f:id:watarisein:20170430225739p:plain

まずはHTML

<h2><span>タイトル</span></h2>

続いてCSS

h2 {
    overflow: hidden;
    text-align: center;
}

h2 span {
    display: inline-block;
    padding: 0 0.5em;
    position: relative;
}

h2 span:before,
h2 span:after {
    border-top: 1px solid;
    content: "";
    position: absolute;
    top: 50%;
    width: 99em;
}

h2 span:before {
    right: 100%;
}

h2 span:after {
    left: 100%;
}

水平線は内側の span 要素の :before と :after の擬似要素を左右に配置して表現しています。 これらに 99emや9999px など充分な幅を持たせ、はみ出した分は外側の h2 要素に指定した overflow: hidden により切り取ります。

以上、文字の横に水平線を描くCSSテクニックでした。

Nginxのリバースプロキシで504 Gateway Timeoutエラー

読み込みに時間がかかるページの場合、初期設定のNginxのリバースプロキシでは504になることがあります。 ここでは、タイムアウトの時間を延ばして、エラーを回避する方法について説明します。

解決策

タイムアウトの時間を延ばします。

$ sudo vi /etc/nginx/conf.d/timeout.conf
proxy_connect_timeout       600;
proxy_send_timeout          600;
proxy_read_timeout          600;
send_timeout                600;

サービスを再起動します。

$ sudo systemctl restart nginx

これでもtimeoutする場合は、タイムアウトの時間を延ばしていきましょう。

まとめ

Timeoutエラーを回避する方法について説明しました。 ただ、タイムアウトが起きること自体問題です。 恒久対処として、遅くなっている原因の分析と対策は別途必要になると思います。

bundle updateやgem installでkakasiをインストールしようとすると"libkakasi is not found"でエラーになる

gemやbundleでkakasiをインストールしようとすると、次のようなエラーが出た。

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory:
/home/hoge/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/kakasi-1.0.2/ext/kakasi-config
/home/hoge/.rbenv/versions/2.3.1/bin/ruby -r
./siteconf20170429-71637-q77g1z.rb extconf.rb
checking fiddle... yes
checking for kakasi... failed -- libkakasi is not found
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/home/hoge/.rbenv/versions/2.3.1/bin/$(RUBY_BASE_NAME)
        --with-kakasi-dir
        --without-kakasi-dir
        --with-kakasi-include
        --without-kakasi-include=${kakasi-dir}/include
        --with-kakasi-lib
        --without-kakasi-lib=${kakasi-dir}/lib

extconf failed, exit code 1

Gem files will remain installed in
/home/hoge/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/kakasi-1.0.2 for
inspection.
Results logged to
/home/hoge/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/extensions/x86_64-linux/2.3.0-static/kakasi-1.0.2/gem_make.out

An error occurred while installing kakasi (1.0.2), and Bundler cannot
continue.
Make sure that `gem install kakasi -v '1.0.2'` succeeds before bundling.

解決方法

kakasiのインストール

こちらを参考 http://satolabo.0t0.jp/2017/03/09/ubuntu-replacement-by-kakasi/

共有ライブラリの更新

$ sudo echo "/usr/local/lib" >> /etc/ld.so.conf.d/usrlocal.conf
$ sudo ldconfig

これで、gem installやbundle updateをすれば、無事にkakasiがインストールされます。

$ bundle update
.
.
Installing kakasi 1.0.2 with native extensions
.
.