सिस्टम अपग्रेड के बाद Apache2 में PHP काम नहीं कर रहा है


14

हाल ही में Karmic से Lucid में मेरे सिस्टम को अपग्रेड किया। इसमें अपाचे और पीएचपी को शामिल किया गया है जो मुझे लगता है कि अपडेट किया जा रहा है।

अब मेरा सर्वर PHP फ़ाइलों को संभालने में असमर्थ है, उनके लिए कोई भी नेविगेशन पार्स करने के बजाय डाउनलोडिंग को ट्रिगर कर रहा है।

PHP मॉड्यूल अभी भी Apache mods-enable में लोड है और AddType application/x-httpd-php .phpमेरे httpd.conf में है।

अपाचे पहुंच या त्रुटि लॉग में कोई सार्थक संदेश नहीं हैं इसलिए मैं स्तब्ध हूं।

किसी भी सहायता की सराहना की जाएगी। धन्यवाद।

जवाबों:


17

/var/log/apache2/error.log अगर पीएचपी को सफलतापूर्वक लोड किया गया तो नीचे की तरह एक लाइन दिखानी चाहिए:

[Tue Aug 30 12:53:36 2011] [नोटिस] Apache / 2.2.14 (Ubuntu) PHP / 5.3.2-1ubuntu4.9 के साथ सुहोसिन-पैच कॉन्फ़िगर - सामान्य ऑपरेशन फिर से शुरू

तिथि पर ध्यान दें, अगर यह 2009 से कुछ है, तो आपने कुछ गलत किया है।

AddType बेकार है, आपको उपयोग करने की आवश्यकता है:

<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>

Apache 2.x के लिए php.net पर इंस्टॉलेशन निर्देश भी देखें ।

आपको मैन्युअल रूप से उस पैकेज को जोड़ने की आवश्यकता नहीं होनी चाहिए, जिसमें पैकेज libapache2-mod-php5स्थापित है /etc/apache2/mods-available/php5.conf:

<IfModule mod_php5.c>
    <FilesMatch "\.ph(p3?|tml)$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>
    # To re-enable php in user directories comment the following lines
    # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
    # prevents .htaccess files from disabling it.
    <IfModule mod_userdir.c>
        <Directory /home/*/public_html>
            php_admin_value engine Off
        </Directory>
    </IfModule>
</IfModule>

चूंकि यह एक शंकुधारी है, इसलिए संभव है कि यह अपग्रेड के साथ स्थापित न हो। उस शुद्ध को ठीक करने के लिए और फिर उसे फिर से स्थापित करें:

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

PHP को सक्षम करने के लिए, आपको दौड़ना होगा:

sudo a2enmod php5

वेबसर्वर को पुनरारंभ करें:

sudo /etc/init.d/apache2 restart

अन्य बातें:

  • में परस्पर विरोधी सेटिंग्स के लिए जाँच करें /etc/apache2
  • क्या आपने अपाचे को स्रोत से बनाया है?
  • sudo apache2ctl configtestसिंटैक्स त्रुटियों के लिए अपने कॉन्फ़िगरेशन की जांच करने के लिए चलाएँ
  • लोड किए गए कॉन्फ़िगरेशन और मॉड्यूल की जांच करने के लिए http: // localhost / server-info खोलें । उसके लिए statusमॉड्यूल लोड किया जाना चाहिए। यदि आप एक दूरस्थ सर्वर चला रहे हैं, तो आपको अपने आप को Allow fromसूची में जोड़ना होगा /etc/apache2/mods-enabled/status.confऔर बाद में सर्वर को पुनरारंभ करना होगा

प्रतिभाशाली। एएफके अभी, लेकिन आज रात इसका परीक्षण करेगा। धन्यवाद।
Jivings

शुद्ध और पुनर्स्थापित किया गया, मॉड्यूल मॉड-सक्षम में लोड किया गया है, लेकिन मैं अभी भी एक ही मुद्दा रहा हूं ... मुझे कुछ भी नहीं मिल रहा है जो विवादित होगा और गोपनीय फ़ाइलों के लिए शामिल करना निश्चित रूप से apache.conf में मौजूद है। क्या तुम्हारे पास कोई और योजनायें हैं? धन्यवाद।
Jivings

@ जीव: कुछ डिबगिंग विचारों को जोड़ा गया
लेकेन्स्टाइन

फिर भी यह पता लगाने में असमर्थ है। हालाँकि मैंने कुछ और भी उत्सुक खोज लिया है। ऐसा लगता है कि PHP एक वर्चुअल होस्ट की स्थापना के लिए ठीक काम कर रहा है, हालांकि यह सब करता है एक documentRoot को परिभाषित करता है / var / www। यह कैसे हो सकता है?!
Jivings

1
आपको अभी भी अपने ब्राउज़र के कैश को फ्लश करना होगा और अपाचे को पुनरारंभ करना होगा।
फ्रांसेस्को

3

खैर कुछ और काम नहीं करने के बाद और अपाचे बहुत भ्रमित हो रहे थे मैंने आखिरकार अपाचे के सभी पैकेजों को शुद्ध किया और उन्हें फिर से स्थापित किया।

लगता है अब ठीक काम कर रहा है, कौन जानता है कि इसके साथ क्या गलत था ...।

संपादित करें

मुझे पता चला कि जब मैं अपनी अपाचे कॉन्फ़िगरेशन सेटिंग्स को फिर से सेट कर रहा था तो क्या गलत था। [यह ब्लॉग प्रविष्टि] [१] इसकी व्याख्या करता है।

यह पता चलता है कि हालांकि यूजरडिर मॉड्यूल सक्रिय रूप से उपयोग में नहीं है, बाकी साइट फाइलें मेरे ~ / public_html फ़ोल्डर में रहती हैं, और php को वहां सब कुछ के लिए अक्षम किया जा रहा था।

मुझे लगता है कि यह हाल ही में php मॉड्यूल के अतिरिक्त रहा होगा जो मेरी कर्म सेटिंग्स में मौजूद नहीं था।


1
यह एक कॉन्फ़िगरेशन समस्या से संबंधित होना चाहिए। उन्नयन पर, में कोई भी फ़ाइलें /etcafaik कॉपी कर रहे हैं (कम से कम, किसी के साथ एक समस्या हुई /etc/init.d/apache2पुनर्स्थापना पर नहीं बनाया जा रहा है, केवल पर्ज पर + स्थापित)
Lekensteyn

अजीब बात है कि यह मेरे सिस्टम के उन्नयन से पहले काम किया ...
Jivings

तब एक सुविधा बदलने की संभावना है। आप पुराने कॉन्फ़िगरेशन सेटिंग्स का सम्मान करने के लिए हर अपग्रेड की उम्मीद नहीं कर सकते। कुछ संशोधन बहुमत के लिए मायने रखते हैं लेकिन कुछ अन्य के लिए नहीं।
लेकेन्स्टाइन

वास्तव में। वैसे भी इसकी तह तक जाने में मेरी मदद करने के लिए धन्यवाद, बहुत सराहना :)
Jivings

1

php5.confमें फ़ाइल /etc/apache2/mods-enabledतल पर कुछ लाइनें है कि एक उपयोगकर्ता निर्देशिका के अंदर क्रियान्वित करने से php रखने के लिए, तो अपने कॉन्फ़िगरेशन के आधार पर है, यह भी आपकी समस्या हो सकती है। आप बस इन पंक्तियों को टिप्पणी कर सकते हैं और apache2 पुनः लोड कर सकते हैं

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