Назад | Перейти на главную страницу

Как мне настроить встроенный Perl nginx для использования модулей Perl?

Я настроил 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 в разделе "Построение модуля во время компиляции".