Ich habe gerade Ubuntu Server 10.04 mit einem LAMP-Setup installiert. Ich möchte dort eine Website hosten, bin mir aber nicht sicher, wie ich meine Dateien am besten auf dem Server abrufen / bearbeiten kann. Googeln bietet viele Möglichkeiten, aber ich bin mir nicht sicher, welche am besten ist?
Sofern es keine bessere Option gibt, würde ich die Seiten gerne auf einem anderen PC (Windows oder Linux) erstellen und die Änderungen mit SFTP auf dem Server synchronisieren - aber mache ich das mit einem verknüpften Ordner in ~ / oder indem ich die Rechte ändere im Ordner / var / www /?
Antworten:
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:
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 imdomains
Ordner mit einemhtml
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 mit
a2enmod
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:
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 mita2ensite
wie folgt:Nach jeder Änderung an den Konfigurationsdateien muss Apache mit neu geladen werden
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.
quelle
Sftp ist sehr einfach zu installieren. Installieren
openssh-server
Sie einfach das Paket und Sie werden sftp haben. Stellen Sie sicher, dass Ihr Benutzer ein gutes Passwort hat, wenn Sie es aus dem Internet abrufen können. (8+ Zeichen, kein Wörterbuchwort, haben Symbole und Zahlen).Bei Berechtigungen mache ich das normalerweise.
sudo adduser <username> www-data
sudo chown -R www-data:www-data /var/www
sudo chmod -R g+rw /var/www
Sie sollten dann in der Lage sein, Seiten zu posten, indem Sie eine Verbindung mit sftp herstellen (mit Ihrem Benutzernamen und Kennwort) und dann zum Ordner / var / www gehen und Ihre Dateien dort ablegen.
quelle
Ich benutze webdav Es ist sehr einfach, auf Ubuntu Server zu installieren. Wenn Sie Apache installiert haben, sind Sie fast fertig. Nur
sudo a2enmod dav; service apache2 restart
. Sie müssen eine kleine Konfiguration Ihrer virtuellen Site vornehmen. Hier ist ein Beispiel, das ich in der Produktion verwende:Sie können dies in / srv / etc / apache2 / sites-available / mysite ablegen und dann tun
sudo a2ensite mysite; sudo service apache2 reload
.Hier haben Sie zwei virtuelle Sites erstellt. Einer ist www.mysite.com und der andere ist webdav.mysite.com. PHP wurde auf webdav.mysite.com deaktiviert, was wichtig ist.
Jetzt können Sie unter Ubuntu, Windows und MacOS über http auf Ihre Site zugreifen. Alle drei haben Webdav-Unterstützung eingebaut. Hier finden Sie Anweisungen zum Hinzufügen eines Webdav-Netzwerkverzeichnisses in Ubuntu .
quelle
mkdir -p /srv/mysite/www; chown -R www-data.www-data /srv/mysite
.Ich würde / var / www Schreibrechte für die www-Daten geben und Ihren Benutzer dieser Gruppe hinzufügen. Auf diese Weise lässt sich leicht steuern, welche Benutzer in dieses Verzeichnis schreiben können.
quelle
Verwenden Sie ein Framework für Ihre Website? Drupal, Wordpress, etc? Drupal bietet beispielsweise Tools zum Hochladen über die Interaktion mit dem Browser.
Hast du in Samba geschaut? Sie können eine Samba-Freigabe einrichten (und es gibt Unmengen von Ressourcen im Web dafür) und einfach den Windows-Explorer zum Öffnen / Bearbeiten / Speichern / Löschen verwenden. Richten Sie / var / www ein, das freigegeben werden soll, und ordnen Sie das "Netzwerklaufwerk" Windows zu.
Ist das eine Arbeits- oder eine häusliche Umgebung? Es klingt wie zu Hause, aber wenn Sie sich in einer Arbeitsumgebung befinden, können Sie Samba mit Active Directory mit Tools wie "Ebenso offen" koppeln. Ich habe einen Server / eine Website eingerichtet, sodass sich die Benutzer im IT-Shop über ihre AD-Anmeldeinformationen auf beiden Seiten des Servers (Linux oder Website) anmelden können.
Ich würde auch vorschlagen, etwas wie Mercurial zu untersuchen. Erstellen Sie ein Repository auf dem Server und synchronisieren Sie mit Windows über etwas wie TortiseHG. Ich nehme an, es ist wie mit rsync, aber Sie hätten Versionsverwaltung, Backups, Verteilungsmöglichkeiten usw. (SVN, Mercurial, Git usw., alle Optionen)
quelle
Sie können sshfs verwenden. https://help.ubuntu.com/community/SSHFS
quelle
Bist du nach so etwas
quelle