Я настроил nginx для использования определенной версии Perl.
$ sudo /opt/nginx/sbin/nginx -V
nginx version: nginx/0.8.54
built by gcc 4.1.2 20080704 (Red Hat 4.1.2-46)
TLS SNI support disabled
configure arguments: --with-debug --with-http_ssl_module --with-md5=auto/lib/md5 --with-sha1=auto/lib/sha1 --with-perl=/opt/perl/bin/perl --with-http_gzip_static_module --user=apache --group=apache --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --prefix=/opt/nginx
Я создал два модуля Perl на основе EmbeddedPerlMinifyJS: MinifyJS.pm и MinifyCSS.pm, которые находятся в том же каталоге, что и файл nginx.conf. В разделе http файла конфигурации у меня есть следующие четыре строки:
perl_require JavaScript/Minifier.pm;
perl_require CSS/Minifier.pm;
perl_require MinifyJS.pm;
perl_require MinifyCSS.pm;
В моем разделе сервера у меня есть следующее:
location ~ \.js$ {
perl MinifyJS::handler;
}
location ~ \.css$ {
perl MinifyCSS::handler;
}
Когда я запускаю nginx, я получаю сообщение об ошибке «perl_require».
$ sudo /opt/nginx/sbin/nginx
[emerg]: unknown directive "perl_require" in /opt/nginx/conf/nginx.conf:31
Итак, как мне настроить nginx для использования встроенного Perl?
(Кстати, "perl_modules" также генерирует неизвестную директиву.)
Я увидел ответ сразу после публикации. Вы должны добавить --with-http_perl_module
(и, возможно, --with-perl_modules_path
) при запуске configure
.
Это было найдено в EmbeddedPerlModule в разделе "Построение модуля во время компиляции".