|
[+] php, a public_html
rekimere - 15-03-2010 22:38
Witajcie! Mam pewien problem i nie mogę znaleźć rozwiązania. Otóż pliki php nie wykonują się kiedy są w katalogu /home/nazwa_użytkownika/public_html. Czyli jeżeli wpiszę w przeglądarkę http://strona/~user/plik.php wyskakuje mi monit do pobrania tego pliku, jednak gdy kopiuję go do katalogu /var/www i wpisuję http://strona/plik.php wszystko działa normalnie. Trochę się naszukałem i nigdzie nie mogłem znaleźć jednoznacznej przyczyny i wyjaśnienia tego problemu, więc zgłaszam się do Was. Z góry dzięki za wszystkie odpowiedzi! :) Wersja apache - 2.2.14, php - 5.3.1-5, linux - 2.6.30-2-686 http://wklej.org/id/297636/ - apache2.conf (httpd.conf pusty) - piszcie, które konfigi jeszcze chcecie widzieć.
timor - 15-03-2010 22:43
Jeżeli nie podasz żadnego konfiga to zostaje wróżenie z fusów :)
daniel_l81 - 16-03-2010 08:07
Musisz zmienić ścieżkę z katalogu /var/www do katalogu /home/nazwa_użytkownika/public_html w pliku /etc/apache2/sites-available/default, czyli powinieneś mieć tak: DocumentRoot /home/nazwa_użytkownika/public_html <Directory /home/nazwa_użytkownika/public_html/> .... </Directory>
Po tym restart serwera apache i powinno działać.
lessmian2 - 16-03-2010 08:24
Musisz zmienić ścieżkę z katalogu /var/www do katalogu /home/nazwa_użytkownika/public_html w pliku /etc/apache2/sites-available/default
E, czekaj, nie tak szybko.
rekimere, napisz może coś więcej o systemie i konfiguracji serwera www. Na początek zamieść wyniki poleceń:
apache2ctl -M apache2ctl -S
Zamieść też pliki zawierające konfigurację Twoich VHostów. Możesz też napisać jak konfigurowałeś PHP i mod_userdir.
grzesiek - 16-03-2010 08:33
Problem zapewne leży w tym, że nie wskazałeś dla PHP gdzie mogą się znajdować skrypty, które będą interpretowane, to jest w php.ini i nazywa się chyba user_dir albo coś z root.
lessmian2 - 16-03-2010 08:54
W domyślnej konfiguracji PHP oba parametry (user_dir, doc_root) są puste i nie mają wpływu na wykonywanie skryptów. Dopóki kolega nie pokaże plików konfiguracyjnych, możemy urządzić loterię ;)
grzesiek - 16-03-2010 09:05
Stawiam na uprawnienia :) Kiedyś jak to robiłem, to też nie pamiętam abym musiał coś specjalnie robić aby PHP czytało tam pliki - tylko moduł załadować. Ale w Linuxie zawsze jest jeszcze coś do zrobienia ;)
lessmian2 - 16-03-2010 09:12
Stawiam na uprawnienia
Też o tym myślałem, ale u mnie są "normalne" - 755 - i działa.
Ale w Linuxie zawsze jest jeszcze coś do zrobienia
W tym jest większość frajdy z tego systemu :)
redelek - 16-03-2010 12:53
Hej, Miałem ostatnio taki problem. Wystarczyło poprawić linijkę w konfigu apache i ruszyło bez problemów Options Indexes FollowSymLinks MultiViews
rekimere - 16-03-2010 13:51
Dzięki za zainteresowanie! http://wklej.org/id/297846/ - apache2ctl -M http://wklej.org/id/297848/ - apache2ctl -S http://wklej.org/id/297849/ - default/000-default Uprawnienia - public_html mam 755, z user_dir i doc_root kombinowałem - wpisywałem /home/*/public_html i nic. Wszystkie opcje są standardowo, ostatnio doinstalowywałem lstat, ale nie wiem czy mógł on coś namieszać? @redelek - Która linijka konkretnie? W pierwszym poście jest apache2.conf
lessmian2 - 16-03-2010 13:59
A co mówią logi na ten temat?
rekimere - 16-03-2010 14:26
Error.log milczy na ten temat :(
redelek - 16-03-2010 14:42
Ja mam to tu <VirtualHost *:80> ServerAdmin piotr@xxx.pl ServerName xxx.xxx.pl DocumentRoot /home/user/public_html/pbw
<Directory /home/user/public_html/pbw> Options Indexes FollowSymLinks MultiViews AllowOverride all Order allow,deny allow from all </Directory> </VirtualHost>
lessmian2 - 16-03-2010 14:46
Domyślna konfiguracja mod_userdir znajduje się w /etc/apache2/mods-enabled/userdir.conf (jako link do /etc/apache2/mods-available/userdir.conf).
jasiekmarc - 16-03-2010 19:21
Rozwiązaniem problemu jest przeedytowanie pliku /etc/apache2/mods-enabled/php5.conf. W oryginale wygląda on tak: 1 <IfModule mod_php5.c> 2 <FilesMatch "\.ph(p3?|tml)$"> 3 SetHandler application/x-httpd-php 4 </FilesMatch> 5 <FilesMatch "\.phps$"> 6 SetHandler application/x-httpd-php-source 7 </FilesMatch> 8 <IfModule mod_userdir.c> 9 <Directory /home/*/public_html> 10 php_admin_value engine Off 11 </Directory> 12 </IfModule> 13 </IfModule>
Paradoksalnie zamiana Off na On nie zdaje egzaminu. Nie wiem dlaczego. W każdym razie można zakomentować odpowiednie linijki: 1 <IfModule mod_php5.c> 2 <FilesMatch "\.ph(p3?|tml)$"> 3 SetHandler application/x-httpd-php 4 </FilesMatch> 5 <FilesMatch "\.phps$"> 6 SetHandler application/x-httpd-php-source 7 </FilesMatch> 8 # <IfModule mod_userdir.c> 9 # <Directory /home/*/public_html> 10 # php_admin_value engine Off 11 # </Directory> 12 # </IfModule> 13 </IfModule>
I działa.
rekimere - 16-03-2010 20:55
Faktycznie działa jak zakomentowałem te linijki! Serdeczne dzięki! :)
zanotowane.pldoc.pisz.plpdf.pisz.plminister.pev.pl
|