PHP-Apache-Projekt mit Virtual Host

Mary-Kate Olsen
Freigeben: 2024-10-06 06:08:03
Original
279 Leute haben es durchsucht

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


Nach dem Login kopieren

Erstellen Sie eine PHP-Testdatei

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


echo "<?php phpinfo(); " | sudo tee /var/www/html/php/index.php


Nach dem Login kopieren

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


Nach dem Login kopieren

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) gibt anderen Benutzern auch Lese- (4) und Ausführungsberechtigungen (1), aber 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


Nach dem Login kopieren

Fügen Sie die virtuelle Hostkonfiguration hinzu

Fügen Sie der Datei die folgende Konfiguration hinzu:


<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName php.info
    DocumentRoot /var/www/html/php

    <Directory /var/www/html/php/>
        AllowOverride All
        Require all granted
    </Directory>

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


Nach dem Login kopieren

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. Defines the path to the Apache access log file for this Virtual Host. Like ErrorLog, this also uses the ${APACHE_LOG_DIR} variable. The combined format records information about requests, including the client's IP address, the time of the request, the HTTP method, the URL requested, the status code and the user agent.

Enable the Virtual Host

Enable the new Virtual Host with the command:


sudo a2ensite php.conf


Nach dem Login kopieren

Activate the Rewrite Module (if necessary)

If you need to use .htaccess or URL rewrites, activate the Apache rewrite module:


sudo a2enmod rewrite


Nach dem Login kopieren

Add Server Name to Hosts

To access your project using the server name you defined (php.info), add an entry in the /etc/hosts file:


sudo your_editor /etc/hosts


Nach dem Login kopieren

Add the following line to the end of the file:


<p>127.0.0.1   php.info</p>

Nach dem Login kopieren




Restart the Apache

Restart Apache for the changes to take effect:


<p>sudo systemctl restart apache2</p>

Nach dem Login kopieren




Accessing the Project

You can now access your project in the browser by typing http://php.info.

Das obige ist der detaillierte Inhalt vonPHP-Apache-Projekt mit Virtual Host. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!