какую конфигурацию прописать в nginx, чтобы файлы .phps обрабатывались php как исходники показывались с подсветкой соответственно?
какой-то fastcgi_param ?
хочу показать код на своем сервере
Что-то не уверен я, что в случае с fastcgi это возможно. В общем если ничего не получится, напиши просто файлик с highlight_file($filename) и в него все запросы
Потому что в апач модуле все построено на миме, и mod_php принимает решение что показывать именно на его основе. Fastcgi совсем другой sapi и там этого вообще может не быть.
Так что, наверно, что-то вроде
Потому что в апач модуле все построено на миме, и mod_php принимает решение что показывать именно на его основе. Fastcgi совсем другой sapi и там этого вообще может не быть.
Так что, наверно, что-то вроде
#define PHP_MAGIC_TYPE "application/x-httpd-php"
#define PHP_SOURCE_MAGIC_TYPE "application/x-httpd-php-source"
....
/* Determine if we need to parse the file or show the source */
if (strncmp(r->handler, PHP_SOURCE_MAGIC_TYPE, sizeof(PHP_SOURCE_MAGIC_TYPE) - 1) == 0) {
zend_syntax_highlighter_ini syntax_highlighter_ini;
php_get_highlight_struct(&syntax_highlighter_ini);
highlight_file((char *)r->filename, &syntax_highlighter_ini TSRMLS_CC);
} else {
.......
В fpm sapi ничего подобного нет. Можно, конечно, сделать для fpm sapi патч (и вместо mime type юзать какую-то специальную переменную среды), но щас такого ничего нет.
с fcgi, я так понимаю, это решалось через запуск отдельного инстанса fcgi с флагом -s, поскольку у cgi/fcgi нет mime type'ов, он получает только имя файла и др. параметры и конечное действие - оно одно.
для fpm как-то никогда не было необходимости.
насчет патча: добавлять нестандартные переменные в качестве флага - это не очень разумно имо.
разумный вариант - добавить настройку в конфиг fpm и по определённому расширению файла (предположительно .phps) отдавать раскрашенный исходник, причем по дефолту это выключить.
как все сложно
решение miksir-а через скрипт в 1 строку, в принципе, сойдет, спасибо
правда, включать его придется на каждый домен, но другого пути пока, похоже, нет
location ~ \.phps$ {
fastcgi_pass unix:/var/run/php-fcgi.sock;
include fastcgi_params.default;
fastcgi_param SCRIPT_FILENAME /usr/local/lib/php/hightlight_source.php;
}
# should go before if u have \.php rather then \.php$
location ~ \.php { #