Nu pot accesa site-ul WordPress de la adresa IP externă, dar funcționează în rețea internă
Am configurat un mic website folosind LAMP (Raspbian) și WordPress.
Nu voi înregistra un nume de domeniu pentru website.
Momentan accesez site-ul doar din interiorul rețelei locale.
Pentru acces folosesc doar adresa IP internă a serverului.
Doresc să accesez site-ul din afara rețelei locale prin adresa IP publică.
IP-ul public este static și am configurat un Firewall pentru a traduce IP-ul intern/portul implicit(80) către IP-ul public static/(port aleatoriu) și invers.
IP-ul intern este de asemenea static iar Raspberry Pi este conectat direct la Firewall prin cablu.
Când trimit o cerere de pe o adresă IP externă, pagina nu se încarcă niciodată, însă în panoul de administrare (prin plugin-ul WP Statistics) văd cererea.
Menționez că am modificat wp-config.php
și anume aceste linii:
define('WP_HOME','http://internalIP/');
// Definește URL-ul principal al site-ului
define('WP_SITEURL','http://internalIP/');
// Definește URL-ul de bază pentru WordPress
Ce modificări trebuie să fac pentru ca site-ul să răspundă la cererile externe?
Există ceva ce ar trebui să verific în configurația WordPress/Apache/mySql/Linux?
Spuneți-mi dacă aveți nevoie de informații suplimentare despre configurație.

Când instalați WordPress pe o adresă IP (sau un nume de gazdă), WordPress va răspunde doar la cererile pe acea adresă IP. Orice cerere de la o altă adresă IP, chiar dacă se rezolvă pe același server, va duce la o redirecționare către o pagină de eroare WordPress.
În această situație, aș proceda astfel:
- Instalați WordPress pe adresa IP publică. Acest lucru va funcționa dacă puteți direcționa traficul intern către adresa IP publică.
- Dacă nu puteți direcționa traficul intern către adresa IP publică, atunci vă sugerez să instalați pe un nume de gazdă. Trebuie să configurați DNS-ul astfel încât intern să se rezolve către adresa IP internă, iar extern să se rezolve către adresa IP publică.

Prin 1 te referi la reinstalarea WP? Sau schimbarea celor 2 linii define în wp-config.php ar fi suficient? Prin 2 te referi la DNS-ul rețelei interne? de ex. configurarea DNS pe firewall/router sau modificarea fișierului hosts în Linux pentru a rezolva către adresa publică? Orice informație/link suplimentar ar fi foarte apreciat. (te rog să notezi că voi testa asta mâine la birou) așadar feedback-ul și/sau marcarea răspunsului ca corect ar putea dura puțin. Mulțumesc pentru ajutor până acum!

Adresa IP (privată) cu care ai instalat este în baza de date. Fie reinstalezi WP dacă este nou și nu te deranjează să pierzi munca. Sau poți face o căutare și înlocuire în baza ta de date. În plus, ar trebui să actualizezi adresa IP în wp-config.php.

Voi încerca să o înlocuiesc în baza de date cu backup/modificare/înlocuire offline și apoi voi încărca noile fișiere pe server plus voi schimba atât home cât și siteurl la adresa IP publică în wp-config.php mulțumesc pentru tot ajutorul. Voi reveni și voi verifica dacă a funcționat sau nu.

Accesul prin IP public funcționează! Am folosit metoda de relocare din acest post și am modificat și fișierul de configurare. Acum WordPress nu mai procesează cererile din spatele firewall-ului (există vreo modalitate de a face asta? fie prin rețea, fie prin Apache? poate ar trebui să fie un alt subiect). Mulțumesc pentru ajutor!

Deși nu este considerat un mod intenționat de funcționare, WP_HOME
și WP_SITEURL
pot fi declarate dinamic în funcție de fiecare cerere individuală, în loc să fie hardcodate.
PHP nu are prea multă stare internă, așa că dacă îi spui să trateze o anumită cerere ca și cum ar răspunde la un anumit nume de gazdă/IP — o va face.
Desigur, deși acest lucru va face ca nucleul WordPress să pornească, există o anumită stare pe partea sa, cum ar fi URL-urile capturate în conținut și altele asemenea.
Pe scurt, acest lucru este cu siguranță posibil, dar practicitatea lui depinde foarte mult de specificul site-ului.
