Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Tak sobie ostatnio testuje nginxa głębiej niż znam go normalnie i napotkałem problem. Czy ktoś już coś takiego robił??
[b]Chodzi to na apache bez problemu, na nginx niee....[/b] nie chce.
Otóż co chce zrobić:
Wpisuje w przeglądarce adres no i listuje mi się katalog... Są tam katalogi - skrypty php ..
/usr/local/www
skrypt_php1 - punbb
skrypt_php2 -dokuwiki
skrypt_php3 - phpbb3
autoindex on; działa
Tylko kiedy wchodze w poszczególne katalogi - skrypty php; php już nie działa....
php zaimplemontowane przez php-fpm
No nie działa na standardowej konfiguracji php w nginx
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$script;
include fastcgi_params
}[/quote]
Jesli wpuszczam normalnie php na dany katalog np
root /usr/local/www/dokuwiki
gdzie od razu jest skrypt php to działa ok.
jeśli wpuszczam poziom wyżej
root /usr/local/www z autoindex nie działa z php w poszczególnych katalogach/skryptach...
Jakieś propozycje?
Offline
nie ma różnicy....
Tu jest problem skonfigurowania tego php aby działał wszedzie, gdziekolwiek jest index.php
Offline
location ~ [^/]\.php(/|$) { fastcgi_split_path_info ^(.+\.php)(/.+)$; if (!-f $document_root$fastcgi_script_name) { return 404; } fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi.conf; ##Includes our fastcgi setup fastcgi_pass unix://var/run/php55.sock; fastcgi_index index.php; }
WP, Prestashop, Phpbb3, Drupal7, FluxBB - wszystko na tym śmiga, na oddzielnych vhostach.
A to mój fastcgi.conf:
fastcgi_param PHP_ADMIN_VALUE open_basedir=$document_root:/usr/share/php:/usr/share/php5:/var/spool/php:/tmp; 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 PATH_TRANSLATED $document_root$fastcgi_path_info; fastcgi_param HOSTNAME $http_host; 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 REQUEST_SCHEME $scheme; fastcgi_param HTTPS $https if_not_empty; fastcgi_param SSL_CIPHER $ssl_cipher; fastcgi_param SSL_CLIENT_VERIFY $ssl_client_verify; fastcgi_param REMOTE_USER $ssl_client_username if_not_empty; fastcgi_param SSL_CLIENT_COMMONNAME $ssl_client_commonname if_not_empty; fastcgi_param SSL_CLIENT_EMAIL $ssl_client_email if_not_empty; fastcgi_param SSL_CLIENT_S_DN_CN $ssl_client_s_dn if_not_empty; fastcgi_param SSL_CLIENT_I_DN_CN $ssl_client_i_dn if_not_empty; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE Apache; 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 $http_host; # PHP only, required if PHP was built with --enable-force-cgi-redirect fastcgi_param REDIRECT_STATUS 200;
SOA#1
Offline
Jacekalex wdze ze php puszczasz po unix - socketach ...
Nie testowałem jeszcze tej możliwości
Każdy skrypt jako vhost?
Offline
Tak, po prostu wygodniej się ustawia redirecty dla poszczególnych skryptów, (nginx nie obrabia htacces), robię też vhosty administracyjne do skryptów chronienie autoryzacją SSL przez cert pkcs12/X509.
Cały WP:
server { server_name blog.domena.tld; root /home/www/Wordpress4; listen 0.0.0.0:80; listen [::]:80; return 301 https://$http_host$request_uri; log_not_found off; access_log off; } server { server_name blog.domena.tld; root /home/www/Wordpress4; listen 0.0.0.0:443; listen [::]:443; index index.php; ssl on; if ($request_uri ~ "^/\?wc-api" ) { return 418;} location ~ /(xmlrpc.php|wp-json) { return 418;} location / { # include /etc/nginx/naxsi/nbs.rules; try_files $uri $uri/ /index.php?$args; } location ~/wp-admin/ { return 301 https://admin.domena.tld$request_uri; log_not_found off; access_log off;} location ~/wp-login.php { return 301 https://admin.domena.tld$request_uri; log_not_found off; access_log off;} location ~ /comments-post.php { include /etc/nginx/blacklist/sblamdrop.conf; error_page 403 = http://papa.domena.tld/; } access_log /var/log/nginx/wordpress_access_log combined buffer=32k; error_log /var/log/nginx/wordpress.ssl_error_log info; location ~ /wp-config.php {return 418; log_not_found off; access_log off;} location ~ ^/wp-includes/[^/]+\.php$ { return 418; log_not_found off; access_log off; } location ~ ^/wp-includes/js/tinymce/langs/.+\.php { return 418; } location ~ ^/wp-includes/theme-compat/ { return 418; } # antyhotlink + cache location ~ \.(jpg|jpeg|png|gif|ico|css|js)$ { valid_referers none block server_names ~(.domena.tld|google.); if ($invalid_referer) { rewrite ^(.*)$ http://www.posters.ws/images/846697/i_love_porn.jpg; } expires 30d; } location ~ "/wp-content/.+\.(php|phps|txt|md|exe|bat|bin|msi)" { return 418;} location ~ “/wp-content/.(xml|css|jpeg|ico|png|gif|js|pdf)$” { allow all; log_not_found off;} location = /(favicon.ico|robots.txt|sitemap.xml) { log_not_found off; access_log off; } location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { expires max; log_not_found off; } location ~ [^/]\.php(/|$) { fastcgi_split_path_info ^(.+\.php)(/.+)$; if (!-f $document_root$fastcgi_script_name) { return 404; } fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi.conf; ##Includes our fastcgi setup fastcgi_pass unix://var/run/php55.sock; fastcgi_index index.php; } } server { server_name admin.domena.tld; root /home/www/Wordpress4; listen 0.0.0.0:443; listen [::]:443; index index.php; ssl on; ssl_verify_client optional; ssl_verify_depth 5; if ( $ssl_client_verify != SUCCESS ) {return 301 https://blog.domena.tld/index.php?status=403;} location / { try_files $uri $uri/ /index.php?$args; } location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { expires max; log_not_found off; } location ~ [^/]\.php(/|$) { fastcgi_split_path_info ^(.+\.php)(/.+)$; if (!-f $document_root$fastcgi_script_name) { return 404; } fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi.conf; ##Includes our fastcgi setup fastcgi_pass unix://var/run/php55.sock; fastcgi_index index.php; } } server { server_name admin.domena.tld; root /home/www/Wordpress4; listen 0.0.0.0:80; listen [::]:80; return 301 https://$http_host$request_uri; log_not_found off; access_log off; }
Przy okazji, jedną zmienną mam zrobione basediry w fastcgi.conf,
dla każdego skrypta działa to osobno.
php po socketach pozwala też łatwo robić takie cuda, jak kilka wersji php lub osobny demon php dla każdego pacjenta, i oczywiście uprawnienia i ACL do socketów można ustawić, co na portach TCP nie jest zbyt proste do wykonania.
Pozdro
Ostatnio edytowany przez Jacekalex (2015-05-28 17:55:38)
Offline
no z vhostami to ładnie bryka, bo znam to rozwiązanie ale zleży mi na rozwiązaniu, które przedstawiłem na samej górze
autoindex głównego katalogu,
root /usr/local/www;
a kolejny niższy poziom katalogów już bez autoindexa z php..
/usr/local/www #autoindex on
-> punbb #/usr/local/www/punbb #php
-> dokuwiki #/usr/local/www/dokuwiki #php
-> phpbb3 #/usr/local/www/phpbb3 #php
Offline
Autoindex na głównym to bułka z masłem, a poszczególne projekty bym brał w znaczniki location i wywalał na poszczególne vhosty przez [b]return 301 http://cośtam.domena.tld/[/b].
Żadna magia. ;)
Offline
bez domen. zabawa lokalna
pewne skrypty sobie lokalnie testuje.. wchodze po ip. mam je wyindexowane w katalogu głównym
Wchodze sobie w konkretny skrypt z katalogu głównego i ma działać w nim php.
Offline
To sobie zrób w /etc/hosts jakąś liną domenę z subdomenami.
Większość obecnych CMSów i tak musi mieć w konfigu jakaś domenę główną, żeby na nią przekierowywać wszystkie sznurki.
Jak chcesz na localhoście, żeby działało w folderze, to często trzeba wpisywać w konfigu skrypta domenę i ścieżkę względną, np Prestashop ani WP bez tego nie pójdą.
Offline
Time (s) | Query |
---|---|
0.00010 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00124 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.118.255.51' WHERE u.id=1 |
0.00070 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.118.255.51', 1732786619) |
0.00050 | SELECT * FROM punbb_online WHERE logged<1732786319 |
0.00090 | DELETE FROM punbb_online WHERE ident='3.15.239.50' |
0.00047 | SELECT topic_id FROM punbb_posts WHERE id=287583 |
0.00023 | SELECT id FROM punbb_posts WHERE topic_id=27440 ORDER BY posted |
0.00059 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=27440 AND t.moved_to IS NULL |
0.00005 | SELECT search_for, replace_with FROM punbb_censoring |
0.00102 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=27440 ORDER BY p.id LIMIT 0,25 |
0.00108 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=27440 |
Total query time: 0.00692 s |