16.04 এ আপগ্রেড করুন। পিএইচপি 7 ব্রাউজারে কাজ করছে না


69

আমি সবেমাত্র 14.10 থেকে 16.04 এ আপগ্রেড করেছি এবং কীভাবে পিএইচপি 7 কে অ্যাপাচে কনফিগার করব তা নিশ্চিত নই। আমি php7.0.conf ফাইলটি সংশোধন করেছিলাম যে শেষ লাইনগুলি, অ্যাপাচি 2 পুনরায় চালু করেছি এবং কোনও পরিবর্তন নেই।

পিএইচপি অনুমতি দেওয়ার জন্য আমার কি অ্যাপাচি 2 সেটআপ পরিবর্তন করতে হবে?

পিএইচপি কমান্ড লাইন থেকে কাজ করে তাই আমি নিশ্চিত যে পিএইচপি সঠিকভাবে ইনস্টল করা আছে।

অতিরিক্তভাবে, আমি এমপিস্ট্রিং অনুপস্থিত রয়েছে তা বলে phpadmin এ একটি ত্রুটি পেয়েছি।


1
ওয়ার্কিং সিএলআই এসপিআই ( phpকমান্ড) অন্যান্য পিএইচপি এসপিআই (অ্যাপাচি 2, এফপিএম, সিজিআই, ...) এর কাছে অরথগোনাল, তাই ওয়ার্কিং কমান্ড লাইন পিএইচপি এইচটিটিপি সার্ভারে পিএইচপি ওয়ার্কিং সম্পর্কে কিছু বলে না।
oerdnj

2
এমবিস্ট্রিংয়ের জন্য নিখোঁজ হোন: sudo apt-get install php-mbstring(কে ভাবেন, ঠিক আছে?)
ওড়ডনজ

"পিএইচপি 7 ব্রাউজারে কাজ করছে না" এর অর্থ কী? আপনি কি আপাচি শুরু করছেন না এমন কথা বলছেন? পিএইচপি কোনও ক্লায়েন্টের পাশের ভাষা নয়।
Andrea Lazzarotto

এই সমস্ত উত্তরগুলি দেখতে এমপিএম-প্রেফের্ক এবং মোড-পিএইচপি সক্ষম করার জন্য ব্যবহারকারীদের নির্দেশনা দেওয়া সত্যিই হতাশাগ্রস্থ করছে। এটি পিছনে একটি বিশাল পদক্ষেপ।
অ্যান্ড্রু এনসলে

উত্তর:


81

ঠিক আগের মতো, আপনাকে আপাচে পিএইচপি ইনস্টল করতে হবে।

থেকে সার্ভার গাইড :

sudo apt install php libapache2-mod-php

এই কমান্ডটি পিএইচপি এবং অ্যাপাচি 2 পিএইচপি মডিউল ইনস্টল করবে। কেবল আগের মতো অ্যাপাচি কনফিগার করুন ( sudo a2enmod php7.0, আমি মনে করি, মডিউলটি চালু হবে)।


আপনার mbstringসমস্যাটি একইরকম - আপনাকে এই এক্সটেনশনটি ইনস্টল করতে হবে:

sudo apt install php7.0-mbstring

অন্যান্য অনুপস্থিত মডিউলগুলির জন্য একই জিনিস ইনস্টল করতে হবে।


পিএইচপি মডিউলটি ইনস্টলেশন করার পরে ডিফল্টরূপে সক্ষম করা উচিত। যদি তা না হয় তবে তা পূর্ণ হতে হবে sudo a2enmod php7.0(বা তাই আমি আমার কম্পিউটারে অক্ষম করে এবং পুনরায় সক্ষমের মাধ্যমে দৃ determined় সংকল্পবদ্ধ হয়েছি)) আকর্ষণীয়, আমি এই বার্তাটি পেয়েছি:Considering conflict php5 for php7.0: Enabling module php7.0.
ডগ স্মিথিজ

@DougSmythies আমি আপনি পড়েন নি আমি কোথায় বলেছে তুমি মডিউল ... সক্ষম আছে অনুমান
টমাস ওয়ার্ড

1
হ্যাঁ, আমি করেছি, এজন্য আমি মন্তব্যটি করেছি। sudo a2enmod phpকাজ করবে না, আমি চেষ্টা করেছিলাম। তবে sudo a2enmod php7.0কাজ করবে।
ডগ স্মিথিজ

1
এটি সঠিক উত্তর হিসাবে চিহ্নিত করা উচিত। উবুন্টু 16.04 টাটকা ইনস্টল ডিফল্টরূপে এই অ্যাপাচি 2 মডিউলটি অন্তর্ভুক্ত করে না।
সেলোসিন্ডিস

@ সেলোসিন্ডিস সম্পূর্ণরূপে সম্মত! এখনও বিরক্তিকর হলেও, ওবুন্টু 16.04 এর সাথে পুরানো সংস্করণের তুলনায় মানক ইনস্টলেশন প্রক্রিয়াটি পরিবর্তিত হয়েছে।
সক্রেটিস

40

আপনার সার্ভারের সাথে চলতে পিএইচপি 7 কনফিগার করতে আপনার কিছু কনফিগারেশন করতে হবে:

1. আপনি যে কোনও চিহ্ন খুঁজে পেয়েছেন তা নিশ্চিত করুন php/php5

একটি টার্মিনাল খুলুন Ctrl+ Alt+ Tএবং:

cd /etc/apache2/mods-enabled
ls -la

আউটপুটটিতে কোনও বা থাকা উচিত নয় , তবে যদি তা হয় তবে নিম্নলিখিতটি করুন:php5.confphp5.load

# this is the proper way of disabling modules
sudo a2dismod php5

# run this only if the above command didn't remove the php5 sym-links
sudo rm php5.load
sudo rm php5.conf

এখন এর পরিবর্তে php7.0.confএবং যুক্ত php7.0.loadকরুন:

# this is the proper way of enabling modules
sudo a2enmod php7.0

# run this only if the above command didn't create the php7.0 sym-links
sudo ln -s php7.0.conf ../mods-available/php7.0.conf
sudo ln -s php7.0.load ../mods-available/php7.0.load

এর আউটপুটটি ls -la php*দেখতে এইরকম হওয়া উচিত:

lrwxrwxrwx 1 root root 29 Apr 15 03:55 php7.0.conf -> ../mods-available/php7.0.conf
lrwxrwxrwx 1 root root 29 Apr 15 03:55 php7.0.load -> ../mods-available/php7.0.load

মডিউলগুলি নিয়ে কাজ করার পরে আমরা এখন /etc/apache2/conf-enabledডিরেক্টরিতে চলে আসি । পাশাপাশি এখানে পিএইচপি / পিএইচপি 5 এর কোনও চিহ্ন সরিয়ে ফেলুনsudo rm <name>

তারপরে, প্রয়োজনে করুন:

# the proper way of enabling configs
sudo a2enconf php7.0-cgi
sudo a2enconf php7.0-fpm

# do those commands only if the above didn't work out
sudo ln -s php7.0-cgi.conf ../conf-available/php7.0-cgi.conf
sudo ln -s php7.0-fpm.conf ../conf-available/php7.0-fpm.conf

এর আউটপুটটি ls -la php*দেখতে এইরকম হওয়া উচিত:

lrwxrwxrwx 1 root root 33 Apr 21 17:00 php7.0-cgi.conf -> ../conf-available/php7.0-cgi.conf
lrwxrwxrwx 1 root root 33 Apr 21 17:01 php7.0-fpm.conf -> ../conf-available/php7.0-fpm.conf

2. অ্যাপাচি 2 পুনরায় চালু করা হচ্ছে

অ্যাপাচি পুনর্সূচনা করার আগে অ্যাপাচি পরিষ্কার করার বিষয়ে নিশ্চিত হয়ে নিন এবং error.logপুনরায় চালু করুন:

sudo su
> /var/log/apache2/error.log
exit
sudo service apache2 restart

এখন error.logজারি করে পরীক্ষা করুন cat /var/log/apache2/error.log | less(কম মাধ্যমে পাইপিং আপনাকে সহজ এবং উপরে স্ক্রোল করতে সক্ষম করে, qআউটপুট থেকে প্রস্থান করে)।

যদি আপনার error.logঅনেকগুলি অন্তর্ভুক্ত থাকে (এবং আমি আক্ষরিক অর্থেই এর অর্থ হ'ল ) কিছু করে MIBS not foundথাকে:

sudo apt install libsnmp-dev
sudo net-snmp-config --snmpconfpath
sudo apt-get install snmp snmp-mibs-downloader
sudo su
> /var/log/apache2/error.log
exit
sudo service apache2 restart

error.logএটিতে এখন আবার চেক কেবলমাত্র 3 টি লাইন থাকা উচিত:

[Sat Apr 23 01:39:07.504005 2016] [mpm_prefork:notice] [pid 1647] AH00169: caught SIGTERM, shutting down
[Sat Apr 23 01:39:08.685774 2016] [mpm_prefork:notice] [pid 9590] AH00163: Apache/2.4.18 (Ubuntu) mod_perl/2.0.9 Perl/v5.22.1 configured -- resuming normal operations
[Sat Apr 23 01:39:08.685938 2016] [core:notice] [pid 9590] AH00094: Command line: '/usr/sbin/apache2'

Php7.0 সহ আপনার অ্যাপাচি এখন সঠিকভাবে কনফিগার করা উচিত।


2
/ (একইভাবে এবং এর জন্য ) লিঙ্কগুলির সাথে ম্যানুয়ালি টিঙ্কিংয়ের পরিবর্তে a2enmodএবং a2dismodকমান্ডগুলি ব্যবহার করুন । mods-availablemods-enableda2enconfa2disconfconf-{available,enabled}
মুড়ু

1
আপনার ইনপুট অনুযায়ী আমার উত্তর সংশোধিত।
ভিডিওনাথ

লিঙ্ক পরিবর্তন ঘটানোর যেমন ক্ষতিকর a2enmodএবং a2dismodঅভ্যন্তরীণ apache2 প্যাকেজ রেজিস্ট্রি মধ্যে মডিউল রাজ্যের মনে রাখবেন, তাই / উপার্জন সরানোর সংযোগগুলি নিজে আপনার সিস্টেম ভবিষ্যতে আপগ্রেড করার জন্য ভাঙ্গা আপগ্রেড স্ক্রিপ্ট এই অভ্যন্তরীণ ডাটাবেসের রাজ্যের এ দেখায় যেমন করা হতে পারে।
oerdnj

@ ওয়ারডনজ: অমলেট তৈরি করলে ডিম ভেঙে যেতে পারে ... ;-)
ফ্যাবি

1
@ ডেভিড রাইট - সম্ভবত আপনি ব্যবহারকারীর ডিরেক্টরি থেকে পিএইচপি স্ক্রিপ্ট চালানোর চেষ্টা করছেন - এগুলি ডিফল্টরূপে অক্ষম। যদি তাই হয় আপনার php7.0.conf খুলতে হবে এবং শেষ অংশটি মন্তব্য করতে হবে। আরও এখানে devplant.net/2010/05/04/…
xcxc

12

আমি এই সমস্যাটিও পেয়েছি।

এটি আমাকে সমস্ত পিএইচপি মুছতে এবং পিএইচপি 7 পুনরায় ইনস্টল করতে সহায়তা করেছিল।

যা দরকার ছিল তা হ'ল:

sudo apt-get purge php*

পিএইচপি 7 মুছে ফেলা হবে, পরে কেবল পুনরায় ইনস্টল করতে:

sudo apt-get install php7.0-mysql php7.0-curl php7.0-json php7.0-cgi  php7.0 libapache2-mod-php7.0

1
আমি এর আগেও বেশ কয়েকটি জিনিস চেষ্টা করেছি এবং এই পদ্ধতিটি আমার পক্ষে কাজ করে। ধন্যবাদ!!!
শ্রীকান্ত পোনাপল্লি

1
ঈশ্বর. তুমি আমাকে বাঁচালে.
plhn

এটিই আমার জন্য কাজ করা একমাত্র সমাধান। চিয়ার্স!
জিভি

এটি আমাকে সাহায্য করেছিল, কারণ উবুন্টু আপগ্রেড হওয়ার পরেও আমি পিএইচপি 7.0-সিজি-র সন্ধান করতে পারিনি conf তবে মনে রাখবেন যে sudo apt-get purge php*আপনার করা থাকলে আপনার পিএইচপিএমওয়াই অ্যাডমিনকেও সরিয়ে ফেলা হবে।
আর্টুর সিজিউইস্কি

8

আমি আমার কেস শুধুমাত্র পিএইচপি কাজ করছিলাম না কিন্তু phpmyadmin পাশাপাশি আমি ধাপে ধাপে এটি ছিল

sudo apt install php libapache2-mod-php
sudo apt install php7.0-mbstring
sudo a2dismod mpm_event
sudo a2enmod mpm_prefork
service apache2 restart

এবং তারপরে:

gksu gedit /etc/apache2/apache2.conf

শেষ লাইনে আমি অ্যাড করি Include /etc/phpmyadmin/apache.conf

যা সমস্ত সমস্যার মোকাবিলা করে


7

এই সমস্যার জন্য আমি যে সমাধানটি পেয়েছি তা হ'ল সংক্ষিপ্ত_পেন_ট্যাগের জন্য ডিফল্ট PHP.INI সেটিং। ডিফল্টরূপে এটি 'অফ' এ সেট করা আছে। আমার পিএইচপি কোড দিয়ে শুরু হয়েছিল

   <?

পরিবর্তে

   <?php

শর্ট_পেন_ট্যাগ সক্ষম করা থাকলে (আমার php.ini- এ 'অফ' পরিবর্তন করে) এবং অ্যাপাচি সার্ভারটি পুনরায় সেট করুন ( sudo service apache2 restart) এবং পিএইচপি পপপড জীবিত।


OMMFG! অবশ্যই এটি শেষ মুহূর্তে আমার জন্য কাজ করেছে যে upvotes সঙ্গে শেষ মন্তব্য হবে! আপনাকে অনেক ধন্যবাদ এমএফ, প্যাট্রিক !!!
হাইপারজিও মেট্রিক

0

https://wiki.archlinux.org/index.php/Apache_HTTP_Server

sudo a2dismod mpm_event
sudo a2enmod mpm_prefork
service apache2 restart

দ্রষ্টব্য: উপরেরটি প্রয়োজনীয়, কারণ libphp7.soএতে অন্তর্ভুক্ত থাকা php-apacheকাজ করে না mod_mpm_event, তবে কেবল mod_mpm_prefork পরিবর্তে কাজ করবে । ( এফএস # 39218 )

অন্যথায় আপনি নিম্নলিখিত ত্রুটি পাবেন:

Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe.  You need to recompile PHP.
AH00013: Pre-configuration failed
httpd.service: control process exited, code=exited status=1

বিকল্প হিসাবে, আপনি ব্যবহার করতে পারেন mod_proxy_fcgi( নীচে পিএইচপি-এফপিএম এবং Mod_proxy_fcgi ব্যবহার করে দেখুন )।


0

আমিও উবুন্টু ১.0.০৪-তে কমান্ড লাইন থেকে পিএইচপি স্ক্রিপ্টগুলি সফলভাবে চালাতে পারি, তবে কোনও ব্রাউজারে নয়। সমস্যার সমাধানের প্রয়াসে আমি আমার বিদ্যমান পিপিপি 7.0 এবং এপাচি 2 এর অনুলিপিগুলি পরিষ্কার করেছিলাম। এরপরে আমি কমান্ড লাইন এবং এপাচি 2 এর পিএইচপি লাইব্রেরি সহ উভয়ই পুনরায় ইনস্টল করেছি। হতাশার পরে যখন আমি "a2enmod php7.0" চালানোর চেষ্টা করলাম, যা আমাকে জানিয়েছিল যে আমি আবারও কমান্ড লাইন থেকে পিএইচপি স্ক্রিপ্ট চালাতে সক্ষম হয়েছি তবুও পিএইচপি 7.0 মডিউলটি উপস্থিত ছিল না। প্রবৃত্তিটি লাথি মেরেছিল। সিনাপটিকটি খুলতে গিয়ে আমি আবিষ্কার করেছি যে আমি যখন কমান্ড লাইন থেকে অ্যাপাচি 2 পিএইচপি লাইব্রেরি ইনস্টল করেছি, তখন আমি কেবল লিবাপ্যাচ 2-মোড-পিএইচপি 7.0 ইনস্টল করেছি এবং "র‌্যাপার," লিবাপ্যাচ 2-মোড- ইনস্টল করতেও ভুলে গিয়েছিলাম- পিএইচপি, যা ছাড়া প্রাক্তন কাজ করবে না।


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