さくらインターネットでGPUサーバーのレンタルが開始されます

さくらインターネットで、GPUサーバーのレンタルが開始されるそうですね。

「NVIDIA Tesla」搭載GPUサーバを月額制で──さくらインターネットが9月末に開始

費用が結構かかるようです。どれくらい需要が見込めるのでしょう。ビジネスとして成り立つのかどうかとても興味があります。

Docker for Windowsの仕組み

DockerがWindowsに正式に対応しました。コンテナーがどうやってWindowsで動くのか興味がありました。

無償の「Docker for Windows」で手軽にLinuxコンテナを利用する (1/2)

以前は、VirtualBoxの上で、Tiny Core Linuxという小さいLinuxを動かしていました。

正式な対応といって、どうしてるのかと思いました。結局、Hyper-Vの仮想マシンが1つ動いていて、その上でAlpine LinuxというLinuxが動いています。仮想マシンの名前はMobyLinuxVMとなっています。その上でDockerのコンテナが動いています。MobyLinuxってなんでしょう。

コンテナが実行される環境としては、仮想マシンを動かしてLinuxの上で実行しているのは変わりません。

Windows上からコマンドで、Linux上のコンテナを操作しているわけですね。

Ubuntu 16.04をインストールしてからPHPのデバッグができるまで

Ubuntu 16.04上でPHPのデバッグができる環境を整えました。手順をまとめます。

Apache2のインストール

まずはApache2のインストールから。

$ sudo apt install apache2
$ sudo a2enmode userdir

a2enmodeでuserdirを有効にします。これで、ホームディレクトリのpublic_htmlディレクトリを公開できるようになります。作ったディレクトリが/home/hoge/public_htmlだと、

http://localhost/~hoge/で、public_html以下が公開されます。

PHPのインストール

次は、PHPのインストール。

$ sudo apt install php libapache2-mod-php

/etc/apache2/mods-available/php7.0.confのphp_admin_flag engine Offをコメントアウト。これで、上で設定したpublic_html内でPHPが使えるようになります。

MySQLのインストール

次にMySQLのインストール。

$ sudo apt install mysql-server mysql-client

実は、最初mariadb-serverとmariadb-clientをインストールしたのだけれど、rootのパスワードが設定されずアクセスできませんでした。バグのようなのでMySQLに変更しました。

ところが、MariaDBをアンインストールして、MySQLをインストールしようとしてもエラーでできません。こちらの情報に従って完全に設定ファイルを削除した後でインストールできました。

Uninstall MySQL completely

PDOのインストール

PHPからMySQLにアクセスするPDOをインストールします。

$ sudo apt install php-mysql

$ sudo service apache2 restart

上述のようにuserdirを使える状態で、/home/hoge/public_html/index.phpに

<?php
phpinfo();

と書いたファイルを作って、http://localhost/~hoge/でアクセスして、PDOのところにmysqlとドライバが表示されていればOKです。

Javaをインストール

PHPのデバッグにNetBeansを使えればと思い、Javaをインストール。

$ sudo apt-add-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt install oracle-java8-installer

NetBeansをインストール

NetBeansは、PHPを使えるものをダウンロードしてインストールしました。

$ sudo sh ./netbeans-8.1-php-linux.sh

インストール先は、/usr/localではなくてホームディレクトリの中にしました。

日本語のインライン変換ができないときは、以下のようにFcitxの設定をするとうまくいきます。変換候補が離れたところに表示されるので今一つですけど。

Fcitx tips

xdebugをインストール

NetBeansで、PHPをデバッグするためにxdebugをインストールします。

$ sudo apt install php-xdebug

これでインストールはできるのですが、動かすために設定が必要になります。
xdebug.iniにzend_extensionしか設定されていないので、xdebug.remote_enable=1とxdebug.remote_autostart=1、xdebug.idekey="netbeans-xdebug"の3行を付け加えます。
remote_enableは、NetBeansでデバッグするときに必要になります。htmlからphpを呼び出すときなど、2つのファイルにまたがるときはidekeyが必要になります。
、remote_autostartは、後述するVisual Studio Codeでデバッグするときに必要になりました。
/etc/php/7.0/mods-available/xdebug.ini

zend_extension=xdebug.so
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.idekey="netbeans-xdebug"

これで、上述のhttp://localhost/~hoge/にアクセスしてphpinfo()の結果を見ます。xdebugのremote_eanbleがOnになっていればOKです。

もし、Onになっていなければ、/etc/php/7.0/apache2/conf.d/20-xdebug.iniがあるかどうか確認してください。20-xdebug.iniは/etc/php/7.0/mods-available/xdebug.iniのシンボリックリンクになっているはずです。Apache2が設定を読み込んだ場合、phpinfo()のAdditional .ini files parsedという欄に20-xdebug.iniを読んだことが表示されています。

NetBeansでデバッグできることを確認

NetBeansを起動して、ホームディレクトリのpublic_html内にテストプロジェクトを作ります。ソースコードには、phpinfo();を入れます。ブレークポイントを設定して、デバッグを開始。ブレークできれば成功です。

phpinfo()で、xdebugのremote_enableがOnになっていれば、たぶん何も設定しなくても動くと思います。

Visual Studio Codeをインストール

せっかくなので、Visual Studio Codeをインストールしてみます。

code_1.4.0-1470329130_amd64.debをダウンロードして、Gnome ファイルから右クリックして「ソフトウェアのインストールで開く」でインストールしました。

Visual Studio技術情報にある、Visual Studio Code Preview ファースト ステップ ガイド (PDF: 5.9 MB)をダウンロードしてみると、インストールや簡単な使い方が載っています。日本語で読めます。

Ubuntuの場合、ターミナルでcodeと打つと起動します。

PHPのextensionをインストールします。左側のビューバーの上から5番目にある拡張機能を選択。ボックスにPHPを打ち込んでextensionを検索します。

PHP DebugとPHP,Perl,Asm,Bash Code Formatをインストールしました。コードのフォーマッタは、PHP Code Formatもあるのですが、PHPのファイルで?>で閉じるとタブがスペースに変換されなかったり、8カラムになったり不具合がありました。PHP Debugのほうが、xdebugを使うのに重要です。

あとは、コードの中にブレークポイントを設定して、左のビューバーの4番目のデバッグのモードに切り替えます。左上のStart Debuggingという緑色のボタンを押してからブラウザでファイルをアクセスしてみるとブレークします。NetBeansと違って手動でサイトにアクセスしないと勝手にデバッグが始まらないです。エディターと統合環境の違いかなと思います。

もし動かないときは、phpinfo()のxdebugの欄でremote_enableがOnになっていること、remote_autostartがOnになっていることを確認しましょう。

実際にVisual Studio Codeでデバッグしてみましたが、1度フリーズした他は快適に使えました。ソースコードのオートフォーマットなどはNetBeansの方が細かく設定できていいですけれど、高機能なエディタと思えば、デバッグもできるしいいかなと思いました。

ただ、Intellisenseは動いているのですが、よい候補があまり出てこなくてコード補完はあまり使えませんでした。ちょっと残念。

VMware Workstation 12.1.1 PlayerでUbuntu 16.04を使う

以前、VMware Workstation 12 PlayerでUbuntu 14.04を使おうとしました。

ホストは、Windows 10 Proです。

VMware Toolsをインストールして、いろいろやってみたのですが、どうもうまくいきませんでした。

今回Ubuntu 16.04を使おうとして調べてみると、こちらの方法でうまくいくことがわかりました。

ubuntu 16.04 インストール(2) vmware tools

自分の場合、クリップボード共有(コピーペースト)と共有フォルダを主に使っています。

VMware Toolsをインストールする方法としては、Ubuntuにもともと入っているOpen VM Toolsを使う方法と、以前からあるように手動でインストールする方法があります。

Ubuntu 16.04のデフォルトでは、Open VM Toolsが入っているのですが、共有フォルダが動かなくて困っていたのでした。じゃあということで、手動でインストールするとクリップボード共有がうまく動きません。

結局、もともと入っているOpen VM Toolsをつかって、/etc/fstabの設定を付け加えることで両方動かすことができました。

繰り返しになりますが、少し説明すると、

$ sudo apt install open-vm-tools-desktop

で、クリップボード共有が有効になります。もともと入っていれば問題ないです。

また、/etc/fstabに

.host:/ /mnt/hgfs fuse.vmhgfs-fuse allow_other,auto_unmount,defaults 0 0

と付け加えることで共有フォルダが有効になりました。

画面のリサイズにも対応していて、ありがたく使わせていただいています。