Best Practices zum Einrichten der LAMP-Entwicklungsumgebung

5

Ich habe einen Albtraum, eine anständige Umgebung für die Entwicklung von Wordpress auf einem lokalen Computer einzurichten.

  1. Ich passe die Dateiberechtigungen jedes Mal manuell an, wenn ich ein Plugin hinzufüge.
  2. Ich kann keine Themes oder Plugins über die Wordpress-Oberfläche installieren.
  3. Ich muss sudojedes Mal auf dem Laufenden bleiben, wenn ich den Inhalt des Site-Ordners ändern muss, an dem ich arbeite (Themendateien usw.).
  4. Ich habe versucht, XAMPP zu verwenden, das mit einem eingebauten FTP-Setup geliefert wird, aber dann erhalten alle über die Weboberfläche hochgeladenen Dateien die Berechtigungen des Benutzers nobody.

Was sind einige bewährte Methoden zum Einrichten einer anständigen LAMP-Umgebung, die zumindest teilweise den Komfort einer gehosteten Umgebung 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 schreckliche Probleme mit den Berechtigungen dort.

Für die Aufzeichnung, ich starte Xubuntu 9.10 auf einem System und Ubuntu-Netbook 9.10 auf dem anderen.

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

[edit] Ich bin nicht ganz dagegen, eine VM zu verwenden (wie hier zu sehen , aber nur als letzte Möglichkeit; das Netbook ist wahrscheinlich nicht leistungsfähig genug, und ich beziehe mich im Allgemeinen auf die Arbeit an einer lokalen Kopie von Dingen. [/ edit] ]

Jono
quelle
SO oder serverfault.com?
Ukanth
Nein, es ist keine Programmierfrage und ich richte kein Netzwerk von PCs ein, die ich nicht besitze.
Jono
serverfault wäre am besten - das ist wirklich eine Sysadmin-Frage.
gbjbaanb
Intuitiv ist es eine Sysadmin-Frage. Aber in Wirklichkeit ist es eine Entwicklerfrage, aber keine Programmierfrage. Wenn Sie die Definitionen für serverfault lesen, werden Sie feststellen, dass dies nicht angemessen ist.
Jono

Antworten:

1

Sieht so aus, als ob Ihr Apache (und damit XAMPP) als Benutzer "nobody" ausgeführt wird, während Ihre Wordpress-Installation Ihrer Login-Benutzer-ID gehört. Ich vermute, es ist ein nicht über das Internet erreichbarer Entwicklungsserver. 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 oben beschrieben.

Remy
quelle
nobodySoweit ich weiß, ist der Benutzer die Standardeinstellung für die FTP-Komponente von XAMPP. Der springende Punkt bei XAMPP war, dass ich einfach dabei bin und es funktioniert, aber das ist nicht der Fall. Trotzdem benutze ich XAMPP nur für das Netbook.
Jono
Auf der anderen Seite klingt das Run-As für Apache wichtig. Vielleicht löst das mein letztes Problem.
Jono
Haben Sie sich auch überlegt, sich mod_userdir anzuschauen?
Remy
1

Für den Anfang ist es keine gute Idee, alles unter / var / www zu speichern und den Browser auf http: // localhost / somesite / zu verweisen . Zum einen wird es kompliziert, wenn Sie später auf einen neuen Server wechseln. Am besten erstellen Sie einen virtuellen Host auf Ihrem Computer, indem Sie eine neue Datei mit dem Namen somesite(Ihr Site-Name) 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 Ihre /etc/hostsDatei auch 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 die vollen Berechtigungen habe, anstatt sie unter / var / www abzulegen. Auf diese Weise muss ich weder jedes Mal sudo, wenn ich etwas tun möchte, noch riskiere ich, das System zu beschädigen, wenn ich das tue. Ich kann auch einfacher mit SVN arbeiten.

Wenn ich jedoch eine solche Konfiguration erstelle und den Browser auf http://www.somesite.com/zeige, wird am Ende ein 403-Fehler ohne Berechtigungen angezeigt .

Auch wenn ich den gesamten somesiteOrdner auf die Berechtigungen 777 eingestellt habe, wird dieser Fehler weiterhin angezeigt. Was soll ich sonst noch tun?

Jono
quelle
1

Ich würde eine VM verwenden und dieselbe Distribution verwenden, die der Zielhost verwenden wird. Dies könnte später viele Frustrationen beseitigen. Was die VM und das Netbook anbelangt, dachte ich, der springende Punkt des "NETbook" sei, dass der lokale Speicher nur ein Cache ist und der Großteil der Arbeit in der "Cloud?"

Sie können einen alten Beater-Desktop finden, der als temporärer Host eingerichtet und darauf entwickelt werden kann. Wenn Sie Ihre Site dort zum Laufen bringen und auf einen Host verschieben, wird die Leistung nur verbessert, und wenn Sie Shared Hosting verwenden (was die meisten Leute tun), stimmen die Ergebnisse der alten Maschine besser mit denen überein, die Sie von Ihrem Hosting-Service erwarten können Sowieso.

gavaletz
quelle
0

Es hört sich so an, als ob Sie die Add-Ins als Sie selbst entpacken und sie dann an den Benutzer chmod müssen, unter dem Apache ausgeführt wird. Das ist normal, ärgere dich nicht darüber.

Der Punkt dabei ist, dass Sie Apache als Benutzer mit geringen Rechten ausführen, der nur Berechtigungen für einige Dinge hat, wie beispielsweise den Zugriff auf nur die Dateien und keine in Ihrem Home-Verzeichnis (weil Sie sich ärgern würden) wenn Sam Hacker Ihre privaten Dateien herunterladen könnte). Das Verzeichnis, in dem Ihre Websites ausgeführt werden, muss für den Apache-Benutzer lesbar (und in einigen Fällen schreibbar) sein.

Auf diese Weise können Sie Plugins in Wordpress installieren, da es (dh Apache) Schreibzugriff auf die benötigten Verzeichnisse hat. Ihr FTP-Benutzer wird korrekt eingestellt, da niemand Rapache verwendet wie auf einigen Distributionen.

Um sich die Arbeit etwas zu erleichtern, fügen Sie jetzt Ihren Benutzer zur Radgruppe hinzu, damit Sie su, eine Reihe von Befehlen ausführen und sich dann wieder bei Ihrem normalen Benutzer abmelden können.

gbjbaanb
quelle
Hmm. Also sollte ich den Besitz aller Dateien im XAMPP-Verzeichnis "nobody" zuweisen?
Jono
0

(Dies ist speziell für eine Wordpress-Entwicklungsumgebung gedacht, da es nicht als generisches LAMP-System funktionieren würde.)

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. Dieser Download sieht fast gleich aus.

Sobald die VM hochgefahren ist, können Sie den größten Teil Ihrer Arbeit über die WordPress-Benutzeroberfläche erledigen. Sie können das Design auch über untergeordnete Themen anpassen (erfordert einen Editor auf Ihrem lokalen Computer und anschließendes Zippen). Bei Bedarf können Sie eine SSH-Anmeldung an der VM einrichten.

Ich habe zwei VMs eingerichtet, um den Staging / Prod-Workflow zu testen (Konfiguration / Inhalt in Staging schreiben, nach Prod exportieren). Viel besser als auf dem Panel meines Hosting-Providers herumzuspielen.

Noch nicht allzu viele Überraschungen. Es mögen.

JL Peyret
quelle