20160219-01
宇宙兄弟読み直してるが、やっぱ面白いな!ニャンぼー!

さて。
WEBの開発はJavaよりやっぱりPHPすかね。
というわけで、VAIO TYPE P上のLinux Mint 17.2にapache入れてPHP、MySQL入れてEclipseでPHP開発できるようにPDT入れてみます。

Apache2のインストール

まずはapacheを入れます。
CentOS系の場合はパッケージ名はhttpdだったけどubuntu系はapache2なんですね。
インストール出来なくて何気にハマる。びっくりwここでハマるかwww
$ sudo apt-get install apache2
そしてバージョン確認。
$ apache2 -v

Server version: Apache/2.4.7 (Ubuntu)
Server built:   Jan 14 2016 17:45:23
う、うむ、、、2.4系としては少し古い気もするが、ま、いいか。

PHP7のインストール

仕事ではPHP5系を使ってますが、個人なら使える!最新を!最速を!7だ!7を使うぞ、俺は!
というわけで、以下のコマンドでインストール。
$ sudo apt-get install python-software-properties
$ sudo add-apt-repository ppa:ondrej/php-7.0
$ sudo apt-get update
$ sudo apt-get install php7.0 php7.0-gd php7.0-gmp php7.0-mcrypt php7.0-mysql php7.0-xmlrpc
そしてバージョン確認。
$ php -v

PHP 7.0.3-2+deb.sury.org~trusty+1 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
     with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
うひょー、Yes!

apacheとPHPの動作確認

さてまずはおもむろにapacheを起動してみる。
$ sudo service apache2 restart

 * Restarting web server apache2                                                
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
                                                                         [ OK ]
なんかエラー出てるのか?!でも[OK]とか!動いてるんだけども!
・・・というわけで、エラーを取る。
$ sudo vim /etc/apache2/apache2.conf

ServerName dev002          ←とりあえず適当に名前付けた
これで再起動してみたらメッセージでなくなった。OK。

ドキュメントルートはどこに記述されているか分からないんだけど、どうやら/var/www/htmlっぽい。
ここはCentOS系と同様だな。
ここにテスト用のPHPファイルを置いてみる。
$ sudo vim /var/www/html/test.php



そしてhttp://localhost/test.phpにアクセス。

phpinfo()

OKだ。

Eclipse4.5にPDTをインストールする

Eclipseを起動して「ヘルプ」->「新規ソフトウェアのインストール」を選択する。
で、表示される画面の「作業対象」欄に以下のURLを入力。

http://download.eclipse.org/releases/mars

で、表示されるプラグインリストの「プログラミング言語」->「PDT」と辿ったのが以下の画面。

スクリーンショット_2016-02-07_03-28-52

で、PDTを選択して後はどんどん先に進んでいけばインストールは完了。

スクリーンショット_2016-02-07_03-30-04
スクリーンショット_2016-02-07_03-30-28
スクリーンショット_2016-02-07_03-30-57
スクリーンショット_2016-02-07_03-33-15

Eclipseを再起動すると、ようこそ画面にPHP開発に関するアイコンが追加されてる。

スクリーンショット_2016-02-07_03-38-57

これを閉じて、パースペクティブを開けばPHPの開発が出来るわけだ。

スクリーンショット_2016-02-07_03-44-22
スクリーンショット_2016-02-07_03-45-04
スクリーンショット_2016-02-07_03-46-32

実際に「Sample」というPHPプロジェクトを作って「Sample1.php」というファイルを作ってみた。
ソースの中身は大したことない。
こいつを実行してみる。だがエラー!んがー!

これはapacheのドキュメントルートが/var/www/htmlに対して、EclipseからPHP実行時はソースファイル自体はworkspace(/home/[ユーザー]/workspace)の下のプロジェクトの下にあるのに、ドキュメントルートの下にプロジェクトがある想定で実行してくれちゃうからだ。
ここはEclipseバカーと叫びたい。

まぁ多分Eclipseの設定でPHP実行環境周りをごにょごにょ設定すれば動くんじゃなかろうか、と思うんだけど。。。

で、とりあえず以下のコマンドでドキュメントルートの下にプロジェクトへのシンボリックリンクを貼る。
$ sudo ln -s /home/dev_user001/workspace/sample/ ./sample

これで再度実行すれば、おおー、ちゃんと表示される!

apacheのドキュメントルート自体をworkspaceにしちゃう、という手もあるが・・・実行環境の設定を開発環境に合わせる、という発想が俺的にイケてないので却下。

ついでにMySQLのインストール

この際なのでLAMP環境揃えちゃおう、ということでMySQLの最新(2016/02/16時点では5.7)も入れる。
というわけで、まずはAPTリポジトリ追加用パッケージをダウンロードしてくる。
$ wget http://dev.mysql.com/get/mysql-apt-config_0.6.0-1_all.deb
そんでもってインストール&APTリスト更新。
$ sudo dpkg -i mysql-apt-config_0.6.0-1_all.deb
$ sudo apt-get update
いよいよMySQLのインストール。
$ sudo apt-get install mysql-server
そうするとTerminalの中に以下の画面が表示される。

スクリーンショット_2016-02-15_01-11-55

どうやらLinux Mintってディストリは知らんよ、言うてるみたい。で、互換性のあるディストリを選べ、と。
Linux Mint17.2はUbuntu Trusty Tahr(14.04 LTS)がパッケージベースなので、「ubuntu trusty」を選ばないといけない!

もし間違えたヤツ選んでどんどん進んで、いざMySQLインストール!とするとエラー出てインストール出来ん。
つ〜か俺、適当に選択しちゃってハマって青ざめたw今回ココが一番ハマったwww

で、その場合は一旦mysql-apt-configをpurgeしてからもう一回インストールしなおしてmysql-serverをインストールすれば良い。
具体的には以下。
$ sudo dpkg --purge mysql-apt-config             # これで一旦設定ファイルごと削除
$ sudo dpkg -i mysql-apt-config_0.6.0-1_all.deb
$ sudo apt-get update
$ sudo apt-get install mysql-server
さて、正しく「ubuntu trusty」を選択すると次は以下の画面。

スクリーンショット_2016-02-15_01-13-04

すでにMySQL5.7が選択されている状態。
ToolとかConnectorとかは今のところ特にいらないので、上記の画面で「Apply」を選択。
するとパスワードを求められるので、sudoの時と同様にパスワードを入力。
これでガーっとインストールされる。

インストールが終わったら以下のコマンドで確認。
$ mysqld --version
mysqld  Ver 5.7.11 for Linux on i686 (MySQL Community Server (GPL))

Yes!

MySQLの設定

まずは以下のようにmysqlコマンドでDBに接続してみる。求められるパスワードはsudoん時と同じだ。
$ mysql -u root -p
で、設定されている文字コードを確認してみる。
mysql> show variables like 'chara%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
ガテン系が混じってる!ガテン系、嫌っ!
こいつらをutf8にする。

CentOS系は/etc/my.cnfだったんですけどねぇ、ubuntuは/etc/mysqlの下なんですね。
$ sudo vim /etc/mysql/my.cnf
[client]
 :
default-character-set=utf8

[mysqld]
 :
character-set-server=utf8
そしてmysqlを再起動する。
$ sudo service mysql restart
そんでもって確認。
$ mysql -u root -p
mysql> show variables like 'chara%';

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
よし、OK。


データベース、ユーザー、テーブルの作成、データの作成

そんじゃ、ちゃんと動くかどうか、sample_db、sample_user、sample_tblを作ってみる。
mysql> create database sample_db;
Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on sample_db.* to sample_user identified by 'sample_user' with grant option;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> create table sample_db.sample_tbl ( id int not null, name varchar(100), primary key( id ) );
Query OK, 0 rows affected (0.38 sec)
そしたら適当にデータ入れとく。
mysql> insert into sample_db.sample_tbl values( 1, 'あ' ), ( 2, 'いい' ), ( 3, 'ううう' );
Query OK, 3 rows affected (0.09 sec)
Records: 3  Duplicates: 0  Warnings: 0


phpからMySQLへアクセス

Eclipseから、さっき作ったsample1.phpを以下のように書き換える。
さっき作ったテーブルからデータをselectして表示、っつうベタなやつ。

スクリーンショット_2016-02-17_02-07-00

そんでもってEclipse上で実行してみるわ。

スクリーンショット_2016-02-17_02-08-01

なんか。
すんなりいったな。

VAIO TYPE Pで、すんなり動くんだな。

まとめ

apacheもPHP7もMySQLもEclipse4.5も、全てVAIO TYPE P上のLinux Mint 17.2で動いている。
かばんの中にも入るし、ベッドの上でも、こうやってブログを書いてる、このマシン上で動いている。
しかも案外我慢出来るパフォーマンスだ。・・・今のところ、ではあるが。

なんか、やりたい事が出来始めている。
ちょっと感動すらしている。

VAIO TYPE Pが発売されたのが、2009年1月。
あれから7年。

このサイズ、この軽さ、このデザインは、2016年の今でさえ革新的だと思う。
それこそタブレットなんかよりもずっと価値があると思うのだ。

とかいいながら、Androidタブレット(2万弱で購入)も持ってますけどね。すいません。。。

両方使ってみて分かったのは、その端末を開いて使い始めてから使い終えるまでの時間の長さ。というか深さ。

同じ使い方、例えば文章を書いたりブラウザーでネット見たりするのをVAIO TYPE Pとタブレットと、それぞれで実施してみると、(個人的な意見なのだろうけれど)圧倒的にVAIO TYPE Pのほうが没入感というか集中して使っていると感じる。

多分、タブレットが俺的にイケてないのは、タッチパネルというUIが集中力を妨げる原因を作っていると思うからだ。
間違って、少し触れてしまっただけで意図しない動作をしてしまう、だから触ることにさえ気が気じゃない。
タッチパネルってUI、間違いだったんじゃねー?!
そんな感じだ。

そして、VAIO TYPE Pに関するブログなどの記事は今でもネットに溢れてる。

VAIO TYPE Pは、外見はそのままでいいから、新しい中身(CPUだったりメモリーだったりSSDだったりバッテリーだったり)でまた世に出て欲しい。

本当に心からそう思う、そんなガジェットだと思うんだ。



さて、次回はPHPのフレームワークであるZend Frameworkでも入れて何か作ってみようか!



って、調べてみたら!
Zend FrameworkどころかZend Framework2でもPHP7には対応してない?!
うそーっ?!マジで?

さて、どうする?