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 index.php-Datei in Ihrem Projektverzeichnis:
echo "<?php phpinfo(); " | sudo tee /var/www/html/php/index.php
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:
-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.
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.
/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:
Die erste Zahl (7) erteilt dem Besitzer der Datei (oder des Verzeichnisses) Lese- (4), Schreib- (2) und Ausführungsberechtigungen (1), also insgesamt 7.
Die zweite Zahl (5) verleiht der Gruppe Lese- (4) und Ausführungsberechtigungen (1), jedoch keine Schreibberechtigungen, also insgesamt 5.
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 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 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>
Lassen Sie uns jeden Teil des Codes analysieren:
ServerAdmin webmaster@localhost
ServerName php.info
DocumentRoot /var/www/html/php
AllowOverride All
Alles muss gewährt werden
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.
CustomLog ${APACHE_LOG_DIR}/php_access.log kombiniert
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 new Virtual Host with the command:
sudo a2ensite php.conf
If you need to use .htaccess or URL rewrites, activate the Apache rewrite module:
sudo a2enmod rewrite
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
Add the following line to the end of the file:
<p>127.0.0.1 php.info</p>
Restart Apache for the changes to take effect:
<p>sudo systemctl restart apache2</p>
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!