• Wenn du alle Inhalte sehen, oder selber eine Frage erstellen möchtest, kannst du dir in wenigen Sekunden ein Konto erstellen. Die Registrierung ist kostenlos, als Mitglied siehst du keine Werbung!

php in apache aktivieren

Chris62

Mitglied
Thread Starter
Mitglied seit
17.09.2007
Beiträge
109
Guten Abend

Ich bin eine absoluter Neuling in PHP.

Wie aktiviere ich PHP in osx catalina Version 10.15.4

php -v ergibt Version 7.3
apache läuft

Mit local:8080 wird index.html aufgerufen:

HTML:
Inhalt nur für registrierte User sichtbar  Logge dich ein oder registriere dich jetzt.
'It works' und 'file: usr/local/var/www/index.html' werden angezeigt, aber "PHP script!" nicht.

Was mache ich falsch?

Bin dankbar für jede Hilfe.
 

Deine Mudda

Mitglied
Mitglied seit
21.02.2014
Beiträge
666
Ich hätte mindestens erwartet, dass die Dateiendung .php ist.

Ansonsten: Config angepasst?
 
  • Gefällt mir
Reaktionen: ruerueka

Chris62

Mitglied
Thread Starter
Mitglied seit
17.09.2007
Beiträge
109
Bin etwas weitergekommen, anscheinend habe ich das falsche httpd.config bearbeitet.
Mit usr/local/etc/httpd.config kann ich index.html auf User/Sites setzen. Allerdings, wenn ich die Zeile
'LoadModule php7_module libexec/apache2/libphp7.so' einsetze erhalte ich beim restart von Apache die Meldung, dass das File nicht geladen werden kann.
 
Zuletzt bearbeitet:

Chris62

Mitglied
Thread Starter
Mitglied seit
17.09.2007
Beiträge
109
Ich komme nicht weiter. Ich habe das /etc/apache2/httpd.conf file sicher dreimal exakt nach der Anleitung von Sven angepasst.
Das index.php enthält <?php phpinfo(); ?>.
Rufe ich im Browser http://localhost auf kommt die Meldung: Safari konnte keine Verbindung aufbauen
Rufe ich im Browsers http://localhost:8080 wird immer das index.html im Verzeichnis "/usr/local/var/www/index.html" aufgerufen. Aber nicht jenes in meinem Users/Christoph/Sites Verzeichnis.
Ich stehe komplett auf dem Schlauch und bin völlig Ratlos.
Die Apacheversion ist: 2.4.41
 

Difool

Frontend Admin
Mitglied seit
18.03.2004
Beiträge
10.939
Ich komme nicht weiter. Ich habe das /etc/apache2/httpd.conf file sicher dreimal exakt nach der Anleitung von Sven angepasst.
Das index.php enthält <?php phpinfo(); ?>.
Rufe ich im Browser http://localhost auf kommt die Meldung: Safari konnte keine Verbindung aufbauen
Rufe ich im Browsers http://localhost:8080 wird immer das index.html im Verzeichnis "/usr/local/var/www/index.html" aufgerufen. Aber nicht jenes in meinem Users/Christoph/Sites Verzeichnis.
Ich stehe komplett auf dem Schlauch und bin völlig Ratlos.
Die Apacheversion ist: 2.4.41
Hast du den letzten Schritt evtl. vergessen?
Denn der dient dazu, dass du den 'document root' setzen kannst, damit bsw. 'Users/Christoph/Sites' dann gefunden wird –
was augenscheinlich soweit dein letztes Problem sein dürfte.
Damit dieser Ordner automatisch verwendet wird, editiert man erneut die Apache-Konfiguration wie oben beschrieben im Terminal.
Man such nach DocumentRoot und ändert die folgenden beiden Zeilen

DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">
in
DocumentRoot "/Users/Christoph/Sites"
<Directory "/Users/Christoph/Sites">
 

Chris62

Mitglied
Thread Starter
Mitglied seit
17.09.2007
Beiträge
109
Habe ich so gesetzt.
Editiere ich das File /usr/local/etc/httpd.conf, dann geht er zumindest in das Verzeichnis Users/Christoph/Sites.
Aber PHP wird nicht aktiviert.
 

Difool

Frontend Admin
Mitglied seit
18.03.2004
Beiträge
10.939
Du hast mitbekommen, dass du die index-Datei mit .php deklarieren solltest – und nicht mit Endung .html ?

Also > index.php > nicht index.html

PHP wird mit der Dateiendung .php "angesprochen" – für .html müsstest du sonst das PHP "includen"
und dann wird das anders geschrieben, als dieses dein php-Snippet: <?php echo " PHP script!"; ?>

Alternativlos: bei allen getätigten Apache-Einstellung abschliessend den Apache neustarten > "sudo apachectl restart"
 

Chris62

Mitglied
Thread Starter
Mitglied seit
17.09.2007
Beiträge
109
Das File hat den Namen index.php. "sudo apachectl restart" mache ich nach jeder Änderung.
Was hat es mit den beiden httpd files
/usr/local/etc/httpd.conf und /etc/apache2/httpd.conf
auf sich?
 

Difool

Frontend Admin
Mitglied seit
18.03.2004
Beiträge
10.939
/etc/apache2/httpd.conf
System-Apache bzw. der "default apache" > bereits vorinstalliert und aktiv

/usr/local/etc/httpd.conf
Möglicher eigener Apache zum Installieren und konfigurieren – mittels bsw. "homebrew"

Das ist 'die Mutter" > /etc/apache2/httpd.conf
Das ist 'das Kind' > /usr/local/etc/httpd.conf
…falls du unter 'local' nicht einen kompletten eigenen Apache installierst – da du dafür den 'system-apache' erstmal deaktivierst.

Installierst du keinen eigenen Apache, dann gelten die Einstellungen des 'System-Apache'.
Mit und über den 'local' kannst du bsw. mirroring oder individuelle Änderungen betreiben.

Du hast deinen 'documentRoot' bisher in der localen httpd.conf geändert –
ändere den auch mal im systemeigenen 'default apache' > also > /etc/apache2/httpd.conf
Da du ja den 'system-apache' benutzt.

Hier hast du mal zum Einlesen: Mapping URLs to Filesystem Locations
 
  • Gefällt mir
Reaktionen: dg2rbf

Chris62

Mitglied
Thread Starter
Mitglied seit
17.09.2007
Beiträge
109
Danke für den link,
Ursprünglich habe ich die Einstellungen bei /etc/apache2/httpd.conf gemacht. Da alle Anleitungen sich auf diese beziehen. Das hatte gar keinen Einfluss.
Wie deaktiviere ich 'das Kind'. Ich denke dort liegt mein das Problem.
 

Difool

Frontend Admin
Mitglied seit
18.03.2004
Beiträge
10.939
@Chris62
Ich habe es mal nachvollzogen und so geht es: ( iMac Sierra 10.12.6 )

Zuerst legst du dir einen Ordner in deinem Benutzerverzeichnis (Finder: Tastenkombination ⇧ + ⌘ + H) an: Ordnername > Sites
In diesen "Sites"- Ordner legst du eine Text-Datei namens "index.php" > Inhalt: <?php phpinfo(); ?>

Terminal:
01. Apache starten sudo apachectl start
Wenn du jetzt im Browser http://localhost eingibst, siehst du "It works!" vom System-Apachen

Die config des System-Apachen via Terminal einstellen:
02. config öffnen /etc/apache2/httpd.conf

Mit crtl+w sucht man nach: php
#LoadModule php7_module libexec/apache2/libphp7.so
…ändern in: (Raute # vorne weg)
LoadModule php7_module libexec/apache2/libphp7.so

Mit crtl+w sucht man nach: rewrite_module
#LoadModule rewrite_module libexec/apache2/mod_rewrite.so
…ändern in: (Raute # vorne weg)
LoadModule rewrite_module libexec/apache2/mod_rewrite.so

Mit crtl+w sucht man nach: DocumentRoot

DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">

…ändern in:

DocumentRoot "/Users/Christoph/Sites"
<Directory "/Users/Christoph/Sites">


Dann kannst du noch den Apache Benutzer auf dich setzen**:
Mit crtl+w sucht man nach: User/Group
Code:
Inhalt nur für registrierte User sichtbar  Logge dich ein oder registriere dich jetzt.
…ändern in:
Code:
Inhalt nur für registrierte User sichtbar  Logge dich ein oder registriere dich jetzt.
^** falls du dann später erneut die httpd.conf bearbeiten willst, aber "Permission denied" sein sollte, dann:
sudo nano -w +114 /etc/apache2/httpd.conf
…und mit deinem Passwort bestätigen.

htaccess aktivieren:
Mit crtl+w sucht man nach: htaccess
Code:
Inhalt nur für registrierte User sichtbar  Logge dich ein oder registriere dich jetzt.
…ändern in:
Code:
Inhalt nur für registrierte User sichtbar  Logge dich ein oder registriere dich jetzt.
Speichern der httpd.conf mit > ctrl+o
Editor beenden mit > ctrl+x
Apache neu starten > sudo apachectl restart

fertig. :teeth:

Jetzt solltest du im Browser bei: http://localhost die php Infos sehen.

edit:
Falls du noch Fragen haben solltest – habe weiter noch:
- mysql installiert
- Sequel Pro installiert
- php 7.3 installiert
- eine Datenbank angelegt und eine Wordpress Website local in "Sites" reingeclont
- php.ini aktualisiert (preg_match(): JIT compilation failed: no more memory > Find pcre.jit and change ;pcre.jit=1 to pcre.jit=0)

Läuft jetzt gut.
 
  • Gefällt mir
Reaktionen: ruerueka und dg2rbf

Chris62

Mitglied
Thread Starter
Mitglied seit
17.09.2007
Beiträge
109
Es gibt offensichtlich Unterschiede zwischen Catalina und den vorherigen Versionen. Das Problem habe ich nun definitiv lokalisiert.
Beim Aufstarten von Apache wird das File /usr/local/etc/httpd.conf angesprochen. Die Module liegen dort im Verzeichnis lib/httpd/modules/ dort fehlt libphp7.so.

Ich keine Ahnung wie ich Apache dazu bringen kann das /etc/apache2/hpttd.conf File zu verwenden.
Nun habe ich eine ganze Woche Zeit verplempert, die Suchmaschine hat auch nicht weitergeholfen und jetzt bin ich nur noch frustriert.
Danke trotzdem für Deine Hilfe.
Ach ja, http://localhost funktioniert nur, wenn ich die Ports angebe also http://localhost:8080.
 

Difool

Frontend Admin
Mitglied seit
18.03.2004
Beiträge
10.939
Es gibt offensichtlich Unterschiede zwischen Catalina und den vorherigen Versionen. Das Problem habe ich nun definitiv lokalisiert.
Beim Aufstarten von Apache wird das File /usr/local/etc/httpd.conf angesprochen. Die Module liegen dort im Verzeichnis lib/httpd/modules/ dort fehlt libphp7.so.

Ich keine Ahnung wie ich Apache dazu bringen kann das /etc/apache2/hpttd.conf File zu verwenden.
Nun habe ich eine ganze Woche Zeit verplempert, die Suchmaschine hat auch nicht weitergeholfen und jetzt bin ich nur noch frustriert.
Danke trotzdem für Deine Hilfe.
Ach ja, http://localhost funktioniert nur, wenn ich die Ports angebe also http://localhost:8080.
Jupp, haste recht dass es in Catalina etwas anders läuft – php7 ist aber dabei:
https://jasonmccreary.me/articles/install-apache-php-mysql-mac-os-x-catalina/

Alternativ probiere sonst auch > http://127.0.0.1

enable-php-catalina.png
 

Chris62

Mitglied
Thread Starter
Mitglied seit
17.09.2007
Beiträge
109
Ich kenne diesen Link. Das hat auch nichts gebracht.
http://127.0.0.1 ist nichts anderes als http://localhost und hat den gleichen Effekt