Jedes Setup ist anders. Für mich gibt es viele Benutzer auf einem Server, auf dem die einzelnen Websites gehostet werden. Sie müssen wahrscheinlich nicht mehr als einen Benutzer auf dem System erstellen. Wenn Sie jedoch mehrere Websites auf diesem Server verwalten, können Sie mit diesem Setup die einzelnen Domänen einfacher als mit einem Standard-LAMP-Setup verwalten, konfigurieren und debuggen. Um dies zu erreichen, benutze ich mehrere Geräte von Apache, um Berechtigungsfehler zu umgehen.
Erstens ist dies die Dokumentenstruktur, die ich benutze:
/home/[USER]/domains/[DOMAIN]/html
/home/[USER]/domains/[DOMAIN]/logs
Jeder Benutzer hat ein eigenes Konto mit einem Domänenordner (den ich hinzugefügt habe, /etc/skel
damit er jedes Mal erstellt wird. Jede Domäne hat einen eigenen Ordner im domains
Ordner mit einem html
Ordner. Ich habe meine Gründe dafür, in erster Linie, damit Domänen Webdateien außerhalb haben können Fühlen Sie sich frei, diese Struktur nach Belieben zu ändern. Denken Sie jedoch daran, diese Änderungen in diesem Beitrag zu übernehmen.
Zweitens hoste ich viele PHP-Sites, sodass ich in meiner Konfiguration suPHP verwende. Standardmäßig ist für das Standardarchivpaket nicht das richtige Kompilierungsflag aktiviert, was zu einer weniger sicheren Version von suPHP führt. Ich habe mein eigenes suPHP-Paket erstellt, das ich auf meinen Servern verwende. Mit suPHP können Sie definieren, unter welchen Bedingungen Benutzer-PHP-Skripte ausgeführt werden sollen (unter anderem: Benutzerdefinierte php.ini für jede Site usw.). Ich aktiviere auch suExec für Apache - außerdem muss ich dem WWW-Datenbenutzer (einem Benutzer, den ich verachte) keinen Besitzer mehr geben.
Stellen Sie zunächst sicher, dass Apache und alle anderen Dienste auf Ihrem Server installiert sind. Stellen Sie sicher, dass sie zumindest funktionieren. Danach empfehle ich, suphp-common und das erforderliche libapache2-mod-suphp-Modul zu installieren (Weitere Informationen: Was sind PPAs und wie verwende ich sie? ). Aktivieren Sie dann nach der Installation suPHP und suexec mita2enmod
sudo a2enmod suphp
sudo a2enmod suexec
sudo a2dismod php5
sudo /etc/init.d/apache restart
Als nächstes kommt die Konfigurationsdatei. Ich habe verschiedene Tools erstellt, die die Konfigurationsdateien jedes Mal automatisch generieren, wenn ich eine neue Site hinzufüge. Hier ist jedoch die grundlegende Vorlage, die ich verwende:
<VirtualHost *:80>
ServerAdmin [EMAIL]
ServerName [DOMAIN]
ServerAlias www.[DOMAIN] [DOMAIN]
DocumentRoot /home/[USER]/domains/[DOMAIN]/html
<Directory /home/[USER]/domains/[DOMAIN]>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
</Directory>
ErrorLog /home/[USER]/domains/[DOMAIN]/logs/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /home/[USER]/domains/[DOMAIN]/logs/access.log combined
SuexecUserGroup [USER] [USER]
suPHP_UserGroup [USER] [USER]
suPHP_ConfigPath /home/[USER]/etc
</VirtualHost>
Dadurch wird die Protokollierung für diese Domäne, den Dokumentenstamm und alle anderen grundlegenden Anforderungen für den Betrieb der Domäne eingerichtet. Ich platziere diese Dateien in der /etc/apache2/sites-available/
Regel benannt [USER]-[DOMAIN]
und aktivieren / deaktivieren Sie sie mit a2ensite
wie folgt:
sudo a2ensite [USER]-[DOMAIN]
sudo a2dissite [USER]-[DOMAIN]
Nach jeder Änderung an den Konfigurationsdateien muss Apache mit neu geladen werden
sudo /etc/init.d/apache reload
Während es viel zu sein scheint, die Menge an gewonnener Flexibilität einzurichten, überwiegt meiner Meinung nach die Einrichtungszeit bei weitem. Obwohl Sie nur einen einzelnen Benutzer-Webserver benötigen, müssen Sie in Zukunft, wenn Sie jemals etwas anderes als einen einzelnen Benutzer-Webserver wünschen, weitere Aktionen ausführen (oder die Sicherheit einfach alle zusammen löschen), um dies zu tun.