FanPL 4 Zgłoś post Napisano Styczeń 5, 2013 Hej, niedawno postawiłem sobie na moim serwerze VPS nginx + php fm + mysql + ispconfig. Na mojej subdomenie dałem phpinfo i pokazało się ładnie, lecz jak wrzuciłem tam pliki myBB to mam błąd 500 Interial Server Error. Oto log z nginxa: 2013/01/05 02:17:26 [error] 18315#0: *3 FastCGI sent in stderr: "PHP message: PHP Warning: require_once(/var/www/clients/client0/web1/web/inc/init.php): failed to open stream: No such file or directory in /var/www/clients/client0/web1/$ PHP message: PHP Fatal error: require_once(): Failed opening required '/var/www/clients/client0/web1/web/inc/init.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/clients/client0/web1/web/global.php on line 19" while $ Błąd niby wskazuje, że nie ma pliku init.php, ale przez FileZille sprawdziłem i okazało się, że jest. Macie jakiś pomysł jak to naprawić? Udostępnij ten post Link to postu Udostępnij na innych stronach
Pan Kot 1535 Zgłoś post Napisano Styczeń 5, 2013 Tak jest. Złe chmody bądź inne zabezpieczenia, które uniemożliwiają nginx'owi dostać się do skryptu. Polecam zacząć od chown -hR www-data:www-data /var/www/, które zmieni całe /var/www/ i wszystkie podfoldery na ownera www-data (czyli defaultowego nginx). Jeśli nadal nie będzie mógł się dostać do plików to musisz sprawdzić dlaczego tak się dzieje. Może to być również jakieś zaawansowane security typu openbasedir. Jednak wciąż sądzę, że skoro jeden plik .php działa to winą może być jakiś brakujący moduł. Musiałbyś sprawdzić konkretną linijkę i jak to wygląda, szklanej kuli niestety nie mam. Zabiegi wyżej tylko upewniają nas w fakcie, że problem nie jest prostszy niż wygląda. Udostępnij ten post Link to postu Udostępnij na innych stronach
FanPL 4 Zgłoś post Napisano Styczeń 5, 2013 Wydaje mi się, że błedem może być to, że Virtual Directory Support jest wyłączony. Linjka 19(global.php)[Daje z całą funkcją]: $working_dir = dirname(__FILE__); if(!$working_dir) { $working_dir = '.'; } // Load main MyBB core file which begins all of the magic require_once $working_dir."/inc/init.php"; Udostępnij ten post Link to postu Udostępnij na innych stronach
Pan Kot 1535 Zgłoś post Napisano Styczeń 5, 2013 Wygląda na dobrze. /var/www/clients/client0/web1/web/global.php => /var/www/clients/client0/web1/web/inc/init.php Strzelam, że plik o takiej ścieżce rzeczywiście istnieje. Możesz się do niego dostać bezpośrednio? Mam na myśli http://domena.pl/inc/init.php Udostępnij ten post Link to postu Udostępnij na innych stronach
FanPL 4 Zgłoś post Napisano Styczeń 5, 2013 Do niego mogę dostać się przez FileZille. Jak wchodzę jak mówiłeś http://domena.pl/inc/init.php ładuje się i wywala 500. Udostępnij ten post Link to postu Udostępnij na innych stronach
Pan Kot 1535 Zgłoś post Napisano Styczeń 5, 2013 500 to Internal Server Error. Logi nic nam więcej nie mówią w tym przypadku? Powinny wypluć coś więcej jak wchodzimy bezpośrednio. Udostępnij ten post Link to postu Udostępnij na innych stronach
FanPL 4 Zgłoś post Napisano Styczeń 5, 2013 (edytowany) Jedynie to: 013/01/05 02:45:35 [error] 19747#0: *92 rewrite or internal redirection cycle while internally redirecting to "/error/404.html", client: IP, server: domena.pl, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:90$ (Poprawiłem strony błędów(Pliki .html na nowo wrzuciłem do /error/) Edytowano Styczeń 5, 2013 przez FanPL (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Pan Kot 1535 Zgłoś post Napisano Styczeń 5, 2013 Czuję, że gdzieś masz błąd w konfiguracji. Wkleję Ci swoje "kawałeczki". sites-available/default server { server_name jakis.serwer.pl www.jakis.serwer.pl; root /jakis/path; index index.php index.html index.htm; location ~ \.php$ { include /etc/nginx/fpm.conf; } location ~ /\. { deny all; } } fpm.conf fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_intercept_errors on; fastcgi_ignore_client_abort off; fastcgi_connect_timeout 60; fastcgi_send_timeout 180; fastcgi_read_timeout 180; fastcgi_buffer_size 128k; fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_params fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_FILENAME $request_filename; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; fastcgi_param HTTPS $https; # PHP only, required if PHP was built with --enable-force-cgi-redirect fastcgi_param REDIRECT_STATUS 200; Upewnij się, że nigdzie nie masz żadnego problemu. Strzelałbym na SCRIPT_FILENAME, możliwe że gdzieś masz błąd w konfiguracji i źle interpretuje całość. Anyway moje MyBB na powyższej konfiguracji działa. Posprawdzaj, potestuj . Udostępnij ten post Link to postu Udostępnij na innych stronach
FanPL 4 Zgłoś post Napisano Styczeń 5, 2013 Więc tak, fpm.conf nie mogłem znaleźć . Znalazłem za tofastci_params i mam takie same. A to mój plik (Wygenerowany przez ispconfig, trochę zmieniony) subdomeny. server { listen *:80; server_name kamil.iside.pl www.kamil.iside.pl; root /var/www/kamil.iside.pl/web; index index.html index.htm index.php index.cgi index.pl index.xhtml; error_page 400 /error/400.html; error_page 401 /error/401.html; error_page 403 /error/403.html; error_page 404 /error/404.html; error_page 405 /error/405.html; error_page 500 /error/500.html; error_page 502 /error/502.html; error_page 503 /error/503.html; recursive_error_pages on; location = /error/400.html { internal; } location = /error/401.html { internal; } location = /error/403.html { internal; } location = /error/404.html { internal; } location = /error/405.html { internal; } location = /error/500.html { internal; } location = /error/502.html { internal; } location = /error/503.html { internal; } error_log /var/log/ispconfig/httpd/kamil.iside.pl/error.log; access_log /var/log/ispconfig/httpd/kamil.iside.pl/access.log combined; location ~ \.php$ { try_files $uri =404; include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9010; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_script_name; fastcgi_intercept_errors on; } } Udostępnij ten post Link to postu Udostępnij na innych stronach
Pan Kot 1535 Zgłoś post Napisano Styczeń 5, 2013 (edytowany) Nikt nie powiedział, że musisz mieć fpm.conf. Ja po prostu sobie zesplitowałem redirect na parę bardziej zrozumiałych kroków. Wyrzuć: fastcgi_pass 127.0.0.1:9010; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_script_name; fastcgi_intercept_errors on; Wklej: fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass 127.0.0.1:9010; fastcgi_index index.php; include fastcgi_params; fastcgi_intercept_errors on; fastcgi_ignore_client_abort off; Nie zapomnij o: service nginx restart Sprawdź . Edytowano Styczeń 5, 2013 przez Archi (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
FanPL 4 Zgłoś post Napisano Styczeń 5, 2013 Niestety nie działa . Może to wina tego, że dafault mam w zupełnie innym katalogu(usr/share/nginx)? Udostępnij ten post Link to postu Udostępnij na innych stronach
Pan Kot 1535 Zgłoś post Napisano Styczeń 5, 2013 To dla pewności zamień jeszcze: include fastcgi_params; na: include /usr/share/nginx/fastcgi_params; Udostępnij ten post Link to postu Udostępnij na innych stronach
FanPL 4 Zgłoś post Napisano Styczeń 5, 2013 (edytowany) Nginx przy włączaniu wywala bład. Ale w /usr/share[...] nie ma fastcgi_params bo tam w katalogu www trzymam po prostu stronę główną, a subdomeny w /var/www. Odziwo zrobiłem drugą subdomenę i zrobiłem w niej folder i wsadziłem tam plik .php i odtworzyło ładnie. Tylko z tym MyBB jakiś problem :/ @edit Na subdomenę wgrałłem mybb i podczas wgrywanie, jak się jeszcze /inc nie zuplałdowało to był zwyłky error php falied to open (tamto require_once). A jak się już wgrało to znowu w logu jest: 2013/01/05 18:40:19 [error] 17550#0: *8 rewrite or internal redirection cycle while internally redirecting to "/error/404.html", client: 66.249.78.4, server: test.iside.pl, request: "GET /ratethread.php?tid=32&rating=3&my_post_key=80da2$ Edytowano Styczeń 5, 2013 przez FanPL (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Pan Kot 1535 Zgłoś post Napisano Styczeń 5, 2013 Wywal to: location = /error/404.html { internal; } Udostępnij ten post Link to postu Udostępnij na innych stronach
FanPL 4 Zgłoś post Napisano Styczeń 5, 2013 Usunąłem tam, to co dotyczyło stron błędów. Teraz wygląda to tak: http://www.tinypic.pl/4hfm6b3il9ka Udostępnij ten post Link to postu Udostępnij na innych stronach
Pan Kot 1535 Zgłoś post Napisano Styczeń 5, 2013 Wygląda dobrze. Dla pewności service nginx restart i powiedz jak działa ew. co mówią logi. Udostępnij ten post Link to postu Udostępnij na innych stronach
FanPL 4 Zgłoś post Napisano Styczeń 5, 2013 Inteiral =/ 2013/01/05 02:45:35 [error] 19747#0: *92 rewrite or internal redirection cycle while internally redirecting to "/error/404.html", client: Moje ip, server: domena.pl, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:90$ Ten sam błąd =/ Udostępnij ten post Link to postu Udostępnij na innych stronach
Pan Kot 1535 Zgłoś post Napisano Styczeń 5, 2013 Coś czuję tu jakieś rewrite'y bo to nie jest normalne. Spróbuj tymczasowo wyrzucić wszystko związane z error/404.html, zarówno z sites-available/default, jak i nginx.conf (o ile coś znajdziesz). Na defaultowej instalacji nginx'a z php-fpm wszystko śmiga więc rzeczywiście ISP musiało coś namieszać. Udostępnij ten post Link to postu Udostępnij na innych stronach
FanPL 4 Zgłoś post Napisano Styczeń 5, 2013 Powoli tracę do tego siły. apps.vhost <--To od ISP odnośni się do wszystkiego chyba, bo server name _ , lecz nie wiem co tam za bardzo pozmieniać. Specjalnie nie zależy mi zresztą na ISP, może polecisz coś darmowego, co będzie OK. W sumie to hosting tylko dla kilku moich znajomych i dla mnie przede wszystkim. Udostępnij ten post Link to postu Udostępnij na innych stronach
Pan Kot 1535 Zgłoś post Napisano Styczeń 5, 2013 Szczerze? Właśnie przez takie rzeczy nie mam zaufania do ustrojstwa dopisującego się "na twardo" do aplikacji . Jeśli chodzi o panel to nie mam, ale na czystym systemie wystarczy apt-get installl nginx && apt-get install php5-fpm, dodać do głównego /sites-available/default bridge do traktowania PHP i jesteśmy w domu. Nie jestem fanem graficznych dodatków, ale jak już muszę to zawsze darzę respektem darmowego Webmin'a, który co prawda samego nginxa w sobie nie obsługuje, ale to nie jest jakoś bardziej "wymagane", bo całość kolejnego vhosta działa tak samo: server { server_name forum.domena.pl www.forum.domena.pl; root /path/to/forum; index index.php index.html index.htm; access_log /var/log/nginx/forum.access.log; error_log /var/log/nginx/forum.error.log; location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_intercept_errors on; fastcgi_ignore_client_abort off; } location ~ /\. { deny all; } } I wszystko śmiga . Udostępnij ten post Link to postu Udostępnij na innych stronach
FanPL 4 Zgłoś post Napisano Styczeń 5, 2013 Mam jeszcze pytanko, czy jeśli Cloudflare obsługuje moje DNS'y do domen, to potrzebny mi bind? Udostępnij ten post Link to postu Udostępnij na innych stronach
Pan Kot 1535 Zgłoś post Napisano Styczeń 5, 2013 Nie, niepotrzebny. Bind jest potrzebny tylko i wyłącznie gdy nameservery Twojej domeny kierują na IP VPS'a. Udostępnij ten post Link to postu Udostępnij na innych stronach
FanPL 4 Zgłoś post Napisano Styczeń 5, 2013 Za całą pomoc serdecznie dziękuje - Działa wszystko pięknie Udostępnij ten post Link to postu Udostępnij na innych stronach