Jupyterでphpを使えるようにする in Windows 10

Home  >>  My Exciting  >>  Jupyterでphpを使えるようにする in Windows 10

Jupyterでphpを使えるようにする in Windows 10

On 2月 12, 2017, Posted by , In My Exciting, By , With 2 Comments

はろー。
もーりです。

Pythonを使い、試行錯誤しながらの開発ではjupyterがかなり重宝しています。
そこで、phpの開発環境として使えるようにしたいと思いました。

簡単にできそうで、結構苦労したので記事にしておきます。

Jupyterでphpを使えるようにする in Windows 10

ここで紹介する「Jupyter-PHP」は、PsySHをJupyterで使えるようにするもののようです。PsySHで、utf-8(日本語)を使うと落ちます。コメントに使っても落ちます。そのため、「Jupyter-PHP」でも同様です。
対処法としては、ファイルから読み込んだ日本語(utf-8)は正常に扱えるので、ファイル読み込みして使うと良いでしょう。

Jupyter-PHP-Installerを参照するとわかるように、PHP >= 5.5.9、PHP-ZMQ extension、Jupyter Notebook installedの環境が必須です。

※注意:Jupyter-PHPカーネルの今現在のバージョンでは、PHP >= 7.0に上がっています。

1、jupyterをインストールする
2、php環境を構築する
3、composerをインストールする
4、PsySHをインストールする
5、PHP-ZMQ extensionをインストールする
6、jupyter-php-installerをインストールする
7、Jupyter-PHPカーネルをインストールする

1、jupyterをインストールする

Anacondaディストリビューションを使ってPython環境を構築すると一緒にjupyterがインストールされるので、Anacondaディストリビューションのインストールをおすすめします。Python環境として申し分ない環境がお手軽に構築できるのでおすすめです。
jupyterは、python環境が必要なようですね。
pythonにこだわりがなければ、最新のPython 3.x系をインストールすれば、良いと思います。

Anacondaのダウンロード先

2、php環境を構築する

私の場合は、xamppで構築しました。php環境がない方は、今さら聞けない!XAMPPをインストールする方法【超初心者向け】などを参考に構築してください。

コマンドプロンプト>php -version
PHP 7.0.15 (cli) (built: Jan 17 2017 13:58:38) ( ZTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies

実行できなければ、phpへのパスが通っていません。環境変数にphpへのパスを登録します。

Windows10で環境変数Pathの編集方法を参考にpathに追加登録をします。

コマンドプロンプトを再起動後、

コマンドプロンプト>php -version

を実行してみてください。

3、composerをインストールする

composerはPHPの依存管理ツールです。
Composer ドキュメント日本語訳を参考にインストールしてください。とっても分かりやすいです。

composerのダウンロード先:https://getcomposer.org/
composerのダウンロード先(windows):https://getcomposer.org/Composer-Setup.exe

4、PsySHをインストールする

PsySHは、PHPをインタラクティブに実行できる環境です。今回の「Jupyterでphpを使えるようにする」は、このPsySHをJupyter環境で実行できるようにしたもののようです。
ここで、PsySHの構築は不要かもしれません。「7、Jupyter-PHPカーネルをインストールする」で同時にインストールされるかもしれません。私の場合、試行錯誤していたので、ここで紹介する方法でインストールしています。

http://psysh.org/##installの右枠を参考にインストールしてください。composerを使って、インストールします。

コマンドプロンプト> PsySH

を実行して起動すれば成功です。

5、PHP-ZMQ extensionをインストールする

PHP-ZMQ extensionのインストールには下記のサイトが参考になります。

XAMPP(Windows)でZeroMQを使えるようにする

ただ、現在のバージョンと違うところがあるので、改めて記述します。

zmq 1.1.3にアクセスし、「7.0 Thread Safe (TS) x86」をダウンロードします。今現在の「Jupyter-PHPカーネル」はPHP >= 7.0に対応です。

解凍後、
その中に入っている「libsodium.dll」と「libzmq.dll」は、「C:\xampp\php」直下に移動・コピーする。
その中に入っている「php_zmq.dll」は、「C:\xampp\ext」に移動・コピーする。

XAMPP(Windows)でZeroMQを使えるようにするを参考にして、php.iniファイルを編集する。

extension=php_zmq.dll

を追加する。

【PHP-ZMQが正常にインストールされているかのテスト】

PHPでメッセージ送受信(zeromq)を参考に実行する。

私は、下の方にある「publisher.php」と「subscriber.php」を実行してテストを行いました。

6、jupyter-php-installerをインストールする

jupyter-php-installerにアクセスし、[Download PHAR installer]ボタンからダウンロードする。

php ./jupyter-php-installer.phar install

表示の1文に「success」の文字が出てくれば成功です。

上手くいかないときは、

php ./jupyter-php-installer.phar install -vvv
php ./jupyter-php-installer.phar install -v
php ./jupyter-php-installer.phar install -vv

を試してみてください。
成功すると下記フォルダーができていると思います。

C:\Users\○○○\ .jupyter-php

コマンドプロンプトを起動し、

コマンドプロンプト>ipython notebook

を実行して、『Jupyter』を“他”言語活用してみるを参考にJupyterでカーネルをphpに選択してください。

エラーも起きずに、phpコードが実行できれば成功です。
私の環境ではエラーとなりました。

コマンドプロンプトに表示されたエラーを見ると、カーネルがないとのことなので、次に、Jupyter-PHPカーネルをインストールします。

7、Jupyter-PHPカーネルをインストールする

Jupyter-PHPカーネルにアクセスし、[Clone or download]から、[Download ZIP]をクリックしダウンロードする。解凍後、解凍したフォルダを「C:\Users\○○○\ .jupyter-php」直下に移動・コピーする。移動・コピー後そのフォルダーを「pkgs」にリネームする。(コマンドプロンプトに表示されたエラーログを参考にする)

コマンドプロンプト>cd C:\Users\○○○\ .jupyter-php\pkgs
※○○○はそれぞれの環境に合わせて書き換えてください。

“C:\Users\○○○\ .jupyter-php\pkgs”に「composer.json」があるのを確認し、コマンドプロンプトで

C:\Users\○○○\ .jupyter-php\pkgs>composer install

を実行、しばらく待っていると処理が始まると思います。処理が終わるまで待ちます。
処理が終わったら、

コマンドプロンプト>ipython notebook

実行し、先ほどと同じようにjupyterでphpを実行する。エラーもなく起動できれば、php実行ができます。
私の環境では、下記のようなエラーになりました。

Fatal error: Declaration of Litipk\JupyterPHP\KernelOutput::write($messages, bool $newline = false, int $options = self::OUTPUT_NORMAL) must be compatible with Symfony\Component\Console\Output\OutputInterface::write($messages, $newline = false, $options = 0) in C:\Users\○○○\ .jupyter-php\pkgs\src\KernelOutput.php on line 23

関数定義に互換性がないと言っているので、「C:\Users\○○○\ .jupyter-php\pkgs\src\KernelOutput.php」を開いて編集します。

public function write($messages, bool $newline = false, int $options = self::OUTPUT_NORMAL)

をエラーログに従い下記に書き換えます。

public function write($messages, $newline = false, $options = 0)

jupyterを再実行すると、再度似たエラーが出るので、合計で5・6ヶ所修正することになると思います。すべてのエラーを修正し終えると、正常起動できるようになると思います。

それでは、jupyterでphpを楽しんでくださ~い。

もーり。

2 Comments so far:

  1. […] 参考になりそうな神サイト発見!! Jupyterでphpを使えるようにする in Windows 10 […]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です