Debian LinuxでのPHPインタラクティブコンソールのサポート

おそらく、多くの人が壊れたインタラクティブコンソールPHPの問題に遭遇しました。



入るとき

#php -a



「Interactive mode enabled」という碑文のみが表示されます。その後、入力したものは何でも、入力されたコマンドの解釈と実行は機能しません。 実際、これは完全に真実ではありません。 実際、これは特別なモードであり、引き続き使用できる必要があります。 このモードの操作の説明は、私の投稿のタスクには含まれていません。 通常の初心者ユーザーにとっては、次のように見えます:何も機能しません。 しかし、pythonまたはnode.jsコンソールで慣れている方法で「機能」させるために、それを行います。





グーグルで調べた後、ほとんどのリンクでは、readlineライブラリサポートを使用してPHPを再コンパイルするようアドバイスしています。 おそらく、インタラクティブモードでのPHPの作業を担当しているのは彼女です。 はい、まさにそうです:PHPアセンブリではreadlineは機能しません。 さらに、Debian Linuxでは、ディストリビューターのライセンスの問題により、このサポートをすぐにインストールすることはできません。 php5-readlineパッケージは含まれていません。 ただし、すべてのPHPを再構築して手動でインストールするよりも、PHPコンソールを機能させるためのよりシンプルで「合法的な」方法があります。その後、PHPは標準のオペレーティングシステム更新メカニズムから脱落し、その後のPHPパッケージには競合がたくさんあります。



上記のすべてがDebian Wheezyの現在の安定バージョンに適用されることを直ちに予約してください。 Debianの次の不安定バージョンでは、このサポートが返されるようです。 残念ながら、私は自分でこれを確認しませんでしたが、対応するリポジトリでphp5-readlineパッケージを確認し、バグレポートの対応するトピックで修正された結論を確認しました。 つまり、私が理解しているように、Debian JessieとPHP 5.5では、このサポートはすぐに使用できます。



WheezyおよびPHP 5.4に戻る...

いくつかの小さな修正を加えて書かれたものは、他のLinuxディストリビューションにもまったく適用可能であり、原則は同じです。



ルートの下から、またはsudoコマンドの前からすべてを実行します。



1.まず、PHPとreadlineの開発パッケージが必要です

#aptitude install php5-dev libedit-dev libreadline-dev



パッケージphp、libedit、libreadlineがインストールされていない場合、自動的にインストールされます。



2.次に、PHPのソースコードが必要です。 OSリポジトリから取得します

#apt-get source php5-cli





3.すべてのPHPを再構築するわけではありません。 必要なモジュールは1つだけです。 そしてそれを集める

#cd php5-5.4.4 / ext / readline /

#phpize

#./configure

#作る





4.ここで落とし穴があります。コンパイル時に、コンパイラはsapi.hを見つけられません

#ln -s ../../sapi/

#作る





5.ビルドが正常に完了しました。 新しく作成されたreadline.soモジュールを取得し、現在のPHPのモジュールに配置して、構成を編集します



モジュール:

#mcrypt.soを見つける| grep php

#cp modules / readline.so / usr / lib / php5 / 20100525 + lfs /

#chmod -x /usr/lib/php5/20100525+lfs/readline.so





ここでは、PHPのインストール時に自動的にインストールされるmcryptの例を使用して、 locateコマンドを使用して、PHPファイルがあるパスを決定します。 Locateコマンドがない場合は、私のものと同様にパスを定義してください



構成:

#echo 'extension = readline.so'> /etc/php5/mods-available/readline.ini

#cd /etc/php5/cli/conf.d

#ln -s ../mods-available/readline.ini 20-readline.ini





それだけです コンソールは機能しています。

#php -a

インタラクティブモードが有効



php>




All Articles