[Ubuntu/Apache] localhost map (/home/site) bereiken via port

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • jdemaat
  • Registratie: April 2010
  • Laatst online: 08-07 21:32
Beste allen,

Mijn ietwat ingewikkelde situatie is als volgt, ik hoop dat het te begrijpen is en dat iemand tips heeft!

Korte uitleg:
Ik wil met een tablet via een lokaal IP, gehost door mijn computer, in een specifieke folder op mijn computer terechtkomen. Die folder mag in de URL geen subfolder zijn (het moet root zijn zoals "localhost" of wellicht met een port erachter). Kan dit, en zo ja, hoe?

Lang uitleg:
Ik heb op mijn lokale computer Ubuntu en Apache staan, en een andere folder (dan /var/www/) als root ingesteld. Dit houdt in: in mijn /etc/apache2/sites-available/000-default.conf staat onder andere dit:
code:
1
2
3
<VirtualHost *:80>
DocumentRoot /home/(hierusername)/projects/
</VirtualHost>

Dit doe ik omdat ik in die folder alle sites ontwikkel. En het werkt goed: als ik naar localhost ga, kom ik daar terecht.
Dan kan ik normaal naar localhost/subfolder/ gaan om een van de sites de bereiken. Werkt ook prima.

Maar ik heb nu een geval waarbij ik geen subfolder in de URL kan toestaan, vanwege .htaccess synchronistatie met de live server. Het mag dus enkel een root domeinnaam zijn (zoals "localhost"). Welke naam dat is maakt me niet uit, het is toch lokaal. Mag dus ook een port zijn.

Dus heb ik als volgt een httpd.conf aangemaakt in /etc/apache2/ (en die file wordt ook geinclude door apach2.conf):

Python:
1
2
3
4
5
6
7
8
9
10
11
<VirtualHost *:80>
  ServerName 127.0.1.2 # dit is de lokale naam
  ServerAlias 127.0.1.2 # dito
  DocumentRoot /home/(hierusername)/projects/voorbeeldsite
  <Directory "/home/(hierusername)/projects/voorbeeldsite">
    Options Indexes FollowSymLinks MultiViews Includes
    Order allow,deny
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>

(Hierboven even Python code blok gebruikt voor de kleurtjes.) ;)

Dit werkt ook goed. Dus ik ga naar 127.0.1.2 en ik kom direct in /home/(hierusername)/projects/voorbeeldsite terecht.

Het probleem is nu: ik kan dit IP niet bereiken met andere apparaten op hetzelfde netwerk. Wat ik dus wil is de site checken met een tablet, door naar een lokaal IP te gaan. Dit kan ook voor bijvoorbeeld de root folder, via 196.168.X.X, dan kom ik perfect in mijn apache root terecht. Maar ik moet dus in die subfolder zijn... :'(
Het mag dus ook een port zijn, localhost:1111 of zo, als ik maar in die subfolder kom. maar een port in virtualhost neerzetten ljikt niet werken.

Ik heb geprobeerd:
  • om 196.168.X.X in de virtualhost neer te zetten, maar dat lijkt ie niet te pakken.
  • om 196.168.X.X met een port erachter in de virtualhost neer te zetten, geen succes.
  • om 127.0.1.2 met een port erachter in de virtualhost neer te zetten, geen succes.
  • om 127.0.0.1 met een port erachter in de virtualhost neer te zetten, geen succes.
Ik hoop echt dat dit verhaal begrijpelijk is en dat er iemand weet waar ik moet zijn. Ik ben eigenlijk helemaal geen server kundige dus een aanwijzing in de goede richting zou al heel goed zijn!

Systeem:
Ubuntu 14.04
Apache/2.4.7
Ik heb een statisch IP op het thuisnetwerk.


Jelmer

PS: mocht dit topic verkeerd staan dan verontschuldig ik mij alvast bij deze.

Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 10-07 15:34

Kees

Serveradmin / BOFH / DoC
code:
1
2
3
4
Listen 81 # moet eigenlijk in ports.conf, maar mag hier ook
<VirtualHost *:81>
DocumentRoot ..etc
</VirtualHost>


Die ServerAlias is overigens behoorlijk dubbelop, daar horen aliassen van de ServerName te staan, en hoef je de ServerName niet te herhalen ;)

[ Voor 35% gewijzigd door Kees op 16-10-2014 13:06 ]

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 22:09

Hero of Time

Moderator LNX

There is only one Legend

Of in je <VirtualHost> entry een 'ServerAlias testserver' toevoegen (of aan bestaande ServerAlias) en dan op de andere apparaten het hosts bestand aanpassen, danwel lokaal een DNS in je netwerk hebben waar je 'm verwijst naar je Ubuntu.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 10-07 15:34

Kees

Serveradmin / BOFH / DoC
Dat kan ook, mar op een tablet kun je de hosts file meestal niet aanpassen, en een eigen DNS server opzetten is vaak lastig; helemaal als je de dhcp gewoon door je provider-router laat doen.

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • Kalentum
  • Registratie: Juni 2004
  • Nu online
Om dat gedoe met hosts files te vermijden kun je ook gebruik maken van http://xip.io/. Deze geeft voor bv http://myproject.127.0.0.1.xip.io het ip-adres 127.0.0.1. zo kun je dus met Apache virtualhosts gaan werken op localhost.

Acties:
  • 0 Henk 'm!

  • jdemaat
  • Registratie: April 2010
  • Laatst online: 08-07 21:32
Kees schreef op donderdag 16 oktober 2014 @ 13:05:
code:
1
2
3
4
Listen 81 # moet eigenlijk in ports.conf, maar mag hier ook
<VirtualHost *:81>
DocumentRoot ..etc
</VirtualHost>


Die ServerAlias is overigens behoorlijk dubbelop, daar horen aliassen van de ServerName te staan, en hoef je de ServerName niet te herhalen ;)
Wauw, geweldig. _/-\o_

Dit werkte meteen na apache restart, ik heb zelfs zowel ServerName als ServerAlias kunnen weglaten.
Listen werkt overigens bij mij niet als er commentaar achter staat (#...).
Krijg je een error over too many arguments.

Blijkt inderdaad dat ik een ports.conf heb. Niet eens eerder opgemerkt. 8)7

Grote dank! :D

Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 10-07 15:34

Kees

Serveradmin / BOFH / DoC
jdemaat schreef op donderdag 16 oktober 2014 @ 15:29:
[...]

Listen werkt overigens bij mij niet als er commentaar achter staat (#...).
Krijg je een error over too many arguments.

Grote dank! :D
Het was dan ook geen copy/paste config maar iets wat ik zo uit mijn hoofd neerschreef ;)

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • jdemaat
  • Registratie: April 2010
  • Laatst online: 08-07 21:32
Voor iemand die dit ook nog leest: het helpt ook een hoop als je in je firewall een exception aanmaakt voor de betreffende ports. :)

Nog een note: de betreffende website is een Wordpress site. Die werkt met absolute urls en een basis IP/domein (zoals ook andere CMSs dat doen).
Nu heb ik alle urls met search & replace moeten vervangen naar mijn wifi IP omdat alle bestanden waarnaar gelinked werd (CSS, images, ...) op de tablet niet gevonden werden.
Voor op 1 netwerk is dat geen probleem. Maar, als ik nu op een andere locatie ga werken waar ik geen statisch IP heb (dus 192.168.0.X veranderd naar 192.168.0.Y) dan moet ik opnieuw een database search & replace doen voor de nieuwe site url.

Is dit te voorkomen?

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 22:09

Hero of Time

Moderator LNX

There is only one Legend

jdemaat schreef op donderdag 16 oktober 2014 @ 16:20:
Voor iemand die dit ook nog leest: het helpt ook een hoop als je in je firewall een exception aanmaakt voor de betreffende ports. :)

Nog een note: de betreffende website is een Wordpress site. Die werkt met absolute urls en een basis IP/domein (zoals ook andere CMSs dat doen).
Nu heb ik alle urls met search & replace moeten vervangen naar mijn wifi IP omdat alle bestanden waarnaar gelinked werd (CSS, images, ...) op de tablet niet gevonden werden.
Voor op 1 netwerk is dat geen probleem. Maar, als ik nu op een andere locatie ga werken waar ik geen statisch IP heb (dus 192.168.0.X veranderd naar 192.168.0.Y) dan moet ik opnieuw een database search & replace doen voor de nieuwe site url.

Is dit te voorkomen?
Is alle content zoals CSS e.d. te vinden onder /wp-content/ ? Dan kan je namelijk ook een proxypass entry gebruiken op je default <VirtualHost *:80> entry die 't naar <VirtualHost *:81> doorsluist. Even uit 't hoofd:
code:
1
2
ProxyPass /wp-content localhost:81/wp-content
ProxyPassReverse /wp-content localhost:81/wp-content

Uiteraard is 't niet de bedoeling dat er op je :80 vhost ook een WordPress instance draait, want dan gaat 't keihard fout. Dan moet je weer met uitgebreide regels gaan werken om te kijken wat het oorspronkelijke verzoek was, waar 't vandaan kwam en dat dan weer doorsturen, als 't al kan.

Commandline FTW | Tweakt met mate

Pagina: 1