web-dev-qa-db-de.com

Wie man mit Wordpress auf localhost umgeht

Ich verwende localhost, um eine WP Site auf meinem Laptop zu betreiben, und ich brauche oft meine Kollegen, um sie zu sehen. Wenn sie die IP meines Hauses eingaben, konnten sie auf die Site zugreifen, aber alle URLs in WP, die site_url () oder ähnliches verwendeten, gaben "localhost" aus, was für Außenstehende natürlich nicht funktionierte.

Also habe ich WP geändert, um meine IP für die Site-URL zu verwenden, die das Problem behoben hat, aber eine andere erstellt hat. Wenn ich meinen Laptop von zu Hause wegbringe und versuche, meine Website anzuzeigen, werden jetzt alle Links als http: // home-ip/ angezeigt, was nicht verfügbar ist. Außerdem kann ich nicht in wp-admin wechseln, um die Site-URL wieder in localhost zu ändern, da ich zu http: // home-ip/site/wp-admin/ umgeleitet werde.

Gibt es eine Möglichkeit, damit umzugehen, ohne die URL jedes Mal ändern zu müssen, wenn ich möchte, dass jemand anderes von außen darauf zugreift, oder jedes Mal, wenn ich das Haus verlasse.

7
user1778856

Sie können wp-config.php verwenden, um die Website-URL mithilfe von $_SERVER['REMOTE_ADDR'] zu ändern, je nachdem, von wo aus auf die Website zugegriffen wird. Meins hat so etwas:

if ($_SERVER['REMOTE_ADDR'] == '127.0.0.1' || $_SERVER['REMOTE_ADDR'] == '::1') { 
    // accesing site from my local server
    define('WP_SITEURL', 'http://localhost/mysite/');
    define('WP_HOME', 'http://localhost/mysite');
} else if (strpos($_SERVER['REMOTE_ADDR'],'192.168.0.') !== false) {
    // accesing site from another machine in my home network, 
    // all their (internal) network addresses begin with this number;
    // the next line provides the server's own internal network address 
    define('WP_SITEURL', 'http://192.168.0.192/mysite/');
    define('WP_HOME', 'http://192.168.0.192/mysite');
} else { //accesing site from outside home
    define('WP_SITEURL', 'http://89.*.*.*/mysite/'); //replace by your external home IP
    define('WP_HOME', 'http://89.*.*.*/mysite');
}
//error_log("Siteurl is ".WP_SITEURL);

Diese Technik vereinfacht auch das Hochladen der Site auf einen Produktionsserver oder das Synchronisieren lokaler und Produktionsversionen der Site erheblich. (Natürlich sollte der wp-config.php auf dem Produktionsserver diesen Code nicht haben.)

Hinweis: Aus irgendeinem Grund kann ich meine externe Heim-IP von anderen Computern in meinem Heimnetzwerk nicht verwenden. Wenn dies nicht der Fall ist, können Sie den else if entfernen, wobei nur der Teil else übrig bleibt.

8
adelval

Obwohl die akzeptierte Antwort gut aussieht, funktioniert es in meinem Fall nicht, nur WP_SITEURL/WP_HOME zu ändern, da immer viele absolute Links im Textinhalt der Seiten vorhanden sind (dh Bilder oder Links, die über den WYSIWYG-Editor hinzugefügt wurden). . Mit anderen Worten, ich muss ziemlich genaudieselbe Domain verwenden, wenn die Site ordnungsgemäß funktionieren soll.

Für den Fall, dass es jemand anderem hilft, der darauf stößt, war meine Lösung eine außerhalb von WordPress liegende - auch wenn dies möglicherweise nicht in allen Fällen hilfreich ist.

Ich verwende eine Domain, zum Beispiel me.mycompany.com, und führe dann in meiner HOSTS-Datei eine Auflösung auf 127.0.0.1 durch (mit anderen Worten: localhost). Für jeden meiner Kollegen, der die Site anzeigen möchte, füge ich meine Domain mit meiner lokalen IP-Adresse zu ihrer HOSTS-Datei hinzu.

Diese Lösung wird auch erweitert, wenn Kunden außerhalb unseres Netzwerks die Site anzeigen müssen. Wir stellen einfach sicher, dass me.mycompany.com in unsere öffentliche IP-Adresse aufgelöst wird (normalerweise kann Ihr Webhost dabei helfen, und es ist definitiv hilfreich, wenn Sie auch für Ihre Internetverbindung eine statische IP-Adresse haben), und leiten dann an unserem Router das Web weiter Anfragen an meine interne IP, um effektiv eine einfache Webhosting-Lösung einzurichten (natürlich nur für die Entwicklung, nicht für die Produktion!)

Hoffe das hilft jemandem. Die HOSTS-Datei kann auf jeder Plattform bearbeitet werden. Offensichtlich unterscheiden sich die Anweisungen für Windows, Mac und Linux. Wenn Sie Hilfe benötigen, wenden Sie sich am besten an Google. In Windows lautet die Datei jedoch C:\Windows\System32\drivers\etc\hosts. öffne es im Editor und nimm die notwendigen Änderungen vor, indem du dem Format in der Datei folgst (du musst als Administrator ausgeführt werden, um die Datei zu speichern).

1
Tim Malone