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>

Source: https://habr.com/ru/post/J198886/


All Articles