Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Internet a sítě => Téma založeno: Laethnes 30 Září 2008, 20:45:34
-
Zkouším si nastavit u sebe na Ubuntu8.04 server Apache2; jen pro "domácí" účely. Pracuju na nějakých webových stránkách v PHP a je zbytečné při každé změně souboru to uploadovat; prostě chci mít funkční server, ale nepotřebuji, aby byl přístupný zvenčí (statickou IP stejně nemám :3).
Nainstaloval jsem si Apache2 s modulem PHP5. Mám ale problém; když mám data na implicitním /var/www/, vše funguje (včetně PHPčka), ale když si nastavím adresu do svého domovského adresáře, najednou to píše Forbidden (v prohlížeči). Disk mám rozdělen na několik částí a webová data prostě do / nepatří, na to je /home resp. mám speciální ntfs (společná komunikace s Win) disky pro data. Ve fstab jsem jim nastavil maximální práva (777, resp. umask=000), takže soubory práva 100% mají (ověřeno). Nefunguje to ani když v /etc/apache2/sites-enabled/000-my_site nastavím přímo adresu, ani když ji nastavím na /var/www a /var/www udělám odkazem (sym); ani když takový odkaz vložím do této složky (v tom případě serverový výpis zobrazuje ostatní složky/soubory, jen ne ty linky). Neví někdo co s tím? V nastavení mám 'Options FollowSymLinks'.
A nebylo by možné nějak spustit Apache jako normální user? Přičemž vím, že
- port musí být vyšší jako 1024
- musím nastavit logy takové, které může daný uživatel přepisovat
Mimochodem; protože Apache používám jen k výše uvedeným důvodům, je zbytečné ho startovat vždy při startu PC. Prošel jsem všechny /etc/rc*.d a všechny soubory, které jsem tam našel a měly v názvu apache2 jsem přejmenoval z S* na K*. Je to tak správně, nebo mám udělat ještě něco?
Startuju jej pak /etc/init.d/apache2 start.
EDIT: ještě jsem zapomněl; pochopitelně apache zapínám přes sudo, ale firefox (v němž testuji) mám jako normální user a taky jsem zkusil ve fstabu změnit uid i gid disku, kde se nachází inkriminované stránky, na roota; stále stejný výsledek...
- pochopitelně obsah servru musí být uživateli přístupný
ale pořád nefunguje
-
Chtělo by to ten soubor /etc/apache2/sites-available/default (resp. ten, který využíváte) - bota bude v něm.
-
Chtělo by to ten soubor /etc/apache2/sites-available/default (resp. ten, který využíváte) - bota bude v něm.
Oki, ale já ho moc neměnil :3
NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost
#DocumentRoot /home/laethnes/Data/5_Programovani/3_WebServer/diskw/www/
DocumentRoot /var/www/
#DocumentRoot /home/laethnes/public_html/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
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 /home/laethnes/Data/5_Programovani/3_WebServer/diskw/linuxdata/log/error.log
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
#CustomLog /home/laethnes/Data/5_Programovani/3_WebServer/diskw/linuxdata/log/access.log combined
CustomLog /var/log/apache2/access.log combined
ServerSignature On
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>
-
No to vidím :D
NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost
ServerName localhost
DocumentRoot /home/laethnes/Data/5_Programovani/3_WebServer/diskw/www/
<Directory />
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</virtualhost>
-
No to vidím :D
NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost
ServerName localhost
DocumentRoot /home/laethnes/Data/5_Programovani/3_WebServer/diskw/www/
<Directory />
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</virtualhost>
Huh? To co píšeš tam mám dát? Tož, možu to zkusit, ale upozorňuji, že defaultně to vypadalo podobně a to takto:
NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
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
ServerSignature On
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>
-
jj, udělej si zálohu toho originálu, pak kompletně odmaž obsah (stejně ty ostatní věci nepotřebuješ) a dej tam to, co jsem psal
-
jj, udělej si zálohu toho originálu, pak kompletně odmaž obsah (stejně ty ostatní věci nepotřebuješ) a dej tam to, co jsem psal
Hm, bohužel; stále 403 Forbidden :/
EDIT: Od jisté doby se snažím dělat zálohy při takových operacích pravidelně *kapka*
-
Apache předpokládám doznal po oné úpravě restartu?
Zkus nastavit ten domovský adresář na nějaký na ext3 systému (tj. kdekoliv jinde, než na ntfs či /var/www)
-
Apache předpokládám doznal po oné úpravě restartu?
Zkus nastavit ten domovský adresář na nějaký na ext3 systému (tj. kdekoliv jinde, než na ntfs či /var/www)
Ne, nedoznal restartu ale rovnou znovuspuštění, protože předtím už neběžel :3
Mno, ale tentokrát ho doznal, ale ... nic. Pořád nefunguje... (/home/laethnes/public_html - součást ext3 /home)
EDIT: zkusil jsem (pro jistotu) /var/www/ a to zas funguje...
EDIT2: /home/laethnes/public_html/ je na 777
BTW oprava, nebyla to složka local_html, ale public_html
-
apache2ctl configtest
ten adresář /home/laethnes/local_html má jaká práva?
-
apache2ctl configtest
Configtesty jsem prováděl už dřív (než jsem se ptal (zapomněl jsem na to :3) ) a vše je OK. Teda skoro vše:
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
Syntax OK
Ale ta chyba domény se objevuje i při startu/vypnutí apache a podle mě to není tím, protože když je nastaven na /var/www/, zobrazí se taky, ale v tom případě funguje.
(Mimochodem, stejná hláška (u configtestu) se objevuje jak s, tak bez použití suda)
ten adresář /home/laethnes/local_html má jaká práva?
Viz můj předposlední přízpěvek: edit; 777, (uid, gid: moje (laethnes) )
-
Té chyby bych si v tuto chvíli vůbec nevšímal, neb je nepodstatná (a pokud si jí chcete všímat, tak projděte fórum, řešilo se to několikrát)
Napadá mne ještě jedna možnost - pomocí .htaccess přepisujete nastavení daného adresáře (což je povoleno) a on neumožňuje nepřímé odkazy na index - zkuste do daného adresáře vytvořit třeba soubor index.php a odkázat se naň přímo - tj. http://localhost/index.php ... také by možná mnohému napověděly logy ve /var/log/apache2
-
Té chyby bych si v tuto chvíli vůbec nevšímal, neb je nepodstatná (a pokud si jí chcete všímat, tak projděte fórum, řešilo se to několikrát)
Napadá mne ještě jedna možnost - pomocí .htaccess přepisujete nastavení daného adresáře (což je povoleno) a on neumožňuje nepřímé odkazy na index - zkuste do daného adresáře vytvořit třeba soubor index.php a odkázat se naň přímo - tj. http://localhost/index.php ... také by možná mnohému napověděly logy ve /var/log/apache2
Však já si jí moc nevšímám :3.
Ne, přímé použití index.php nepomáhá. .htaccess používám aktivně, mám tam
allow from all
Mě bohužel errorlog nic nenapověděl ani nenapovídá:
[Tue Sep 30 21:49:04 2008] [error] [client 127.0.0.1] (13)Permission denied: access to / denied
[Tue Sep 30 21:49:30 2008] [notice] caught SIGWINCH, shutting down gracefully
[Tue Sep 30 21:49:41 2008] [notice] Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.3 with Suhosin-Patch configured -- resuming normal operations
[Tue Sep 30 21:49:47 2008] [error] [client 127.0.0.1] (13)Permission denied: access to / denied
[Tue Sep 30 21:49:48 2008] [error] [client 127.0.0.1] (13)Permission denied: access to / denied
[Tue Sep 30 21:50:51 2008] [notice] caught SIGWINCH, shutting down gracefully
[Tue Sep 30 21:51:01 2008] [notice] Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.3 with Suhosin-Patch configured -- resuming normal operations
[Tue Sep 30 21:52:16 2008] [notice] caught SIGWINCH, shutting down gracefully
[Tue Sep 30 21:52:26 2008] [notice] Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.3 with Suhosin-Patch configured -- resuming normal operations
[Tue Sep 30 21:52:33 2008] [error] [client 127.0.0.1] (13)Permission denied: access to / denied
[Tue Sep 30 21:53:36 2008] [error] [client 127.0.0.1] (13)Permission denied: access to / denied
[Tue Sep 30 22:05:25 2008] [error] [client 127.0.0.1] (13)Permission denied: access to / denied
[Tue Sep 30 22:05:28 2008] [error] [client 127.0.0.1] (13)Permission denied: access to /index.php denied
Prostě píše, co i firefox...
A v access.log nevidím nic, co by bylo s problémem spojeno:
127.0.0.1 - - [30/Sep/2008:21:12:42 +0200] "GET /MojeTvorba/ HTTP/1.1" 200 2030 "http://localhost/list.php" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092510 Ubuntu/8.04 (hardy) Firefox/3.0.3 (.NET CLR 3.5.30729)"
127.0.0.1 - - [30/Sep/2008:21:12:44 +0200] "GET /MojeTvorba/Rehtoni/ HTTP/1.1" 200 9784 "http://localhost/MojeTvorba/" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092510 Ubuntu/8.04 (hardy) Firefox/3.0.3 (.NET CLR 3.5.30729)"
127.0.0.1 - - [30/Sep/2008:21:12:46 +0200] "GET /MojeTvorba/Rehtoni/ HTTP/1.1" 200 9784 "http://localhost/MojeTvorba/" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092510 Ubuntu/8.04 (hardy) Firefox/3.0.3 (.NET CLR 3.5.30729)"
127.0.0.1 - - [30/Sep/2008:21:12:46 +0200] "GET /MojeTvorba/Rehtoni/rehtoni/files/base/page/menu_up_0.jpg HTTP/1.1" 304 - "http://localhost/MojeTvorba/Rehtoni/" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092510 Ubuntu/8.04 (hardy) Firefox/3.0.3 (.NET CLR 3.5.30729)"
127.0.0.1 - - [30/Sep/2008:21:12:46 +0200] "GET /MojeTvorba/Rehtoni/rehtoni/files/base/page/cz.jpg HTTP/1.1" 304 - "http://localhost/MojeTvorba/Rehtoni/" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092510 Ubuntu/8.04 (hardy) Firefox/3.0.3 (.NET CLR 3.5.30729)"
127.0.0.1 - - [30/Sep/2008:21:12:46 +0200] "GET /MojeTvorba/Rehtoni/rehtoni/files/base/page/en.gif HTTP/1.1" 304 - "http://localhost/MojeTvorba/Rehtoni/" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092510 Ubuntu/8.04 (hardy) Firefox/3.0.3 (.NET CLR 3.5.30729)"
127.0.0.1 - - [30/Sep/2008:21:12:46 +0200] "GET /MojeTvorba/Rehtoni/rehtoni/files/base/page/menu_main_0.jpg HTTP/1.1" 304 - "http://localhost/MojeTvorba/Rehtoni/" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092510 Ubuntu/8.04 (hardy) Firefox/3.0.3 (.NET CLR 3.5.30729)"
Samozřejmě v obout případech uvádím jen konce souborů. Jo a mimochodem, ty soubory z access.log jsou ty z /var/www/.
-
To vidím :)
ok, tak jinak:
sudo su
su www-data
cat /home/laethnes/public_html/index.php
Co to vypíše? :)
-
To vidím :)
Já jen pro jistotu :3
ok, tak jinak:
sudo su
su www-data
cat /home/laethnes/public_html/index.php
Co to vypíše? :)
laethnes@Laethnes:~$ sudo su
[sudo] password for laethnes:
root@Laethnes:/home/laethnes# su www-data
$ cat /home/laethnes/public_html/index.php
cat: /home/laethnes/public_html/index.php: Permission denied
$
-
A jako normální uživatel:
ls -a /home/laethnes/public_html/
-
A jako normální uživatel:
ls -a /home/laethnes/public_html/
Ten druhý řádek jsem přidal jen kdyby se náhodou hodil :3
laethnes@Laethnes:~$ ls -a /home/laethnes/public_html/
. .. index.php Rehtoni
laethnes@Laethnes:~$ ls -la /home/laethnes/public_html/
total 16
drwxrwxrwx 3 laethnes laethnes 4096 2008-09-30 22:23 .
drwxr-xr-- 51 laethnes laethnes 4096 2008-09-30 22:23 ..
-rwxrwxrwx 1 laethnes laethnes 30 2008-09-30 22:23 index.php
drwxrwxrwx 7 laethnes laethnes 4096 2008-09-22 21:04 Rehtoni
-
Upadlo mi písmenko :) Už bych asi neměl více pít :)
Mrknu na to zítra. ;)
[edit]
A příspěvek číslo 2288 je tak hezké pořadí, že je opravu čas jít do pelechu :)
[/edit]
-
Upadlo mi písmenko :) Už bych asi neměl více pít :)
Mrknu na to zítra. ;)
[edit]
A příspěvek číslo 2288 je tak hezké pořadí, že je opravu čas jít do pelechu :)
[/edit]
Heh, ok ;). Zatím moc moc dík za pomoc a snahu. Taky jsem si říkal, že už bych šel spat, koneckonců, když bude nejhůř, pořád funguje /var/www/ ;)
-
Tipuju problém v nastavení práv /home/laethnes
Pokud vypada ls -ld /home/laethnes takto:
drwx------
Tak je problém jasný, apache se nedostane ani do home, tedy se nedostane ani do žádného podadresáře v něm. Osobně bych preferoval "vyvlastnění" adresáře /var/www tímto:
chown -R laethnes /var/www
Když budou všechny soubory tvoje, neměl by mít apache problém to jenom číst, ty nebudeš mín na každém normálním systému problém tam zapisovat. Aby jsi to měl blíž z home, můžeš si udělat link
cd && ln -s /var/www
Jinak puštění apache do tvého adresáře jde provést asi 2 způsoby:
sudo chgrp www-data /home/laethnes
chmod g+r /home/laethnes
Nebo o něco méně bezpečný:
chmod o+x /home/laethnes
Druhým pustíš všechny uživatele systému do svého home, a záleží jenom na nastavení jednotlivých podadresářů. PGP a spol si nastavení podadresářů hlídají, ale třeba historii tvého brouzdání z opery nebo firefoxu si lze snadno přečíst :) Pokud to používáš sám, není to tak hrozný způsob, ale zvyk je železná košile a pustit někam všechny kvůli jednomu je špatný zvyk. Nicméně na lepší nastavení to chce hraní se skupinami, pro jednoduchou funkčnost tohle stačí.
-
Pokud vypada ls -ld /home/laethnes takto:
drwx------
Ne tak úplně; drwxr-xr--; dobré upozornění :3
Tak je problém jasný, apache se nedostane ani do home, tedy se nedostane ani do žádného podadresáře v něm. Osobně bych preferoval "vyvlastnění" adresáře /var/www tímto:
chown -R laethnes /var/www
To už jsem udělal dávno; apache tam měl přístup, ale ne formou odkazů :3 do /home/laethnes/...
sudo chgrp www-data /home/laethnes
WOOOOOW!!! Dřív, než jsem udělal cokoli jiného na svém PC, zaujala mě tato řádka, tak jsem to zkusil - a ONO TO FUNGUJE! Dokonce jsem takto nastavil JEN ten /home/laethnes/ (bez rekurzívy) a apache má pěkný přístup i do hloubky ;).
Skvělé díky ;) už to funguje absolutně bez problémů ;)
Druhým pustíš všechny uživatele systému do svého home, a záleží jenom na nastavení jednotlivých podadresářů. PGP a spol si nastavení podadresářů hlídají, ale třeba historii tvého brouzdání z opery nebo firefoxu si lze snadno přečíst :) Pokud to používáš sám, není to tak hrozný způsob, ale zvyk je železná košile a pustit někam všechny kvůli jednomu je špatný zvyk. Nicméně na lepší nastavení to chce hraní se skupinami, pro jednoduchou funkčnost tohle stačí.
Mno, já jsem jediný, kdo na tom mojem PC pracuje, ale souhlasím; až budu někdy spravovat PC pro víc uživatelů (a to nebude trvat tak dlouho :3), chci mít znalosti a zvyky, které s tím počítají ;)
Takže všem moc díky za snahu a pomoc, jste skvělí ;). Jen jedna věc: kde najdu tlačítko pro editaci názvu topicu, abych tam mohl přidat "[VYŘEŠENO]"? *kapka*
-
Stačí upravit název topicu :) Udělám to.
[edit]
Tak neudělám, nějak mne fórum nechce pustit :(
[/edit]