Apache सर्वर पर PHP स्क्रिप्ट निष्पादित नहीं हो रही है


54

मैंने अपाचे और PHP5 को फिर से इंस्टॉल किया है लेकिन जब मैं अपने डॉक रूट पर जाता हूं तो यह सिर्फ एक "डाउनलोड" फाइल डाउनलोड करता है। और जब मैं documentroot /index.php आज़माता हूँ तो यह बस PHP फ़ाइल को डाउनलोड करता है।

मैं PHP स्थापित है, लेकिन अपाचे इसे निष्पादित करना चाहते हैं नहीं लगता है।
लोगों ने सुझाव दिया httpd.confकि मेरे पास एक 'लोड मॉड्यूल' लाइन है, लेकिन मेरे पास वह फ़ाइल नहीं है।

जवाबों:


103

लेखन:

sudo apt-get install apache2 php5 libapache2-mod-php5

आप की जरूरत है सब कुछ स्थापित और PHP के लिए समर्थन के साथ अपाचे सर्वर शुरू कर देंगे।

यह सत्यापित करने के लिए कि php मॉड्यूल लोड है, टाइप करें:

a2query -m php5

यदि सक्षम नहीं है, तो इसके साथ लोड करें:

sudo a2enmod php5

और फिर से शुरू करें:

sudo service apache2 restart

Php7.x के लिए अपडेट (उबंटू 16.04, 16.10, 18.04, 18.10 पर परीक्षण किया गया )

टिप्पणियों के लिए धन्यवाद, मैं php7.x के उत्तर को अपडेट करता हूं।

इंस्टॉल करें I:

sudo apt-get install apache2 php7.x libapache2-mod-php7.x 

सत्यापित करें:

a2query -m php7.x

भार:

sudo a2enmod php7.x

फिर से शुरू करें:

sudo service apache2 restart

a2enmodमॉड-उपलब्ध और मॉड-सक्षम के बीच फ़ाइल को मैन्युअल रूप से कॉपी करने की तुलना में उपयोग करना बेहतर होगा । a2enmodएक सिम्लिंक बनाता है और इसलिए आपके पास कॉन्फ़िगरेशन की केवल एक प्रति होगी।
jkt123

@ jkt123 आप सही कह रहे हैं। सलाह के लिए धन्यवाद, मैं अपना जवाब संपादित करता हूं।
गिर्दांगो

मेरे मामले में, यह कहता है "त्रुटि: मॉड्यूल php5 मौजूद नहीं है!" यह स्थापित है
मैरिएन Klühspies

3
php7 साथ ubuntu 16.04 के लिए मैं क्रम में इन आदेशों को मार डाला है apt-get install libapache2-mod-php, a2query -m php7.0,service apache2 restart
Marlo

Ubuntu 14.04 के लिए: # a2query -m php7.0 php7.0 (साइट व्यवस्थापक द्वारा सक्षम) फिर भी php कोड निष्पादित नहीं हो रहा है
आशीष करपे

19

एक और सामान्य कारण यह है कि php शॉर्ट टैग <?डिफ़ॉल्ट php.ini कॉन्फ़िगरेशन द्वारा सक्षम नहीं हैं, इसलिए अपग्रेड या रीइंस्टॉल होने के बाद, उस सेटिंग को बंद किया जा सकता है और php कोड इस पर निर्भर हो सकता है। के <?साथ बदलने का प्रयास करें <?php

( क्रेडिट )


13

Ubuntu 16.04 PHP 7 में स्थानांतरित हो गया है। यह एकल आदेश आपके लिए काम करेगा:

sudo apt-get install apache2 php libapache2-mod-php

यहाँ libapache2-mod-phpएक मेटा-पैकेज है जो libapache2-mod-php7 स्थापित करता है।


2

ओपन php.iniके साथ nanoटर्मिनल में:

sudo nano /etc/php/php5.6/apache2/php.ini

फिर बदलें:

short_open_tag = Off

सेवा

short_open_tag = On

फिर सहेजें और फिर अपाचे 2 को पुनः आरंभ करें:

sudo systemctl restart apache2

1
या PHP स्क्रिप्ट्स को ठीक करें :-)This directive determines whether or not PHP will recognize code between <? and ?> tags as PHP source which should be processed as such. It is generally recommended that <?php and ?> should be used and that this feature should be disabled [...]
निकोलस राउल

1

मैं उसी समस्या में भाग गया, लेकिन मेरी विशेष समस्या अद्वितीय थी। मैं एक उपयोगकर्ता निर्देशिका (mod_userdir का उपयोग करके) में चल रहा था - जिसका अर्थ है कि आप http://host.name.com/~username/example.php के साथ मेरे वेबपेज तक पहुँच सकते हैं

यह डिफ़ॉल्ट रूप से php * .conf में मेरे मॉड-सक्षम निर्देशिका में अक्षम है। मुझे इसे टिप्पणी करने के लिए संशोधित करना पड़ा:

#<IfModule mod_userdir.c>
#    <Directory /home/*/public_html>
#        php_admin_flag engine Off
#    </Directory>
#</IfModule>

यह पता लगाने के लिए एक दर्द था ..

ठीक है, मुझे संदेह है कि किसी को भी विशेष समस्या थी, लेकिन मुझे लगा कि मैं इसे जोड़ दूंगा क्योंकि यह मेरे लिए संकट के रूप में था और किसी को एक ही काम कर रहा है। मेरे अलावा कोई भी ~ / उपयोगकर्ता का उपयोग नहीं करता है, मुझे छोड़कर।

आपको इस कोर्स के बाद अपाचे को पुनरारंभ करना होगा।


0

मेरा मामला थोड़ा अलग था। मैंने Ubuntu 19.04 से 19.10 तक अपग्रेड किया। जबकि उन्नति ने इसे php 7.3 (जहाँ php 7.2 पहले से स्थापित था) स्थापित किया। 2 संस्करण इंस्टॉल होने के बाद a2query -m php7.3 वापसी नहीं मॉड्यूल php7.3 से मेल खाता है

मैंने जो समाधान पाया, वह कैसे-से-पीएचपी-7-3-ऑन-उबंटू से था

PHP 7.0 को डिफ़ॉल्ट के रूप में सेट करने के लिए, चलाएँ

update-alternatives --set php /usr/bin/php7.0

PHP 7.2 को डिफ़ॉल्ट के रूप में सेट करने के लिए, चलाएँ

update-alternatives --set php /usr/bin/php7.2

PHP 7.3 को डिफ़ॉल्ट के रूप में सेट करने के लिए, चलाएं

update-alternatives --set php /usr/bin/php7.3

PHP 7.3 का उपयोग करने के लिए Apache को कॉन्फ़िगर करने से पहले, हमें टाइप करके PHP 7.0 के पुराने संस्करण को अक्षम करना होगा

a2dismod php7.2

अब निम्नलिखित कमांड के साथ नव स्थापित PHP 7.3 संस्करण को सक्षम करें:

a2enmod php7.3

परिवर्तनों को प्रभावी करने के लिए Apache वेब सर्वर को पुनरारंभ करें:

sudo systemctl restart apache2
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.