Best Practices für die Einrichtung einer LAMP-Entwicklungsumgebung

3163
Jono

Ich habe einen Albtraum, der eine anständige Umgebung für das Entwickeln von Wordpress auf einem lokalen Computer einrichtet.

  1. Jedes Mal, wenn ich ein Plugin hinzufüge, werden die Dateiberechtigungen manuell angepasst.
  2. Ich kann keine Designs oder Plugins über die Wordpress-Benutzeroberfläche installieren.
  3. Ich muss sudojedes Mal weitermachen, wenn ich den Inhalt des Site-Ordners ändern muss, an dem ich gerade arbeite (Designdateien usw.).
  4. Ich habe versucht, XAMPP zu verwenden, das über ein integriertes FTP-Setup verfügt, aber alle über die Webschnittstelle hochgeladenen Dateien erhalten die Berechtigungen des Benutzers nobody.

Welche Best Practices gibt es, um eine anständige LAMP-Umgebung einzurichten, die den Komfort einer gehosteten Umgebung zumindest teilweise simuliert?

Ich denke, es könnte damit beginnen, die Apache-Konfiguration so zu ändern, dass sie auf einen Entwicklungsordner in meinem ~/Ordner verweist, aber ich hatte dort schreckliche Probleme mit Berechtigungen.

Für das Protokoll verwende ich Xubuntu 9.10 auf einem System und Ubuntu-Netbook 9.10 auf dem anderen System.

Irgendwelche Ratschläge oder Anleitungen, auf die ich mich beziehen kann?

Ich bin nicht völlig dagegen, eine VM zu verwenden (wie hier zu sehen, aber nur als letzter Ausweg; das Netbook ist wahrscheinlich nicht stark genug und ich beziehe mich allgemein auf die Arbeit an einer lokalen Kopie von Dingen.) ]

5
SO oder serverfault.com? ukanth vor 14 Jahren 0
Nein, es ist keine Programmierfrage und ich baue kein Netzwerk von PCs auf, die mir nicht gehören. Jono vor 14 Jahren 0
Serverfault wäre am besten - das ist wirklich eine sysadmin-Frage. gbjbaanb vor 14 Jahren 0
Intuitiv ist es eine Frage des Sysadmin. Aber in Wirklichkeit ist es eine Frage des Entwicklers, aber keine Programmierfrage. Wenn Sie die Definitionen auf Serverfault lesen, werden Sie feststellen, dass dies nicht angemessen ist. Jono vor 14 Jahren 0

5 Antworten auf die Frage

1
Remy

Sieht aus, als ob Ihr Apache (und damit auch XAMPP) als Benutzer 'nobody' ausgeführt wird, wohingegen Ihre Wordpress-Installation Ihrer Login-Benutzer-ID gehört. Ich schätze, es ist ein Entwicklungsserver, der nicht über das Internet erreichbar ist. In diesem Fall ist es am einfachsten, den Run-as-Benutzer in der httpd.conf von apache in Ihre Login-Benutzer-ID zu ändern.

Besser wäre es, suPHP oder suexec zu installieren, aber das Einrichten ist etwas schwieriger als das oben genannte.

Benutzer `nobody 'ist die Standardeinstellung für die ftp-Komponente von XAMPP, soviel weiß ich. Der springende Punkt von XAMPP war, dass ich einfach dran bleibe und es funktioniert, aber das ist nicht der Fall. Aber ich benutze nur XAMPP auf dem Netbook. Jono vor 14 Jahren 0
Auf der anderen Seite hört sich das Run-as für Apache als wichtig an. Vielleicht löst das mein aktuelles Problem. Jono vor 14 Jahren 0
Haben Sie auch überlegt, sich mod_userdir anzusehen? Remy vor 14 Jahren 0
1
Jono

Für den Anfang ist es keine gute Idee, alles unter / var / www zu platzieren und den Browser auf http: // localhost / somesite / zu setzen . Zum einen wird es kompliziert, wenn Sie später zu einem neuen Server wechseln. Es ist am besten, einen virtuellen Host auf Ihrem Computer zu erstellen, indem Sie eine neue Datei somesite(Ihren Site-Namen) unter erstellen

/etc/apache2/conf/sites-available/ 

Erstellen Sie einen VirtualHost für die vollständige URL. Auf diese Weise müssen Sie beim Migrieren einer WordPress-Datenbank die Site-Adresse nicht bearbeiten. In unserem Beispiel wäre es ein virtueller Host für www.somesite.com.

Hier ist ein Beispiel für eine solche Datei:

<VirtualHost somesite:80> ServerAdmin username@localhost ServerName somesite DocumentRoot /var/www/somesite <Directory /> AllowOverride All Options FollowSymLinks </Directory>  ErrorLog /var/log/apache2/error.log  LogLevel debug  </VirtualHost> 

Führen Sie dann die folgenden Befehle aus:

$ sudo a2ensite somesite $ sudo /etc/init.d/apache2 reload 

Sie müssen auch Ihre /etc/hostsDatei aktualisieren, indem Sie die erste Zeile von ändern

127.0.0.1 localhost 

zu

127.0.0.1 localhost, somesite, www.somesite.com 

aber dann stoße ich auf ein problem:

Ich möchte die Dateien in meinem Home-Ordner ablegen, wo ich über vollständige Berechtigungen verfüge, anstatt sie unter / var / www zu speichern. Auf diese Weise muss ich nicht jedes Mal etwas tun, wenn ich etwas tun möchte, und ich riskiere auch nicht, das System durcheinander zu bringen. Ich kann auch leichter mit SVN arbeiten.

Wenn ich jedoch eine solche Konfiguration erstelle, wenn ich den Browser auf http://www.somesite.com/einen 403-Fehler vergebe, bekomme ich eine Fehlermeldung ohne Berechtigungen.

Selbst wenn ich den gesamten somesiteOrdner auf Berechtigungen 777 eingestellt habe, erhalte ich immer noch diesen Fehler. Was soll ich sonst tun?

1
gavaletz

Ich würde eine VM verwenden und dieselbe Verteilung verwenden, die der Zielhost verwenden wird. Dies könnte später eine Menge Frustrationen beseitigen. Was die VM und das Netbook angeht, dachte ich, der Kern des "NETbook" bestand darin, dass der lokale Speicher nur ein Cache war und der Hauptteil der Arbeit darin bestand, in der "Cloud?"

Sie könnten einen alten Beater-Desktop finden, um ihn als temporären Host einzurichten und darauf zu entwickeln. Wenn Sie Ihre Website dort zum Laufen bringen, wird die Leistung nur durch das Verschieben auf einen Host verbessert. Wenn Sie Shared Hosting verwenden (die meisten Benutzer tun dies), werden die Ergebnisse der alten Maschine dem entsprechen, was Sie von Ihrem Hosting-Service erwarten können Sowieso.

0
gbjbaanb

Es klingt so, als ob Sie die Add-Ins wie Sie selbst auspacken und dann an den Benutzer chmod chmoden müssen, in dem der Apache läuft. Das ist normal, mach dir keine Sorgen.

Der Punkt ist, dass Sie Apache als Benutzer mit geringen Berechtigungen ausführen, der nur über Berechtigungen für einige Dinge verfügt, z. B. nur Zugriff auf seine Dateien und keine der Dateien in Ihrem Home-Verzeichnis (da Sie sich darüber ärgern würden Wenn Sam Hacker Ihre privaten Dateien herunterladen könnte). Unabhängig von dem Verzeichnis, unter dem Sie Ihre Sites betreiben, muss der Apache-Benutzer lesbar (und in manchen Fällen auch schreibbar) sein.

Dadurch können Sie Plugins in Wordpress installieren - da Apache (dh Apache) Schreibzugriff auf die benötigten Verzeichnisse hat. Ihr FTP-Benutzer wird korrekt eingestellt, da niemand die Verwendung von Rapache wie in manchen Distributionen ausführt.

Fügen Sie Ihren Benutzer jetzt der Radgruppe hinzu, um die Dinge ein wenig einfacher zu machen, so dass Sie su Befehle ausführen und sich dann bei Ihrem normalen Benutzer abmelden können.

Hmm. Also sollte ich "owner" den Besitz aller Dateien im XAMPP-Verzeichnis zuweisen? Jono vor 14 Jahren 0
0
JL Peyret

(Dies ist spezifisch für eine Wordpress- Entwicklungsumgebung, sie würde nicht als generisches LAMP-System funktionieren).

Probieren Sie die vorgefertigten Bitnami-Wordpress-VMs aus. Sie laufen unter VirtualBox und VMWare. https://bitnami.com/stack/wordpress/virtual-machine

Sie müssen etwas vorsichtig sein, um nicht mit einer Bitnami LAMP-Installation auf Ihrem Computer zu enden, der Download sieht fast gleich aus.

Sobald die VM in Betrieb ist, können Sie den größten Teil Ihrer Arbeit über die WordPress-GUI erledigen. Sie können auch über untergeordnete Themen anpassen (erfordert einen Editor auf Ihrem lokalen Computer und wird dann komprimiert). Bei Bedarf können Sie ein SSH-Login für die VM einrichten.

Ich habe zwei VMs eingerichtet, um den Staging- / Prod-Workflow zu testen (Konfig / Inhalt in Staging schreiben, in Prod exportieren). Viel besser als das Cpanel meines Hosting-Providers.

Noch nicht viele Überraschungen. Es mögen.