ďťż
 
 
   [+] php, a public_html
 
 

Tematy

 
    
 

 

 

 

[+] 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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • minister.pev.pl

  •  

     


     

     
    Copyright 2003. MĂłj serwis