Ik probeer PHP-code op een project uit te voeren (met Dreamweaver) maar de code wordt niet uitgevoerd.
Als ik de broncode controleer, verschijnt de PHP-code als HTML-tags (ik kan het zien in de broncode). Apache werkt naar behoren (ik werk met XAMPP), de PHP-pagina’s worden correct geopend, maar de PHP-code wordt niet uitgevoerd.
Heeft iemand een suggestie over wat er aan de hand is?
Opmerking:het bestand heeft al de naam filename.php
Bewerken:
De code..:
<?
include_once("/code/configs.php");
?>
Antwoord 1, autoriteit 100%
Het lijkt erop dat er iets mis is met uw configuratie, hier zijn een paar dingen die u kunt controleren:
-
Zorg ervoor dat PHP correct is geïnstalleerd en werkt. Dit klinkt misschien gek, maar je weet maar nooit. Een gemakkelijke manier om te controleren is door
php -v
uit te voeren vanaf een opdrachtregel en te kijken of versie-informatie of fouten worden geretourneerd. -
Zorg ervoor dat de PHP-module en onbecommentarieerdin de httpd.conf van uw Apache staat. Dit zou zoiets moeten zijn als
LoadModule php5_module "c:/php/php5apache2_2.dll"
in het bestand. Zoek naarLoadModule php
en zorg ervoor dat er geen commentaar (;
) voor staat. -
Zorg ervoor dat het httpd.conf-bestand van Apache het PHP MIME-type bevat. Dit zou zoiets moeten zijn als
AddType application/x-httpd-php .php
. Dit vertelt Apache om.php
bestanden als PHP uit te voeren. Zoek naar AddType en zorg ervoor dat er een vermelding is voor PHP, en dat er geen commentaar op staat. -
Zorg ervoor dat uw bestand de extensie
.php
heeft, of welke extensie dan ook gespecificeerd in de MIME-definitie in punt #3, anders wordt het niet uitgevoerd als PHP. -
Zorg ervoor dat u geen korte tagsin het PHP-bestand (
<?
) zijn deze standaard niet op alle servers ingeschakelden wordt het gebruik ervan afgeraden. Gebruik in plaats daarvan<?php
(of Schakel korte tags in je php.iniin metshort_open_tag=On
als je code hebt die ervan afhankelijk is). -
Zorg ervoor dat u uw bestand via uw webserver opent met een URL zoals
http://localhost/file.php
en niet via lokale bestandstoegangfile://localhost/www/file.php
Raadpleeg ten slotte de PHP-handleiding voor verdere installatietips.
Antwoord 2, autoriteit 17%
php7 :
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php7.0-fpm
sudo service apache2 restart
Antwoord 3, autoriteit 8%
Ik gebruik Apache op Ubuntu en mijn probleem was dat het bestand /etc/apache2/mods-available/php5.conf
dit ontbrak:
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
Ik heb het weer toegevoegd en php was de php-bestanden correct aan het parseren.
Antwoord 4, autoriteit 7%
opmerking voor php 7-gebruikers, voeg dit toe aan uw httpd.conf-bestand:
# 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>
Antwoord 5, autoriteit 5%
Ik heb een ander probleem gevonden dat dit probleem veroorzaakt en heb het al opgelost. Ik heb per ongeluk mijn script opgeslagen in UTF-16
-codering. Het lijkt erop dat PHP5 de <?php
-tag standaard niet kan herkennen in 16-bits codering.
Antwoord 6, autoriteit 4%
Ik plaats dit antwoord omdat mijn Virtualmin/Webmin-beheerinterface besloot dat het een goed idee was om mijn PHP-engine uit te schakelen. Het kostte me een tijdje om de oplossing te vinden, dus ik dacht ik deel het met jullie:
Zorg er ook voor dat geen van de configuratiebestanden van uw website gerelateerd aan deze specifieke host of virtualhost php_admin_value’s bevat die PHP uitschakelen, zoals dit:
php_admin_value engine Off
Als je twijfelt, reageer dan…
# php_admin_value engine Off
En herstart je webserver.
Antwoord 7, autoriteit 4%
Je opent gewoon je php-bestand in de browser. Je moet het openen met de localhost-url. als je een bestand rechtstreeks vanuit je directory opent, zal het in geen geval de php-code uitvoeren.
gebruik: http://locahost/index.php
of http:127.0.0.1/index.php
Schakel php korte code in. In jouw geval gebruik je <?
, de korte php-code voor <?php
. Standaard zijn php shortcodes uitgeschakeld.
Gebruik ook: sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
als u een ubuntu-gebruiker bent.
Antwoord 8, autoriteit 2%
Ik weet dat het gek moet klinken… maar het gebeurt zelden.
Controleer of u php probeert uit te voeren vanuit
**http://localhost/info.php**
en niet van
file:///var/www/info.php
ps> dat merk je als je vanuit shell schrijft
php info.php
het antwoord met de code (het betekent php-functies)..
Antwoord 9, autoriteit 2%
Dit is me zojuist weer overkomen, samen met de server die html-bestanden downloadt in plaats van verwerkt. Ik had de webserver apache al een tijdje niet meer op de computer gebruikt en ondertussen is Ubuntu geüpdatet als twee andere versies van de oorspronkelijk geïnstalleerde LTS. Nu is het
$ cat /etc/issue
Ubuntu 16.04 LTS
Dus de php werkte daarna als volgt:
$ sudo apt-get install lamp-server^
$ sudo a2enmod php7.0
$ sudo service apache2 restart
De webserver was nu de php aan het parseren. Misschien moet ik nu een aantal webs bijwerken sinds php7.0 nu draait waar het was voordat php5 werd uitgevoerd. Ach.
Antwoord 10
Ik heb dit opgelost door XAMPP te verwijderen en WAMP te installeren.
Bedankt voor de hulp.
Antwoord 11
Ik kwam dit probleem tegen op php 7.1 die wordt geleverd met High Sierra (OS X 10.13.5), het bewerken van /etc/apache2/httpd.conf
met de volgende wijzigingen hielp:
-
Commentaar opheffen voor deze regel
LoadModule php7_module libexec/apache2/libphp7.so
-
Plak het volgende aan het einde
<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>
Antwoord 12
op mijn ubuntu 14.04, apache 2.4, php 5.5.9 installatie, probeerde ik met een sample.php op /var/www/html (standaard document root) en het werkte goed.
Dus het probleem zat in mijn Virtual Servers-configuratie.
De oplossing was om, in de Directory def die de .php bevat, deze regel op te nemen:
php_admin_flag engine on
Antwoord 13
Als we op dezelfde pagina zitten, volg dan het volgende
sudo apt-get install php -y
sudo apt-get install php-{bcmath,bz2,intl,gd,mbstring,mysql,zip,fpm} -y
Om PHP 7.2 FPM in Apache2 in te schakelen:
a2enmod proxy_fcgi setenvif
a2enconf php7.2-fpm
update 2: Apache downloadt .php-bestand in plaats van te renderen
Daarna kreeg ik te maken met het bovenstaande probleem. Er zijn vergelijkbare vragen zoals dit.
Ik weet niet waarom, maar het gebeurde alleen voor mijn .php-bestanden in de hoofdmap /var/www/html/
. alles was ok voor subdirectories. (bijvoorbeeld wordpress en phpmyadmin werkten prima)
Dus hier is mijn oplossing. Ik besloot om de php-module in te schakelen. dus ik heb dit commando uitgevoerd:
a2enmod php7.2
maar ik heb deze fouten:
Rekening houdend met de afhankelijkheid mpm_prefork voor php7.2:
Overweeg conflict mpm_event voor mpm_prefork:
FOUT: Module MPM_EVENT is ingeschakeld – kan niet doorgaan met conflicten. Het moet eerst worden uitgeschakeld!
Overweegt conflict MPM_WORKER voor MPM_PREFORK:
FOUT: kon geen afhankelijkheid MPM_Prefork instellen voor PHP7.2, afbreken
Dus besloot ik om MPM uit te schakelen door de volgende opdrachten te draaien:
sudo a2dismod mpm_prefork
sudo a2dismod mpm_worker
sudo a2dismod mpm_event
Start vervolgens Apache opnieuw:
systemctl restart apache2
Schakel vervolgens PHP7.2 in (Mijn geïnstalleerde versie):
sudo a2enmod php7.2
En nu werkt alles goed.
14
Ik had een soortgelijk probleem, maar in mijn geval was de oplossing anders.
Mijn bestand dat PHP-code heeft gehouden, werd “sommans.html” genoemd
gewijzigd in “Somename.php” werkte prima
15
Voor verse setup van lamp met PHP 7
Bewerk het bestand /etc/httpd/conf/httpd.conf
OPMERKING: Zorg ervoor dat u er een back-up maakt voordat u iets verandert.
Plak dit onderaan het bestand:
<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>
Zoek vervolgens naar LoadModule en plak de volgende regel:
LoadModule php7_module modules/libphp7.so
Deze regel vraagt eenvoudigweg HTTPD om de PHP 7-module
te laden
Start HTTPD
opnieuw op
Antwoord 16
Zorg ervoor dat het script
. bevat
<?php
voor de code die moet worden uitgevoerd. Hierin mag geen spatie tussen <?
en php
staan.
Antwoord 17
Dit stond in mijn .htaccess
DirectoryIndex index.html index.htm
index.html bevat PHP-code. Standaard verwerkt PHP geen bestanden met extensies zoals htm* als PHP-code.
U kunt dit overschrijven door het volgende toe te voegen aan .htaccess:
<FilesMatch ".+\.html$">
SetHandler application/x-httpd-php
</FilesMatch>
Antwoord 18
Voeg AddType application/x-httpd-php .php
toe aan je httpd.conf-bestand als je Apache 2.4 gebruikt
Antwoord 19
Een andere mogelijke oorzaak van dit probleem kan zijn dat u het script probeert uit te voeren in een “gebruikersmap” van de UserDir
-module. Het uitvoeren van PHP-scripts in gebruikersmappen is standaard uitgeschakeld. U zult dit probleem tegenkomen als het script zich in de map public_html
in uw thuismap bevindt en u probeert het te openen vanaf http://localhost/~your_username
.
Om dit op te lossen, opent u /etc/apache2/mods-enabled/php7.2.conf
. Je moet het tagblok onderaan met de tekst
. becommentariëren of verwijderen
<IfModule mod_userdir.c>
<Directory /home/*/public_html>
php_admin_flag engine Off
</Directory>
</IfModule>
20
In mijn geval was de PHP-module niet geladen. Probeer dit:
- Controleer welke modules worden geladen:
apache2ctl -M
. Zoek naar module zoalsphp7_module (shared)
- Als er geen PHP-module wordt vermeld, probeer dan de module te laden die overeenkomt met uw PHP-versie. In mijn geval is het PHP-pakket
libapache2-mod-php7.3
. Dus ik deed:a2enmod php7.3
en het probleem is opgelost.
21
Ik denk dat het probleem dat het een code toont in plaats van het resultaat is dat het niet naar de lokale gastheer gaat. Controleer opnieuw in welk adres u gaat. Ga je naar een lokale bestandsdirectory of naar de lokale host.
Vanaf de screenshot die u hebt verzonden, gaat het naar uw computer niet naar de localhost.
“Bestand: ///” Het zou “localhost /” moeten zijn
22
Installatie van de mcrypt
Module werkte voor mij.
$sudo apt-get install php5-mcrypt
$sudo php5enmod mcrypt
23
Ik had een zaak die ik per ongeluk mijn bestanden directory in root ben begonnen. Het voegde het .htaccess-bestand toe van mijn map Bestanden die alle PHP
zou blokkeren
# If we know how to do it safely, disable the PHP engine entirely.
<IfModule mod_php5.c>
php_flag engine off
</IfModule>
Bottom line Controleer het .htaccess-bestand op root.
24
Als u deze configuratie hebt:
<VirtualHost *:80>
ServerName example.com
DocumentRoot "/var/www/example.com"
<FilesMatch "\.php$">
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
</VirtualHost>
Uncomment Volgende regels in uw httpd.conf
LoadModule proxy_module lib/httpd/modules/mod_proxy.so
LoadModule proxy_fcgi_module lib/httpd/modules/mod_proxy_fcgi.so
het werkt voor mij
25
In mijn geval (Apache / 2.4.34),
Na eenheid van de specifieke module
“Loadmodule php7_module libexec / apache2 / libphp7.so”
van
“/ etc / apache2 / httpd.conf”
Mijn probleem was verdwenen.
26
Probeer de Apache-server opnieuw te starten. Dit was de fout die ik had gemaakt – vergeten om de server opnieuw te starten na het installeren van PHP!
service httpd restart
27
Voor PHP7.3. * U kunt proberen deze modules te installeren. Het werkte voor mij.
sudo apt-get install libapache2-mod-php7.3
sudo service apache2 restart
28
Makkelijkste manier om Apache + PHP7 te installeren met Debian 10:
apt-get update -y
apt-get install apache2 php7.0 libapache2-mod-php -y
sudo service apache2 restart