Apache2 DocumentRoot

Razne diskusije o Ubuntu-server projektu

Apache2 DocumentRoot

PostPostao/la noobuntu » 22 pro 2009, 15:41

Ovo se tiče manje Ubuntu servera, više Apache web servera, pa možda i nije najbolje mjesto za pitati, ali kako su linux admini obično i dobri web server admini, usuđujem se objaviti! :P

Situacija je slijedeća:
Napravio sam jedne stranice u Drupal CMS-u i radio sam ih na live-serveru. Sada su stranice u pogonu, međutim potrebno je vršiti neke izmjene koje ne bih htio raditi, a da ih prethodno nisam negdje testirao. Stoga sam odlučio složiti si kod kuće jedan Ubuntu LAMP server. Instalacija je prošla u redu, prebacio sam bazu i CMS s live na moj lokalni server, ali imam sljedeći problem: vidi se samo početna stranica, a nijedan drugi link naravno ne radi. Error.log pokazuje slijedeće (primjer):

[Mon Dec 21 11:28:07 2009] [error] [client 192.168.1.4] File does not exist: /var/www/poklanjanje.com/faq, referer: http://guardian-s01/poklanjanje.com/


Jasno mi je što piše, međutim ne znam kako to riješiti. Ono što bih ja htio kao krajnji rezultat je slijedeće:

da svakom projektu kojeg spremim u /var/www/%projectname% pristupam preko http://%projectname%/ dakle, bez imena servera u putanji poveznice. Poželjna je mogućnost pristupa iz WAN-a, ali samo pod šifrom. Meni je trenutno najbitnije da to radi samo unutar mog LAN-a.

Kako da to ostvarim? Siguran sam da ovdje ima majstora kojima je ovo mačji kašalj!

Moje znanje o linuxu bi okvalificirao kao "napredni korisnik vječito žedan i gladan nečeg novog na linuxu" (ne morate znači pisati baš svaku instrukciju).

EDIT: upravo sam se nečeg sjetio. Da li je ovdje problem možda što bih ja trebao postaviti DocumentRoot da bude isti kao i na live serveru? Mislim da je tamo /home/%USER%/public_html/ ?
Zadnja izmjena: noobuntu; 22 pro 2009, 15:47; ukupno mijenjano 1 put/a.
noobuntu
Jr. Member
Jr. Member
 
Postovi: 59
Pridružen/a: 12 ruj 2008, 10:32

Odg: Apache2 DocumentRoot

PostPostao/la Davor » 22 pro 2009, 16:04

moja datoteka koja se nalazi u direktoriju: /etc/apache2/sites-available/default

izgleda ovako

Kod: Označi sve
<VirtualHost *:80>
   ServerAdmin webmaster@localhost

   DocumentRoot /home/ovdje tvoj user/public_html/
   <Directory />
      Options FollowSymLinks
      AllowOverride None
   </Directory>
   <Directory /home/davor/public_html/>
      Options Indexes FollowSymLinks MultiViews
      AllowOverride None
      Order allow,deny
      allow from all
   </Directory>

   ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
   <Directory "/usr/lib/cgi-bin">
      AllowOverride None
      Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
      Order allow,deny
      Allow from all
   </Directory>

   ErrorLog /var/log/apache2/error.log

   # Possible values include: debug, info, notice, warn, error, crit,
   # alert, emerg.
   LogLevel warn

   CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>


i onda pristupam http://localhost
Avatar
Davor
Sr. Member
Sr. Member
 
Postovi: 271
Pridružen/a: 29 lis 2005, 09:18

Odg: Apache2 DocumentRoot

PostPostao/la Kingdaemon » 22 pro 2009, 22:21

Mislim da nemozes izostaviti hostname iz URLa. Kako ce browser znati kome poslati request? Stavi DocumentRoot na /var/www i onda pristupaj sa http://localhost/projectname ,ako su ti projekti u /var/www

Svejedno je di ti je DocumentRoot postavljen.. logika je ista.

Za pristup izvana trebas samo znati svoj IP ili si preko DynDNSa mozes omoguciti resolvanje  dinamickog IPa preko odabrane domene :)

Za ove errore izvoli pasteat VirtualHost konfiguraciju za trazenu stranicu :D

edit: E sori! sjetio sam se:D mozes to sa named virtual hostovima!
evo ti primjer: http://httpd.apache.org/docs/1.3/vhosts/name-based.html
ima dosta toga na netu:D
i samo si dodas te domene u svoj /etc/hosts file
192.168.0.100      www.domain1.com&nbsp; na primjer
tako kad stisnes u browser www.domain1.com on ode tebi/sebi doma:D
Zadnja izmjena: Anonymous; 23 pro 2009, 00:10; ukupno mijenjano 1 put/a.
what are we going to do tonight Brain? same thing as every night Pinky..
try to take over the world!
Avatar
Kingdaemon
Full Member
Full Member
 
Postovi: 205
Pridružen/a: 01 sij 2009, 01:34
Lokacija: Under The Sun

Odg: Apache2 DocumentRoot

PostPostao/la noobuntu » 23 pro 2009, 00:09

Nisam se možda dovoljno jasno izrazio. Moj LAMP server je na odvojenom računalu na kojem je instaliran Ubuntu server OS i na koji se spajam preko ssh (imam LAN od 5 računala). Do sada se razvoj vršio na lokalnom web serveru, ali sam se odlučio na zaseban server i zbog još nekih drugih potreba. Tako da localhost ne može ni biti kad server nije lokalno na mom računalu. Hostname mogu izostaviti (ili bi bar morao moći) i upotrijebiti domainname (preko kojeg se onda nađe host), tj. projectname u mom slučaju.

Ja želim da izbjegnem

http://servername/projectname/any/other/path


jer želim imati

http://projectname/any/other/path


Mislim da ste u pravu kad kažete da DocumentRoot nema veze s time. Vjerojatno mi treba DNS server, samo nisam baš siguran ni što ni kako. Možda će netko tko je već radio nešto s time bolje znati.

Konfiguracija je default, nije ništa dirano u postavke (još).
Zadnja izmjena: noobuntu; 23 pro 2009, 00:12; ukupno mijenjano 1 put/a.
noobuntu
Jr. Member
Jr. Member
 
Postovi: 59
Pridružen/a: 12 ruj 2008, 10:32

Odg: Apache2 DocumentRoot

PostPostao/la Kingdaemon » 23 pro 2009, 00:19

Netrebas DNS server za takvu sitnicu! koristi /etc/hosts na svom kompu ,a na tom LAMP serveru samo stavi te domene pod ServerName od pojedinog virtualhosta :D procitaj post prije!:D
what are we going to do tonight Brain? same thing as every night Pinky..
try to take over the world!
Avatar
Kingdaemon
Full Member
Full Member
 
Postovi: 205
Pridružen/a: 01 sij 2009, 01:34
Lokacija: Under The Sun

Odg: Apache2 DocumentRoot

PostPostao/la Kingdaemon » 23 pro 2009, 02:30

Sori bio sam traljav:D evo ovo je minimalno, za dalje prouci dokumentaciju :)

U svom /etc/hosts dodaj sljedece:
Kod: Označi sve
192.168.0.100    sarma1.com
192.168.0.100    sarma2.com

Naravno ukucaj svoj IP :D

Na LAMPu:
Negdje u apache conf fileovima(/etc/apache2/httpd.conf ili apache2.conf) moras imat ovo:
Kod: Označi sve
NameVirtualHost *:80


Zatim napravi file projects u /etc/apache2/sites-available i u njega:
Kod: Označi sve
<VirtualHost *:80>
    DocumentRoot "/var/www/sarma1.com"
    ServerName sarma1.com
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/var/www/sarma2.com"
    ServerName sarma2.com
</VirtualHost>


onda u terminalu iz sites-available(mozda mozes i od bilo kuda)
sudo a2ensite projects

sudo apache2ctl restart
what are we going to do tonight Brain? same thing as every night Pinky..
try to take over the world!
Avatar
Kingdaemon
Full Member
Full Member
 
Postovi: 205
Pridružen/a: 01 sij 2009, 01:34
Lokacija: Under The Sun


Natrag na Općenito

Na mreži

Trenutno korisnika/ca: / i 1 gost.

cron