আমি কীভাবে ডেবিয়ান হুইজিতে ব্যবহারযোগ্য ইন্টারেক্টিভ প্রম্পট সহ একটি পিএইচপি সিএলআই ইনস্টল করব?


10

আমি যখন ডেবিয়ান হুইজিতে (বর্তমানে পরীক্ষা করা) পিএইচপি 5-ক্লিপ ইনস্টল করি তখন রিডলাইন সমর্থন (বাগ 341868 ) হারিয়ে যাওয়ার কারণে ইন্টারেক্টিভ প্রম্পটটি খুব অযোগ্য । লাইব্রেডলাইনের সাথে লিঙ্কিত কোনও সংস্করণ ইনস্টল করার সহজ উপায় (ব্যবহারযোগ্য লাইন সম্পাদনার জন্য) কী?

উত্তর:


10

ডটদেব দেবিয়ান স্থিতিশীল প্যাকেজগুলি ব্যবহার করুন । যদিও ডকুমেন্টেশন এটি নোট করে না, স্থিতিশীল প্যাকেজগুলি বর্তমানে হুই / টেস্টিংয়ের সাথে দুর্দান্ত কাজ করে। নির্দেশাবলী অনুসরণ করার পরে, করুন:

apt-get install php5-cli

রুট হিসাবে


1
php>আমার কাছে এখনও কোনও প্রম্পট নেই :(
মল্লহাউসন

6

ডটডেব থেকে পিএইচপি 5- ক্লিপ ইনস্টল করার পরে, পিএইচপি 5- রিডলাইন প্যাকেজটি ইনস্টল করুন।

apt-get install php5-readline

(পরীক্ষার) এই Jessie মধ্যে কেবল প্রাপ্তিসাধ্য - packages.debian.org/...
উইলিয়াম Turrell

@ উইলিয়ামট ধন্যবাদ, আমি বিশ্বাস করি এটি ডটদেব সংগ্রহস্থলে রয়েছে।
সেএমসি

প্যাকেজটি php5-readlineজেসি এবং সিডের মূল সংরক্ষণাগারে পাওয়া যায়। এবং আপনার php5-cliডটদেব থেকে দরকার নেই।
অরটোমালা লোকনি

4

গিলস যে উত্তরগুলি সম্পূর্ণ পিএইচপি প্যাকেজটি পুনরায় সংশোধন করার পরামর্শ দিয়েছিল তার সাথে যুক্ত হিসাবে আপনি পিএইচপি 5.4 এর জন্যও অপেক্ষা করতে পারেন। 5.4-এ আমি রিডলাইন কার্যকারিতা পুনর্গঠন করেছি যে সমস্ত প্রয়োজনীয় অংশগুলি পাঠ্যলাইন মডিউলে রয়েছে, সুতরাং আপনি সেই স্ট্যান্ডটি একা তৈরি করতে পারেন।

$ wget ...php-5.4.0.tar.bz2
$ tar xjf php-5.4.0.tar.bz2
$ cd php-5.4.0/ext/readline
$ phpize && ./configure && make

তারপরে আপনি modules/readline.sophp.ini থেকে লোড করা যায় এমন একটি দিয়ে শেষ করবেন ( make installএতে সরানো হবে extension_dir)

বিকল্পভাবে ডিস্ট্রিবিউটর রিডলাইন মডিউলটি জাহাজে পাঠাতে পারে (সম্ভবত লিবিডের সাথে লিঙ্কযুক্ত, পাঠ্যরেখার সাথে নয়) এবং ইন্টারেক্টিভ মোড উপলব্ধ থাকবে।

এই সমস্ত আপনাকে এখনই সহায়তা করবে না (পিএইচপি 5.4 হিসাবে। এখনও আউট নয়) তবে অন্যদের এই প্রশ্নটি পরে খুঁজে পেতে সহায়তা করতে পারে।

আমার ব্লগে আরও কিছু বিশদ: http://schlueters.de/blog/archives/133-Now-in-trunk- উন্নত- ইন্টারেক্টিভ- shell.html

সম্পাদনা: আসলে ব্লগ পোস্টটি এই পরিবর্তনের চেয়ে পুরানো তবে এটি এখনও আকর্ষণীয় হতে পারে। একটি সামান্য তথ্য বাগ রিপোর্টে রয়েছে # 53878 তবে খুব বেশি নয় ... রিলিজের পরে http://php.net/commandline.interactive এর আরও বেশি হওয়া উচিত।


ধন্যবাদ, যে সাহায্য করেছে। তবে উবুন্টুতে 2 টি সমস্যা সম্মুখীন হয়েছে। অনুপস্থিত লাইব্রেরিটি ছিল (libedit-dev ইনস্টল করে স্থির করা হয়েছে) এবং এই সংকলন বাগটি ocurred : bugs.php.net/bug.php?id=62612 সমাধানও রয়েছে।
ডিজিমিড

মজার কথা আমি কীভাবে নিজেকে বিরুদ্ধ! এখানে আমি বাগে phpize ইত্যাদির পরামর্শ দিই আমি বলি এটি "সম্পূর্ণরূপে" সমর্থিত নয় ;-)
জোহানেস

3

ইনস্টল করুন rlwrapএবং চালান rlwrap php5। Rlwrap হ'ল জেনেরিক রিডলাইন র‌্যাপার, এটি যে কোনও রিড-ইভাল-প্রিন্ট লুপের জন্য কমান্ড লাইন সংস্করণ এবং ইতিহাস সরবরাহ করে। যেহেতু এটি একটি জেনেরিক মোড়ক, আপনি কোনও পিএইচপি-নির্দিষ্ট সমাপ্তি পাবেন না।

বিকল্পভাবে, উত্স প্যাকেজটি পান এবং পঠন সমর্থন সহ এটি পুনর্নির্মাণ করুন। লাইসেন্স সংক্রান্ত সমস্যার কারণে রিডলাইন সমর্থনটি কেবলমাত্র বাকি ছিল , তবে এই সমস্যাগুলি কেবল পঠন লাইনের সাথে যুক্ত পিএইচপি 5 বিতরণ করতে নিষেধ করে, তারা আপনাকে এটি ব্যবহার করতে বাধা দেয় না।

apt-get source php5-cli
apt-get install build-essential fakeroot
apt-get build-dep php5-cli
cd php5-*/
# Edit debian/rules to configure with readline support
# Add an entry to debian/changelog to remember what you did
dpkg-buildpackage -rfakeroot -us -uc -b -nc

rlwrapঅনেক সাহায্য বলে মনে হচ্ছে না। আমি যখন চালনা করি rlwrap php5, প্রবেশ করান echo 1;, তারপরে রিটার্নটি চাপুন তারপরে Ctrl-D (ইনপুটটির শেষ), এটি echo 1;ফলাফল (1) এর পরিবর্তে ইনপুট আউটপুট করে । এটি লাইসেন্স দেওয়ার বিষয়টি উল্লেখ করার জন্য ধন্যবাদ
ম্যাথু ফ্ল্যাশেন

3
@ ম্যাথেজ: পিএইচপি সম্পর্কে আমি কিছুই জানি না, তবে ল্যানির জন্য চেষ্টা করে দেখছি, প্রাক্তন অনুমতিপ্রাপ্ত কমান্ড লাইন সংস্করণ ব্যতীত অন্য কোন rlwrap php5এবং বিচার্য কোনও পার্থক্য দেখছি না php5। আপনি প্রবেশ <?php echo 1;?>করালে আউটপুটটি হয় 1তবে তা উভয় ক্ষেত্রেই অবিলম্বে নির্গত হয় না। গুগলিং পরামর্শ দেয় যে php5কেবল কোনও পিএইচপি REPL নয়, পরিবর্তে আপনার পিএইচপিএস-এর মতো কিছু ব্যবহার করা উচিত ।
গিলস

1
আপনি প্রবেশ করো না <?php বা ?>ইন্টারেক্টিভ শেল হবে। আমি সম্মত হই যে পিএইচপি-র একটি সম্পূর্ণ আরপিএল নেই। তবে ওয়ার্কিং রিডলাইন সমর্থন (যেমন ডটদেব প্যাকেজটি আমি সংযুক্ত করেছি) এর সাথে সংকলিত একটি সংস্করণ ব্যবহার করে, আপনি এন্টার টিপানোর সাথে সাথে এটি 1 (বা আসল আউটপুট যাই হোক না কেন) আউটপুট দেবে। আমি সম্মত হচ্ছি যে rlwrap এবং কোনও পাঠ্যরেখার মধ্যে কোনও উল্লেখযোগ্য পার্থক্য নেই (লাইন-সম্পাদনা এবং ইতিহাস ছাড়াও, যা দুর্দান্ত তবে তাত্ক্ষণিক আউটপুট হিসাবে কার্যকর নয়)।
ম্যাথু ফ্ল্যাশেন

@ ম্যাথিউ: আহ, তাই পাঠ্যরেখার সমর্থনটি কেবল পঠন লাইনের সাথে লিঙ্ক করার চেয়ে আরও বেশি কিছু করে, এটিও প্রোগ্রামটির আচরণ পরিবর্তন করে? অদ্ভুত মনে হচ্ছে। তারপরে আপনি উত্স থেকে পুনর্নির্মাণ করতে পারেন, বা ডটদেব প্যাকেজগুলি যদি তারা আপনার পক্ষে কাজ করে তবে তা ব্যবহার করতে পারেন।
গিলস

হ্যাঁ, পিএইচপি-তে অনেক কিছুই অদ্ভুত বলে মনে হয়। ;) তবে এটি দেখতে দেখতে দেখতে পঠন কোডের পথটি এই অঞ্চলে আলাদা, কেবলমাত্র পাঠ্যরেখার সাথে সম্পর্কিত gen
ম্যাথু ফ্ল্যাশেন

3

এটা চেষ্টা কর:

$ php -a
Interactive mode enabled

<?php echo "hi!"; ?>

প্রেস Ctrl-d


5
এটি পিএইচপি ইনস্টল করার সাথে কিছু করার আছে বলে মনে হচ্ছে না
মাইকেল মরোজেক

1
এটি আসলে খুব সহায়ক, যদিও এটি সরাসরি প্রশ্নের উত্তর দেয় না। এটা দেখায় যে -readline পথ, পিএইচপি শুধুমাত্র ভিতরে পিএইচপি কোড executes <?php ?>ব্লক। আমি সে সম্পর্কে অবগত ছিলাম না এবং এটি দেখায় আমি গিলসকে আগে ভুল বুঝেছিলাম।
ম্যাথু ফ্ল্যাশেন

3

উবুন্টু ব্যবহারকারীদের জন্য, পিএইচপি 5-রিডলাইন অতিরিক্ত প্যাকেজ যা আপনাকে ব্যবহারযোগ্য পিএইচপি কমান্ড প্রম্পট ইনস্টল করতে হবে:

sudo apt-get install php5-cli php5-readline
sudo php5enmod readline

আমার উবুন্টু 14.04 এ এটি করতে হয়েছিল।



1

ডেবিয়ান জেসি এবং ডেবিয়ান এসিড ব্যবহার:

sudo apt-get install php5 php5-readline

তারপর

php -a
Interactive mode enabled

php > echo 1+2;
3
php >
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.