我最近被強烈安利了 Jupyter Notebook 這個互動式筆記本。然後試用了它自帶的 Python 核心後,這個應用整體給我的感覺很不錯,就去搜尋了下它所支援的其它核心 Jupyter Kernels。我在下面內容介紹下該應用下如何安裝 PHP 核心。
安裝步驟
安裝 PHP 核心 Jupyter-PHP
環境要求
- PHP >= 7.0
- 已安裝 Jupyter Notebook
- Mac 上操作
步驟
-
全域性安裝 Composer
$ curl -sS https://getcomposer.org/installer | php $ mv composer.phar /usr/local/bin/composer
-
安裝 PHP-ZMQ 擴充套件
(1) 下載編譯
$ git clone git://github.com/mkoppanen/php-zmq.git $ cd php-zmq $ phpize && ./configure $ make && make install
(2)修改配置
修改 php.ini 配置,新增 `extension=/path/modules/zmq.so`
- 下載 jupyter-php-installer.phar
- 執行 phar 安裝程式
$ php jupyter-php-installer.phar install
- 安裝成功,顯示
The Jupyter-PHP kernel has been successfully installed.
遇到並解決的問題
問題 1:
編譯 PHP-ZMQ 無 autoconf 和 pkg-config
解決:
$ brew install autoconf
$ brew install pkg-config
問題 2:
Mac 上無 php.ini
解決:
$ sudo cp /etc/php.ini.default /etc/php.ini
問題 3:
編譯的擴充套件 zmq.so 無法移動到 PHP 預設擴充套件路徑 /usr/lib/php/extensions/no-debug-non-zts-20160303/
解決:
因為 macOS 系統完整性保護(SIP)將阻止你將 zmq.so 移動到預設路徑下,而我又不想關閉SIP。所以處理辦法是引入擴充套件寫入絕對路徑
extension=/path/modules/zmq.so
問題 4:
使用 PHP 核心 並 print 列印出現了雙輸出
解決:
實際是因為它將列印的值和返回值無差別的輸出導致的,而作者暫未解決。檢視 issues