@89109983838

Nginx возвращает содержимое php файла Opencart?

Есть сайтик на Opencart крутится на связке Nginx + php5-fpm. все нормально - за исключением одной проблемы! Один из модулей выдает содержимое себя (php) вместо обработки запроса. Вообщем к примеру:
пути обрабатываются как положено:
к товарам site.ru/index.php?route=product/product&product_id=11
к одному из модулей site.ru/index.php?route=product/pricelist

А вот запрос site.ru/index.php?route=module/click/order возвращает содержимое файла.
(притом click это файл модуля, order - функция в нем)
В точной копии сайта на Аpache - данной проблемы нет!!! поэтому грушу на свои знания настройки nginx

основное содержание файла настройки Nginx под сайт:
server {
	listen        80;
	server_name   site.ru;
	server_tokens off;
	client_body_buffer_size 128k;
	charset utf8;
	client_max_body_size 500m;
	
	root /var/www/web/site.ru;
	index index.php;
	location ~*  .(jpg|jpeg|png|gif|ico|css|js)$ { expires 365d; }
	
	location /admin { index index.php; }
	location / { try_files $uri @opencart; }
	location @opencart { rewrite ^/(.+)$ /index.php?_route_=$1 last; }
	
	rewrite ^/sitemap.xml$ /index.php?route=feed/google_sitemap;
	
	location  ~ \.php$ {
	fastcgi_pass 127.0.0.1:9001;
	fastcgi_index index.php;
	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	include fastcgi_params;
	}
	
	}


подскажите куда копать???
  • Вопрос задан
  • 880 просмотров
Решения вопроса 1
@89109983838 Автор вопроса
htaccess стандарт скажем так!
Options +FollowSymlinks
Options -Indexes
<FilesMatch "\.(tpl|ini|log)">
 Order deny,allow
 Deny from all
</FilesMatch>

RewriteEngine On
RewriteBase /
RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

ничего с этим связного нет!

Дало в том почему nginx отдает выше указанное как статику, а не передаёт на обработку php5-fpm.
################################## ПОЗДНЕЕ###
пол проблемы решилось элементарно:
Оказывается файл php начинался с <? а не с <?php поэтому не воспринимался как скрипт php!!!!
обрабатываться он начал! только целиком, а не отдельная в нем функция которую вызываем
..... public function order() { ....
соответственно это тоже не функционально..... т.к. выдает не то что нужно!
####################
Добавлю что в запросе передаются строковые данные методом post - может nginx их не передает??? поэтому и обработка слетает?
##############################РЕШЕНИЕ###############

Отключение gzip в настрйоках nginx решило проблему с POST запрсами!
Никто не подскажет как обойти это!? или думаю лучше создам отдельную тему!
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
в htaccess родном что?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы