„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > PHP-Apache-Projekt mit Virtual Host

PHP-Apache-Projekt mit Virtual Host

Veröffentlicht am 09.11.2024
Durchsuche:142

PHP Apache project with Virtual Host

Erstellen Sie das Projektverzeichnis

Erstellen Sie zunächst ein Verzeichnis für Ihr Projekt. Erstellen wir zum Beispiel ein Verzeichnis namens php:


sudo mkdir /var/www/html/php


Erstellen Sie eine PHP-Testdatei

Erstellen Sie eine index.php-Datei in Ihrem Projektverzeichnis:


echo "

Legen Sie Verzeichnisberechtigungen fest

Legen Sie die entsprechenden Berechtigungen fest, damit Apache auf das Verzeichnis zugreifen kann:


sudo chown -R www-data:www-data /var/www/html/php 
sudo chmod -R 755 /var/www/html/php


Der Befehl sudo chown -R www-data:www-data /var/www/html/php führt die folgenden Aktionen aus:

  1. -R: Diese Option gibt an, dass die Operation rekursiv ausgeführt werden soll, d. h. nicht nur für das angegebene Verzeichnis, sondern auch für alle seine Unterverzeichnisse und Dateien.

  2. www-data:www-data: Gibt an, dass der Benutzer und die Gruppe, die die neuen Eigentümer der Dateien werden, beide www-data sind. Dies ist ein allgemeiner Benutzer und eine Gruppe auf Linux-Systemen, die als Standardbenutzer für Webserver wie Apache und Nginx dienen.

  3. /var/www/php: Dies ist der Pfad des Verzeichnisses, dessen Eigenschaften geändert werden.

Der Befehl sudo chmod -R 755 /var/www/html/php führt die folgenden Aktionen aus:

755: Dies ist ein Berechtigungsmodus:

  1. Die erste Zahl (7) erteilt dem Besitzer der Datei (oder des Verzeichnisses) Lese- (4), Schreib- (2) und Ausführungsberechtigungen (1), also insgesamt 7.

  2. Die zweite Zahl (5) verleiht der Gruppe Lese- (4) und Ausführungsberechtigungen (1), jedoch keine Schreibberechtigungen, also insgesamt 5.

  3. Die dritte Zahl (5) gewährt anderen Benutzern außerdem Lese- (4) und Ausführungsberechtigungen (1), jedoch keine Schreibberechtigungen, also insgesamt 5.

Zusammenfassend ändert dieser Befehl die Berechtigungen aller Dateien und Verzeichnisse in /var/www/html/php, sodass der Eigentümer die volle Kontrolle (Lesen, Schreiben und Ausführen) hat, während die Gruppe und andere Benutzer nur Lesezugriff haben und Ausführungsberechtigungen. Dies ist in Webserverumgebungen üblich, um sicherzustellen, dass der Server auf die erforderlichen Dateien zugreifen kann, ohne die Sicherheit zu beeinträchtigen.

Erstellen Sie die Konfigurationsdatei für den virtuellen Host

Erstellen Sie eine neue Konfigurationsdatei für Ihren virtuellen Host. Die Datei sollte denselben Namen wie das PHP-Projekt haben:


sudo your_editor /etc/apache2/sites-available/php.conf


Fügen Sie die virtuelle Hostkonfiguration hinzu

Fügen Sie der Datei die folgende Konfiguration hinzu:



    ServerAdmin webmaster@localhost
    ServerName php.info
    DocumentRoot /var/www/html/php

    
        AllowOverride All
        Require all granted
    

    ErrorLog ${APACHE_LOG_DIR}/php_error.log
    CustomLog ${APACHE_LOG_DIR}/php_access.log combined

Lassen Sie uns jeden Teil des Codes analysieren:

    • Dies ist der Anfang des Konfigurationsblocks für einen virtuellen Host, der Port 80 überwacht, den Standardport für HTTP. Das Sternchen (*) zeigt an, dass der virtuelle Host Verbindungen von jeder IP-Adresse akzeptiert.
  1. ServerAdmin webmaster@localhost

    • Definiert die E-Mail-Adresse des Serveradministrators. Diese E-Mail-Adresse kann in Fehlermeldungen verwendet werden oder wenn ein Benutzer den Administrator kontaktieren muss.
  2. Servername php.info

    • Gibt den Namen des Servers an, für den diese Einstellung gilt. In diesem Fall antwortet der virtuelle Host auf Anfragen nach php.info. Es ist wichtig, dass dieser Name korrekt in die IP des Servers aufgelöst wird (normalerweise in der Datei /etc/hosts oder im DNS konfiguriert).
  3. DocumentRoot /var/www/html/php

    • Definiert das Verzeichnis mit den Dateien, die bereitgestellt werden, wenn jemand auf den Servernamen zugreift (in diesem Fall php.info). In diesem Beispiel befinden sich die Dateien in /var/www/html/php.
    • Dieser Block legt spezifische Einstellungen für das angegebene Verzeichnis fest. Die Einstellungen in diesem Block wirken sich auf das Verhalten von Apache für dieses bestimmte Verzeichnis aus.

AllowOverride All

  • Es ermöglicht .htaccess-Dateien im Verzeichnis /var/www/html/php/, die Einstellungen von Apache zu überschreiben. Dies bedeutet, dass Entwickler .htaccess-Dateien verwenden können, um Regeln wie Weiterleitungen oder Zugriffskontrolle zu konfigurieren, ohne die Hauptkonfigurationsdatei von Apache bearbeiten zu müssen.

Alles muss gewährt werden

  • Ermöglicht allen Benutzern den Zugriff auf das Verzeichnis. Das bedeutet, dass jeder ohne Einschränkungen auf die Dateien in /var/www/html/php/ zugreifen kann.
  1. Fehlerprotokoll ${APACHE_LOG_DIR}/php_error.log
  2. Gibt den Pfad zur Apache-Fehlerprotokolldatei für diesen virtuellen Host an. ${APACHE_LOG_DIR} ist eine Variable, die normalerweise in der Hauptkonfigurationsdatei von Apache festgelegt wird und auf das Verzeichnis verweist, in dem die Protokolle gespeichert sind. Hier werden Fehler im Zusammenhang mit diesem virtuellen Host in der Datei php_error.log aufgezeichnet.

  3. CustomLog ${APACHE_LOG_DIR}/php_access.log kombiniert

  4. Definiert den Pfad zur Apache-Zugriffsprotokolldatei für diesen virtuellen Host. Wie bei ErrorLog wird auch hier die Variable ${APACHE_LOG_DIR} verwendet. Das kombinierte Format zeichnet Informationen über Anfragen auf, einschließlich der IP-Adresse des Clients, des Zeitpunkts der Anfrage, der HTTP-Methode, der angeforderten URL, des Statuscodes und des Benutzeragenten.

Aktivieren Sie den virtuellen Host

Aktivieren Sie den neuen virtuellen Host mit dem Befehl:


sudo a2ensite php.conf


Aktivieren Sie das Rewrite-Modul (falls erforderlich)

Wenn Sie .htaccess oder URL-Rewrites verwenden müssen, aktivieren Sie das Apache-Rewrite-Modul:


sudo a2enmod rewrite


Servernamen zu Hosts hinzufügen

Um mit dem von Ihnen definierten Servernamen (php.info) auf Ihr Projekt zuzugreifen, fügen Sie einen Eintrag in der Datei /etc/hosts hinzu:


sudo your_editor /etc/hosts


Fügen Sie die folgende Zeile am Ende der Datei hinzu:


127.0.0.1 php.info




Starten Sie den Apache neu

Starten Sie Apache neu, damit die Änderungen wirksam werden:


sudo systemctl restart apache2




Zugriff auf das Projekt

Sie können nun im Browser auf Ihr Projekt zugreifen, indem Sie http://php.info eingeben.

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/xxzeroxx/php-apache-project-with-virtual-host-2npk?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3