2013-08-06 16 views
8

Ich habe diese Frage gesehen viele Male beantwortet, aber die meisten Ende entweder unbeantwortet oder durch die Fragesteller zu sagen, dies zu setzen:Warum läuft PHP nicht?

<?php phpinfo() ?> 

in einer Testdatei. Offensichtlich, wenn das produzierte, was erwartet wurde, würde ich nicht hier sein. Stattdessen erhalte ich einen 404-Fehler.

Ich benutze einen Ubuntu 12.04 Server mit Amazon. Apache ist installiert, php5 ist installiert und Apache wurde neu gestartet. Ich folgte die folgende Sequenz:

sudo apt-get install apache2 

sudo apt-get install php5 

sudo apt-get install libapache2-mod-php5 

sudo /etc/init.d/apache2 restart 

Jeder der ersten drei Befehle jetzt gibt mir „apache2 ist schon die neueste Version 0 aktualisiert, 0 neu installiert, 0 zu entfernen und 3 nicht aktualisiert“ Offensichtlich ersetzen apache2 mit php5 und libapache2-mod-php5 für die anderen beiden.

Dies ist eine sichere Möglichkeit, mir zu sagen, es ist installiert, richtig? Nun, wenn ich den Befehl "top" verwende, ist PHP nicht einer der Dienste, die ausgeführt werden, was mir sagt, dass es nicht läuft, richtig?

Navigieren zu der IP-Adresse gibt mir Amazon "Es funktioniert!" Seite, aber das Navigieren zu einer anderen Seite auf dem Server führt zu einem 404-Fehler.

Jede Hilfe wird sehr geschätzt.

+3

versuchen Sie dies: phpinfo(); – Maximus2012

+2

phpinfo ist eine Funktion. Verwende 'phpinfo()'. – Mic1780

+0

Was meinen Sie mit anderen Seiten –

Antwort

9

Überprüfen Sie die Apache-Konfigurationsdateien. Für Debian/Ubuntu theyre in /etc/apache2/sites-available/ für RedHat/CentOS/etc sind sie in /etc/httpd/conf.d/. Wenn Sie es gerade installiert haben, heißt die darin enthaltene Datei wahrscheinlich default.

Stellen Sie sicher, dass die darin enthaltene Konfigurationsdatei auf den richtigen Ordner verweist, und stellen Sie sicher, dass sich Ihre Skripts dort befinden. Die Zeile, nach der Sie in diesen Dateien suchen, lautet DocumentRoot /path/to/directory.

Für eine leere Installation müssen sich Ihre PHP-Dateien höchstwahrscheinlich in /var/www/ befinden.

Was Sie auch tun müssen, ist Ihre php.ini-Datei zu finden, wahrscheinlich liegt bei /etc/php5/apache2/php.ini oder /etc/php.ini und den Eintrag für display_errors finden und es zu On wechseln.

+0

Ahh! Vielen Dank! Ich hatte den Verdacht, dass ich an der falschen Stelle war, aber mir wurde gesagt, dass es das richtige Verzeichnis ist. Ich werde dieses hier zum Nachschlagen aufschreiben müssen. – Christian

+0

Ich bin mir immer noch nicht sicher, warum "top" php nicht angezeigt, aber ich habe eine php-Datei in diesem Ordner erstellt und es funktioniert gut. – Christian

+0

oben? wie im 'top' Befehl? Es würde kein PHP anzeigen, es würde als Apache erscheinen. aber ich bin froh, dass ich helfen konnte! – castis

-5

Sie müssen das Semikolon an das Ende aller PHP Dinge wie Echo, Funktionen hinzuzufügen, usw.

Änderung <?php phpinfo() ?>-<?php phpinfo(); ?>

Wenn das nicht verwenden Funktion ini_set funktioniert die PHP-Fehler zu zeigen: ini_set('display_errors', 1);

+4

Wenn eine Funktion das einzige Ding in PHP-Tags ist, spielt das Semikolon keine Rolle. – castis

+1

Sie sind richtig @castis. aber es ist beste Praxis. Schau mal hier: http://StackOverflow.com/a/2038751/1637737 Also eigentlich ist das Semikolon noch erforderlich. PHP ist einfach schlau genug, um Probleme für die Faulen zu lösen. – Mic1780

+3

das ist nett und alles, aber es hilft ihm nicht mit seinem Problem. – castis

0

Wenn Apache und PHP unter Installation von Ubuntu 14.04, brauchte ich PHP-Konfigurationen ermöglichen durch die Ausgabe von a2enmod php5-cgi

5

Eine große gotcha ist, dass PHP deaktiviert ist in Benutzer-Home-Verzeichnisse standardmäßig speziell auf, wenn Sie also Tests sind Von public_html funktioniert es nicht. prüfen /etc/apache2/mods-enabled/php5.conf

# Running PHP scripts in user directories is disabled by default 
# 
# 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_flag engine Off 
# </Directory> 
#</IfModule> 

Anders als das Installation in Ubuntu ist wirklich einfach, da die alle Dinge, die Sie verwendet zu haben, um in httpd.conf setzen automatisch erfolgt.

+0

das hat für mich funktioniert – spankmaster79

0

Geben Sie den Browser localhost: 80 // test5.php [wobei 80 der Port ist und test.php Ihr ​​Dateiname ist] anstelle von c: //xampp/htdocs/test.php ein.