
jak najít číslo portu pro apache na jakém poslouchá
čumim jako puk,ale nejsem s to najít v php skriptu (phpinfo() ) číslo portu na jakém poslouchá. A to právě hledám , chci ho zjistit zevnitř skriptu. Ono to sice je "stabilní" parameter , který se často nemění , a určitě jde najít někde v httpd.conf , ale řeším , jak to vyčíst phpčkem.
příklad pro pochopení:
adresa v url https://server.com:12345 je forwardována na jiný počítač s apache serverem , který poslouchá na portu 32443.
jediný co vidim je $_SERVER['SERVER_PORT'] ..... 12345, ale 32443 nikde
A není forwardovana na nejakem routeru, ktery port 12345 predava ven jako 32443?
Je forwardovana na nejakem routeru, ktery port 12345 predava dovnitr jako 32443.
Pokud by byla forwardovana na nejakem routeru, ktery port 12345 predava ven jako 32443, pak by komunikace neproběhla , prototože by prohlížeč posílal paket z náhodného portu na 12345 , ale vracela se mu odpověď z náhodného portu na port 32443... a prohlížeč o portu 32443 nemá šajn
Abych se priznal, tvou odpoved jsem moc nepochopil. Ty Apache jsou ve stejne siti nebo komunikuji pres internet?
Pokud je to forwardovano na routerech, pak to v nastaveni Apache nenajdes.
Já to chápu tak, že dotaz vede na router na port 12345, tento router pak ten dotaz pošle na pc s apache na port 32443, který dotaz zpracuje. A phpinfo mu vyhazuje port 12345, přičemž on chce někde uvést ten 32443. Jak jsem psal dole, podle mě možná ten port 32443 bude uveden v server-info. A určitě se bude dát zjistit přes shell_exec nebo naparsováním config souboru apache nebo by se dalo vymyslet i něco dalšího. Ale nechápu k čemu mu to jako má být.
Teoreticky, ale phpinfo sa pyta localhostu, na ktorom bezi a nema odkial vediet, ze bolo premerovane z nejakeho vonkajsieho portu.
Aspon tak som to ja doteraz chapal, takze sa mi to cele nezda.
Ví to přece z dotazu.
A je to nějaké divné.
Nevím jak to funguje u routeru, teď jsem to zkoušel přes proxy (nginx) a phpinfo na apache mi ukazuje port z apache.
No a to je ten detail. nginx jsem ještě nezkoušel.
Pro ostatní : ten příklad z přístupu z LAN jsem vůbec neměl uvádět nevěděl jsem že vás to zmate.
$_SERVER['SERVER_PORT'] .. ti ukazuje port servera, na ktorom bezi a nie vonkajsi, takze v popise musis mat niekde chybu.
Ne ,ne ne, a ještě jednou ne . Kdyby $_SERVER['SERVER_PORT'] ukazoval port servera, na ktorom bezi , tak bych byl spokojený a neptal se. Ale skutečně ukazuje "vonkajsi".
Pro potvrzení: pokud v lokalní síti zadám netcat apachecomputer 12345 , logicky neodpoví
Dokonce to vidím i pokud na routeru pustím, tcpdump: zvenku má komunikace port 12345, ale do LAN posíla router komunikaci na port 32443. Ale počítač s apache
v phpinfo nikde port 32443 neuvádí.. Nebavím se o tom, že ten port mohu najít přes netstat -l -4 |grep apache, chci to znát z php skriptu.
jenom pro informaci kde se 32443/12345 port ukazuje: SERVER['HTTP_HOST'] $_ENV['SERVER_PORT'] a $_ENV['HTTP_HOST'], pokaždé je to 12345 v případě komunikace z venku, 32443 při komunikaci z LAN. Ale apache poslouchá v obou případech na portu 32443
Já to chápu tak, že HTTP Host je to co je zadané v URL, ale SERVER_PORT by mělo být vždy neměnné (32443) ... .ale není !
moment, zkusim experiment na jiném implementaci webserveru. : jiný apache se chová stejně : nejde se za boha v phpinfo dopátrat čísla portu , na kterém poslouchá . Ještě zbývá nginx . (tedy , vlastně , ehm , je to věc php nebo webserveru ...)
Jen tak informačně, je na apache povolen info_module?
Pokud ano, je ten port 32443 uveden tu?
http://localhost/server-info
Nebo i tu?
https://server.com:12345/server-info
Dál co mě napadlo, zjistit to dotazem přes shell_exec, přes to by to mělo jít 100%.
Nebo naparsováním config souboru apache nebo by se dalo určitě ještě něco vymyslet
I když vůbec netuším proč to potřebuješ, když ten port přece znáš.
Ne takový modul nemám
Pokud neuvedu číslo portu, tak se nikam nepřipojím!
Jakou pouzíváš verzi Apache ?
Zkus Direktivu servername nastavit následovně
Popřípade v httpd.conf
.. Pokud nastavíš nebo máš nastaveno "UseCanonicalName On" musíš také nastavit "UseCanonicalPhysicalPort On" > získání "skutečného" portu
děkuju za radu , trpělivě jsem všechny kombinace zkoušel a oba Canonicaly zabraly , konečně nyní HTTP_HOST SERVER PORT ukazují odlišné hodnoty
akorát mám divný vibe , že z tak jednoduchýho dotazu se vyklubala tak dlouhá diskuze.
akorát mám pocit , jesli mi to něco nerozhasí, jestli když budu dělat directory listing, nebude to házet to interní(zvenku nedostupné) číslo portu - to si myslím, že v dokumentaci přímo zmiňují https://httpd.apache.org/docs/current/mod/core.html#usecanonicalphysicalport
Tak je to tak že na ten nginx to umí rovnou! Se spropradeným apachem jsem se s tim šolíchal jak s pannou