PHP कोड को निष्पादित नहीं किया जा रहा है, इसके बजाय पृष्ठ पर कोड दिखाता है


319

मैं एक परियोजना पर कुछ PHP कोड निष्पादित करने की कोशिश कर रहा हूँ (Dreamweaver का उपयोग करके), लेकिन कोड नहीं चलाया जा रहा है।

जब मैं स्रोत कोड की जांच करता हूं, तो PHP कोड HTML टैग के रूप में दिखाई देता है (मैं इसे स्रोत कोड में देख सकता हूं)। Apache ठीक से चल रही है (मैं XAMPP के साथ काम कर रहा हूँ), PHP पेज ठीक से खोले जा रहे हैं लेकिन PHP कोड निष्पादित नहीं किया जा रहा है।

क्या किसी के पास कोई सुझाव है कि क्या हो रहा है?

नोट: फ़ाइल पहले से ही नाम के रूप में हैfilename.php

संपादित करें: कोड ..:

<?
include_once("/code/configs.php");
?>

छाप


44
क्या आप <?इसके बजाय लघु टैग का उपयोग कर रहे हैं <?php?
दान ग्रॉसमैन

28
कभी भी छोटे टैग का उपयोग न करें। ( <?)। वे वंचित हैं, वास्तव में बहुत सारी जगहों पर काम नहीं करते हैं, और अन्यथा पूरी तरह से अकारण हैं। तीन कीस्ट्रोक्स को सहेजना एक मान्य कारण नहीं है जो आपके कोड को संभावित रूप से आधे सर्वर पर विफल होने की अनुमति दे सकता है।
mopsyd

10
@mopsyd यह कहां कहता है कि संक्षिप्त टैग हटाए गए हैं? कृपया ध्यान दें कि लघु टैग लघु इको टैग के समान नहीं हैं , और लघु इको टैग्स को PHP 5.4 के बाद से डिफ़ॉल्ट रूप से समर्थित किया गया है, भले ही short_open_tagसेटिंग की परवाह किए बिना ।
काइल एंडरसन

5
मुझे पता है कि लघु टैग लघु प्रतिध्वनी टैग नहीं हैं, यही कारण है कि मैंने निर्दिष्ट किया जो मैं टिप्पणी के बारे में बात कर रहा था। लेखन के समय, लघु टैग php 6 रिलीज के लिए पदावनति के लिए चिह्नित किए गए थे, हालांकि यह स्पष्ट रूप से बदल गया है। समस्या अभी भी मौजूद है कि बहुत सारे सर्वरों ने उन्हें अक्षम कर दिया है, जो आपके कोड को काफी कम पोर्टेबल बनाता है। यह लघु इको टैग ( <?=) पर लागू नहीं होता है , जिसे सर्वर सेटिंग्स की परवाह किए बिना php 5.4+ पर ठीक चलना चाहिए।
mopsyd

3
छोटे टैग के बारे में मूर्खतापूर्ण बात करें। लंबे टैग चूसना और वे बदसूरत हैं। 10 साल की php प्रोग्रामिंग में मुझे कभी कोई समस्या नहीं हुई। वे लगभग कभी समस्या नहीं हैं
डेनियल

जवाबों:


417

ऐसा लगता है कि आपके कॉन्फ़िगरेशन में कुछ गड़बड़ है, यहां कुछ चीजें हैं जिन्हें आप जांच सकते हैं:

  1. सुनिश्चित करें कि PHP स्थापित है और सही ढंग से चल रहा है। यह मूर्खतापूर्ण लग सकता है, लेकिन आप कभी नहीं जानते। चेक करने का एक आसान तरीका php -vकमांड लाइन से चलना है और देखना है कि संस्करण की जानकारी या कोई त्रुटि है या नहीं।

  2. सुनिश्चित करें कि पीएचपी मॉड्यूल आपके अपाचे httpd.conf के अंदर सूचीबद्ध और असूचीबद्ध है। यह LoadModule php5_module "c:/php/php5apache2_2.dll"फ़ाइल में कुछ इस तरह होना चाहिए । खोज करें LoadModule php, और सुनिश्चित करें कि इसके ;सामने कोई टिप्पणी ( ) नहीं है।

  3. सुनिश्चित करें कि Apache की httpd.conf फ़ाइल में PHP MIME प्रकार है। यह कुछ इस तरह होना चाहिए AddType application/x-httpd-php .php। यह अपाचे को .phpPHP के रूप में फाइल चलाने के लिए कहता है । AddType के लिए खोजें, और फिर सुनिश्चित करें कि PHP के लिए एक प्रविष्टि है, और यह कि यह अनियोजित है

  4. सुनिश्चित करें कि आपकी फ़ाइल में इस .phpपर विस्तार है, या जो भी बिंदु # 3 में MIME परिभाषा में निर्दिष्ट है, अन्यथा इसे PHP के रूप में निष्पादित नहीं किया जाएगा।

  5. सुनिश्चित करें कि आप PHP फ़ाइल ( ) में लघु टैग का उपयोग नहीं कर रहे हैं <?, ये डिफ़ॉल्ट रूप से सभी सर्वरों पर सक्षम नहीं हैं और उनका उपयोग हतोत्साहित किया जाता है। का प्रयोग करें <?phpबजाय (या अपने php.ini में कम टैग को सक्षम के साथ short_open_tag=Onअगर आप कोड है कि उन्हें पर निर्भर करता है है)।

  6. सुनिश्चित करें कि आप अपने वेबसर्वर पर अपनी फ़ाइल का उपयोग कर रहे हैं जैसे URL का उपयोग करके http://localhost/file.phpस्थानीय फ़ाइल एक्सेस के माध्यम से नहींfile://localhost/www/file.php

और अंत में आगे की स्थापना के सुझावों के लिए PHP मैनुअल की जांच करें ।


14
पता नहीं क्यों, लेकिन PHP 5.3.15 का इंस्टॉलर लाइन नहीं जोड़ता है AddType application/x-httpd-php .php। बहुत बहुत धन्यवाद!!
मट्टुड्यूक

7
@ शमीप: आपने कहाँ देखा है कि लघु टैग को हटा दिया गया है? मैंने कुछ खोज की है और केवल उनके खिलाफ सिफारिशें पा सकता हूं, पदावनति के बारे में कुछ नहीं। उन अनुप्रयोगों के लिए जिन्हें यह वितरित किया जाना है, का उपयोग करना बेहतर है <? Php अगर होस्टिंग सर्वर ने उन्हें सक्षम नहीं किया है, लेकिन उन ऐप्स के लिए जहां आपके पास सर्वर पर पूर्ण नियंत्रण है, वे मेरे पास नहीं हैं उन्हें इस्तेमाल न करने का कोई कारण देखें।
क्लार्कबेयॉय

3
बिंदु संख्या 6 ने मेरे लिए काम किया .. स्थानीय पहुंच एपाचे सर्वर का उपयोग नहीं करता है
KawaiKx

6
बिंदु 2 ने मेरे लिए सुरक्षित तरीका -apt-get purge apache2; apt-get install apache2 libapache-mod-php5
ulkas

1
@full_prog_full .phpसामग्री के साथ एक एक्सटेंशन के साथ एक फ़ाइल अपलोड करने का प्रयास करें <?php echo("Success"); ?>और देखें कि क्या वेब ब्राउज़र के माध्यम से फ़ाइल तक पहुँचने के परिणामस्वरूप "सफलता" संबंधित PHP कोड के बिना प्रदर्शित हो रही है।
shmeeps

61

php7:

sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php7.0-fpm
sudo service apache2 restart

24
हालांकि यह कोड स्निपेट प्रश्न को हल कर सकता है, जिसमें यह भी बताया गया है कि यह समस्या कैसे और क्यों हल करती है वास्तव में आपके पोस्ट की गुणवत्ता को बेहतर बनाने में मदद करेगी । याद रखें कि आप भविष्य में पाठकों के लिए सवाल का जवाब दे रहे हैं, न कि केवल उस व्यक्ति से जो अब पूछ रहा है! कृपया स्पष्टीकरण जोड़ने के लिए अपने उत्तर को संपादित करें, और इस बात का संकेत दें कि क्या सीमाएँ और मान्यताएँ लागू होती हैं।
टोबे स्पीट

4
यह उत्तर लाइनक्स से संबंधित विषय है जो स्पष्ट रूप से विंडोज़ का उपयोग कर रहा है।
रेमंड निजलैंड

3
@RaymondNijland सच है लेकिन यह विहित है और मुझे यह सवाल मिला और इसने एक घंटे से अधिक तकलीफ के बाद मुझे बचा लिया।
हंस

कैसे और क्यों: यह तब होता है जब PHP7 मेक स्क्रिप्ट में डिफ़ॉल्ट फास्ट-सीजीआई सेवा को कॉन्फ़िगर नहीं करता है। इसी तरह sudo a2enmod proxy_fcgi setenvifतीन नए मॉड तैयार करता है /mods-available/proxy.conf proxy_fcgi.load proxy.load, sudo a2enconf php7.0-fpmएक कॉन्फिग फाइल बनाता है एक /conf-available/php7.0-fpm.confबार जब यह हो जाता है और Apache2 तब PHP7 मॉड्यूल को फास्ट-सीजीआई सेवा के रूप में चला सकता है।
तलवी वाटिया

33

मैं अपाचे पर अपाचे चला रहा हूं और मेरा मुद्दा यह था कि यह /etc/apache2/mods-available/php5.confफाइल गायब थी:

<FilesMatch ".+\.ph(p[345]?|t|tml)$">
    SetHandler application/x-httpd-php
</FilesMatch>

मैंने इसे वापस जोड़ा और php सही ढंग से php फ़ाइलों को पार्स कर रहा था।


31

php 7 उपयोगकर्ताओं के लिए ध्यान दें, इसे अपनी httpd.conf फ़ाइल में जोड़ें:

# PHP 7 specific configuration
<IfModule php7_module>
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
    <IfModule dir_module>
        DirectoryIndex index.html index.php
    </IfModule>
</IfModule>

4
बस इस मुद्दे के साथ अन्य लोगों की मदद करने के लिए। httpd.confफ़ाइल में स्थित है /etc/apache2/httpd.confआप उबंटू का उपयोग कर रहे हैं, तो यह होगा apache2.confएक ही निर्देशिका में है कि जरूरतों को PHP7 के लिए संशोधित किया जाना है।
अहमद सागरवाला

23

मुझे इस समस्या के कारण एक और समस्या मिली और इसे पहले ही हल कर दिया गया। मैंने गलती से UTF-16एन्कोडिंग में अपनी स्क्रिप्ट को बचाया । ऐसा लगता है कि PHP5 <?phpडिफ़ॉल्ट रूप से 16 बिट एन्कोडिंग में टैग को पहचान नहीं सकता है ।


18

मैं इस जवाब को पोस्ट कर रहा हूं क्योंकि मेरे वर्चुअमिन / वेबमिन एडमिन इंटरफेस ने फैसला किया कि यह मेरे PHP इंजन को निष्क्रिय करने का एक अच्छा विचार था .. मुझे समाधान खोजने में थोड़ा समय लगा, इसलिए मैंने सोचा कि मैं इसे आप लोगों के साथ साझा करूंगा:

यह भी सुनिश्चित कर लें कि आपकी वेबसाइट में से कोई भी इस विशिष्ट होस्ट या वर्चुअलहॉस्ट से संबंधित फ़ाइलों को कॉन्फ़िगर नहीं करता है, उनके पास कोई भी php_admin_value है जो PHP को बंद करता है, जैसे:

php_admin_value engine Off

जब संदेह हो, तो टिप्पणी करें ...

# php_admin_value engine Off

और अपने वेबसर्वर को पुनः आरंभ करें।


1
ये कॉन्‍फ़‍िगरेशन सेटिंग कहां हैं?
क्रोनोकली

2
@ cronoklee httpd.conf की vHost सेटिंग्स में। मौजूदा मेजबानों के लिए, आपको वेबिन में अपाचे कॉन्फिगर को एडिट करना होगा। भविष्य के मेजबानों के लिए, virtualmin> सर्वर टेम्पलेट> अपाचे वेबसाइट पर जाएं। किसी भी तरह, यह व्रत के रूप में सुरक्षित नहीं है - वर्चुअलमिन का डिफ़ॉल्ट। तो सही तरीका यह समझना चाहिए कि एफसीआई काम क्यों नहीं करता है, उदाहरण के लिए, यह फ़ाइल अनुमतियों के कारण हो सकता है।
भेड़

आप अपाचे के एक संस्करण उपयोग कर रहे हैं httpd.conf नहीं है, देखने में /etc/apache2/mods-enabled/php7.confयाphp5.conf
सैम Malayek

जब एक निश्चित कॉन्फ़िगरेशन सेटिंग के स्थान के बारे में संदेह है, तो आप हमेशा इस बात का पता लगाने के लिए grep का उपयोग कर सकते हैं कि आप इस मामले में क्या देख रहे हैं (उदाहरण के लिए) टाइपिंग:sudo grep php_admin_value /etc/* -R
हेनरी वैन मेगन

16

आप बस अपनी php फ़ाइल को ब्राउज़र में खोल रहे हैं। आपको इसे लोकलहोस्ट url का उपयोग करके खोलना होगा। यदि आप अपनी निर्देशिका से सीधे एक फ़ाइल खोलते हैं तो यह किसी भी स्थिति में php कोड को निष्पादित नहीं करेगा।

उपयोग: http://locahost/index.phpयाhttp:127.0.0.1/index.php

Php शॉर्ट कोड इनेबल करें। आपके मामले में, आप उपयोग कर रहे हैं <?जिसके लिए php शॉर्ट कोड है <?php। डिफ़ॉल्ट रूप से php छोटे कोड अक्षम होते हैं।

यह भी उपयोग करें: sudo apt-get install php5 libapache2-mod-php5 php5-mcryptयदि आप एक ubuntu उपयोगकर्ता हैं।


1
जब मैं सिर्फ एक फ़ाइल सहित हूँ, तो mcrypt की आवश्यकता क्यों है? आपने ध्यान दिया कि यह प्रश्न पुराना है और लघु टैग मुद्दे का 16 बार उल्लेख किया गया था, मेरे प्रश्न के शीर्ष टिप्पणी में भी।
गुई

1
मैं सिर्फ अपना समाधान साझा करता हूं, मैं भी उसी त्रुटि का सामना कर रहा था और mcrypt की इस कमांड को निष्पादित करने के बाद मेरी समस्या हल हो गई। आप भी कोशिश कर सकते हैं।
हसन बेग

डिफ़ॉल्ट रूप से php लघु कोड सक्षम होते हैं। short_open_tag = पर (डिफ़ॉल्ट मान = ON) php में 5.6
zond

यह मेरी समस्या थी, मेरा वर्चुअमिन / अपाचे कॉन्फ़िगरेशन 127.0.0.2 के लिए था, लेकिन मैं अपने बाहरी आईपी पते को ब्राउज़र में डाल रहा था, मैंने अभी अपना v / एक कॉन्फिगरेशन अपडेट किया और अब इसका काम कर रहा है
हेडन थ्रिंग

मुझे बस libapache2-mod-php7.3 की याद आ रही थी।
dxvargas

8

मुझे पता है कि यह मूर्खतापूर्ण लगना चाहिए ... लेकिन शायद ही कभी ऐसा होता है।

जांचें कि क्या आप php को निष्पादित करने का प्रयास कर रहे हैं

**http://localhost/info.php**

और से नहीं

file:///var/www/info.php

ps> आप देख सकते हैं कि यदि आप शेल से लिखते हैं

php info.php 

यह कोड के साथ उत्तर देता है (इसका अर्थ है php फ़ंक्शन) ।।


PHP ठीक काम करती है (कमांड लाइन का उपयोग करके जाँच की जाती है)। लेकिन, जब मैं URL का उपयोग करके फ़ाइल का उपयोग करता हूं, तो यह PHP कोड दिखाता है।
मुअज़

8

यह बस फिर से मेरे साथ हुआ, सर्वर के साथ HTML फ़ाइलों को डाउनलोड करने के बजाय, प्रसंस्करण के बजाय। मैंने कंप्यूटर पर कुछ समय के लिए वेबसर्वर अपाचे का उपयोग नहीं किया था और इस बीच मूल रूप से स्थापित एलटीएस से दो और संस्करणों की तरह उबंटू अपडेट किया गया। अब यह है

$ cat /etc/issue
Ubuntu 16.04 LTS

इसलिए php ने इस तरह काम किया:

$ sudo apt-get install lamp-server^
$ sudo a2enmod php7.0
$ sudo service apache2 restart 

वेबसर्वर अब php को पार्स कर रहा था। शायद अब php7.0 के बाद से कुछ जाले अद्यतन करने के लिए मिल रहा है जहाँ php5 चलाने से पहले चल रहा था। ओह अच्छा।


5

मैंने XAMPP को अनइंस्टॉल करके और WAMP इंस्टॉल करके इसे हल किया है। सहायता के लिए धन्यवाद।


मैं xampp हूँ, लेकिन यह ठीक काम करता है। क्या आपको पता चला कि यह php कोड @Gui
पाई

5

मुझे इस मुद्दे पर php 7.1 का सामना करना पड़ा जो उच्च सिएरा (OS X 10.13.5) के साथ आता है, /etc/apache2/httpd.confनिम्नलिखित परिवर्तनों के साथ संपादन में मदद मिली:

  1. इस लाइन को रद्द करें

    LoadModule php7_module libexec/apache2/libphp7.so
  2. अंत में चिपकाएँ

    <IfModule php7_module>
        AddType application/x-httpd-php .php
        AddType application/x-httpd-php-source .phps
    
        <IfModule dir_module>
            DirectoryIndex index.html index.php
        </IfModule>
    </IfModule>

उसी तरह आप Wamp 3 संस्करण को एक ही त्रुटि सुझा सकते हैं। Wamp 3 में कोई /etc/apache2/httpd.conf फ़ोल्डर पथ नहीं है। @AamirR
Gem

यह मेरे लिए काम किया !!! मेरा एक और अजीब मुद्दा था। कुछ फ़ाइलों ने PHP और अन्य का प्रतिपादन किया और सिर्फ कोड प्रदर्शित नहीं किया।
sjw0525

4

मेरे ubuntu 14.04 पर, अपाचे 2.4, php 5.5.9 स्थापित, मैंने एक नमूना के साथ कोशिश की। / var / www / html (डिफ़ॉल्ट दस्तावेज़ रूट) पर और यह ठीक काम किया। तो समस्या मेरे वर्चुअल सर्वर कॉन्फिगर पर थी। समाधान में .php, इस लाइन वाले डायरेक्टरी डीईटी को शामिल करना था:

    php_admin_flag engine on

और मुझे अपने वर्चुअल सर्वर के httpd.conf में अपाचे फाइल में इस लाइन को कहां जोड़ना चाहिए? और मैं
सुरेश पारी

3

मुझे भी ऐसी ही समस्या थी लेकिन मेरे मामले में समाधान अलग था। मेरी फाइल रखे php कोड कहा जाता था "somename.html" में बदल "somename.php" काम ठीक


इससे मेरे लिए भी हल हो गया। क्या किसी को पता है कि अगर गंभीर एक। Html फ़ाइल में php निष्पादित करेगा या क्या हमेशा समाप्त होने वाली फ़ाइल को .php में तब बदलना होगा जब वहाँ php की एक पंक्ति निष्पादित हो?
full_prog_full

सर्वर सेटिंग्स पर निर्भर करता है, ज्यादातर मामलों के लिए php कोड जो anyfile.html में मौजूद है, निष्पादित करेगा। और अगर ऐसा नहीं होता है, तो इसे बदला जा सकता है, हालांकि
आइडी

3

LAMP चल रहे php 7 के नए सेटअप के लिए फ़ाइल /etc/httpd/conf/httpd.conf नोट संपादित करें: कुछ भी बदलने से पहले इसके लिए बैकअप बनाना सुनिश्चित करें।

इसे फ़ाइल के बहुत नीचे चिपकाएँ:

<IfModule php7_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

फिर, LoadModule की खोज करें और निम्नलिखित पंक्ति पेस्ट करें:

LoadModule php7_module modules/libphp7.so

यह लाइन बस http 7 को php 7 मॉड्यूल को लोड करने के लिए कहेगी

फिर httpd को पुनरारंभ करें


3

सभी संकुल आप के लिए स्थापित किया है की जाँच करें php का उपयोग कर:

yum list installed | grep remi

सभी प्रासंगिक php पैकेजों को स्थापित करें , विशेष रूप से अपनी मशीन पर php-devel


3

सुनिश्चित करें कि स्क्रिप्ट में है

<?php

कोड से पहले जिसे निष्पादित किया जाना चाहिए। इसमें <?और बीच में कोई जगह नहीं होनी चाहिए php


2

यह मेरे .htaccess में था

DirectoryIndex index.html index.htm

index.html में PHP कोड था। डिफ़ॉल्ट रूप से, PHP htm * PHP कोड के रूप में सीमाओं के साथ फ़ाइलों को संसाधित नहीं करेगा।

आप इसे .htaccess में जोड़कर इसे ओवरराइड कर सकते हैं:

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

1

मुझे लगता है कि समस्या यह है कि यह परिणाम के बजाय कोड दिखा रहा है कि यह स्थानीय होस्ट में नहीं जा रहा है। पता लगाएँ कि क्या उर में जा रहे हैं, आप एक स्थानीय फ़ाइल निर्देशिका या स्थानीय होस्ट पर जा रहे हैं।

भेजे गए स्क्रीनशॉट u से यह लोकलहोस्ट के लिए कंप्यूटर नहीं बल्कि उर में जा रहा है।

"फ़ाइल: ///" यह "लोकलहोस्ट /" होना चाहिए


1

mcryptमॉड्यूल को पुनर्स्थापित करना मेरे लिए काम करता है।

$sudo apt-get install php5-mcrypt
$sudo php5enmod mcrypt

यह ईमानदारी से किया, हो सकता है क्योंकि मैंने अपने सिस्टम पर PHP को ठीक से कॉन्फ़िगर नहीं किया था। लेकिन, क्योंकि इस प्रश्न के बारे में मैंने जो सवाल पूछा था, उसे इस प्रश्न के डुप्लिकेट के रूप में चिह्नित किया गया है, मैं केवल इसका जवाब यहां दे सकता हूं। मुझे आश्चर्य है कि नीचे वोट क्यों।
bg

यह उत्तर लाइनक्स से संबंधित विषय है जो स्पष्ट रूप से खिड़कियों का उपयोग कर रहा है
रेमंड

1

मेरे पास एक मामला था कि मैंने गलती से रूट में अपनी फ़ाइलों की निर्देशिका को अनटेयर करना शुरू कर दिया। इसने मेरे फाइल फोल्डर से .htaccess फाइल को जोड़ा जो सभी php को ब्लॉक कर देगा

# If we know how to do it safely, disable the PHP engine entirely.
<IfModule mod_php5.c>
  php_flag engine off
</IfModule>

निचला रेखा रूट पर .htaccess फ़ाइल की जाँच करें।


1

यदि आपके पास इस तरह का कॉन्फ़िगरेशन है:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot "/var/www/example.com"

    <FilesMatch "\.php$">
        SetHandler "proxy:fcgi://127.0.0.1:9000"
    </FilesMatch>
</VirtualHost>

अपने httpd.conf में अगली पंक्तियों को रद्द करें

LoadModule proxy_module lib/httpd/modules/mod_proxy.so
LoadModule proxy_fcgi_module lib/httpd/modules/mod_proxy_fcgi.so

इससे मेरा काम बनता है


1

AddType application/x-httpd-php .phpयदि आप Apache 2.4 का उपयोग कर रहे हैं तो अपनी httpd.conf फ़ाइल में जोड़ें


1

विंडोज 10 पर अपाचे 2.4 के साथ चलने के लिए PHP 5 प्राप्त करने की कोशिश करने के बस कुछ घंटे बिताए । अंत में मेरे लिए यह httpd.conf में एक टाइपो था LoadModule। के माध्यम से लेखन और सटीक मॉड्यूल पथ के लिए ड्रयू ध्यान पिछले जवाब के इस apachelounge सूत्र में denny2018 । धन्यवाद!

दो रातों के बाद मुझे पता चला ... मेरी निर्देशिका लिखी गई थी c:(निचला मामला)

मैं अपाचे 2.4 के लिए सही था, LoadModule php5_module "c:/php/php5apache2.dll"लेकिन है:

LoadModule php5_module "C:/php/php5apache2_4.dll"

इसलिए मैंने _4पहले भी ( अपाचे 2.4 के लिए ) याद किया । मेरे लिए काम करने वाला पूरा स्निपेट:

# PHP
LoadModule php5_module "C:/php/php5apache2_4.dll"
AddHandler application/x-httpd-php .php
<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

बस PHP 7 की कोशिश की । वहाँ अपाचे 2.4 के लिए httpd.confLoadModule में लाइन पढ़ता है

LoadModule php7_module "C:/php/php7apache2_4.dll"

वर्तमान में php मैनुअल दिखाता है c:/php/php5apache2.dll कि किस पाठ्यक्रम को समायोजित करने की आवश्यकता है।


1

मेरे मामले में (Apache / 2.4.34),

विशिष्ट मॉड्यूल को अनियंत्रित करने के बाद

"लोडमोडुले php7_module libexec / apache2 / libphp7.so"

से

"/Etc/apache2/httpd.conf"

मेरी समस्या दूर हो गई।


1

मामले में हम एक ही पेज में हैं

sudo apt-get install php -y sudo apt-get install php-{bcmath,bz2,intl,gd,mbstring,mysql,zip,fpm} -y

Apache2 में PHP 7.2 FPM को सक्षम करने के लिए:

a2enmod proxy_fcgi setenvif

a2enconf php7.2-fpm

अद्यतन 2: अपाचे डाउनलोड करता है। प्रतिपादन के बजाय .pp फ़ाइल

उसके बाद, मुझे उपरोक्त मुद्दे का सामना करना पड़ा। वहाँ की तरह इसी तरह के सवाल कर रहे हैं इस

मुझे पता नहीं क्यों लेकिन यह /var/www/html/रूट फ़ोल्डर में केवल मेरी .php फ़ाइलों के लिए हुआ । सब-डाइरेक्टरी के लिए सब कुछ ठीक था। (उदाहरण के लिए WordPress और phpmyadmin ने ठीक काम किया)

तो यहाँ मेरा समाधान है। मैंने php मॉड्यूल को सक्षम करने का निर्णय लिया। इसलिए मैंने यह कमांड चलाई:

a2enmod php7.2

लेकिन मुझे यह त्रुटियां मिलीं:

Php7.2 के लिए निर्भरता mpm_prefork को ध्यान में रखते हुए: mpm_prefork के लिए संघर्ष mpm_event पर विचार: ERROR: मॉड्यूल mpm_event सक्षम है - संघर्षों के कारण आगे नहीं बढ़ सकता। इसे पहले अक्षम करने की आवश्यकता है! Mpm_prefork के लिए संघर्ष mpm_worker को ध्यान में रखते हुए: ERROR: php7.2 के लिए निर्भरता mpm_prefork सक्षम नहीं कर सका, गर्भपात

इसलिए मैंने निम्नलिखित कमांड चलाकर mpm को निष्क्रिय करने का निर्णय लिया:

sudo a2dismod mpm_prefork
sudo a2dismod mpm_worker
sudo a2dismod mpm_event

फिर से शुरू करें अपाचे:

systemctl restart apache2

इसके बाद php7.2 (मेरा संस्थापित संस्करण) सक्षम करें:

sudo a2enmod php7.2

और अभी सब कुछ ठीक काम करता है।


0

इस समस्या का एक और संभावित कारण यह हो सकता है कि आप स्क्रिप्ट को "उपयोगकर्ता निर्देशिका" में UserDirमॉड्यूल से चलाने का प्रयास कर रहे हैं । उपयोगकर्ता निर्देशिकाओं में PHP स्क्रिप्ट चलाना डिफ़ॉल्ट रूप से अक्षम है। यदि स्क्रिप्ट public_htmlआपके होम फ़ोल्डर में निर्देशिका में है और आप इसे एक्सेस करने का प्रयास कर रहे हैं, तो आप इस समस्या में चलेंगे http://localhost/~your_username

इसे ठीक करने के लिए, खोलें /etc/apache2/mods-enabled/php7.2.conf। आपको नीचे पढ़े गए टैग ब्लॉक पर टिप्पणी या हटाना होगा

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

-1

फ़ाइल जिसे आप / var / www / html / में डालते हैं। उसके पास .exp forexample example.php होना चाहिए अगर यह उदाहरण है कि यह काम नहीं कर रहा है लेकिन यदि आप इसे example.php में बदलते हैं तो यह काम करता है।

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