Lighttpd 在 chrooted jail 中安装 perl、mysql 支持
Perl 是实用的提取和报告语言,它非常著名,被许多 Web 应用程序使用。libdbd perl mysql 共享库为 MySQL 数据库提供了 Perl5 数据库接口。
致读者
下面的文章是关于在安全的 chrooted jail 中运行 lighttpd perl。
如果您只需要运行 perl cgi-bin 程序,请遵循之前的文章。
您可以通过 mod_fastcgi 或 mod_cgi 安装 perl 支持。以下是在 chrooted lighttpd 设置中与 MySQL 一起运行基于 perl 的应用程序的基本步骤
本文是保护和在 chrooted jail 中运行 Lighttpd的一部分。
步骤#1:启用mod_cgi
# lighty-enable-mod cgi
输出:
Available modules: auth cgi cml fastcgi proxy simple-vhost ssi ssl trigger-b4-dl userdir Already enabled modules: Enabling cgi: ok Run /etc/init.d/lighttpd force-reload to enable changes
现在根据我们的 chrooted jail 设置修改文件 /etc/lighttpd/conf-enabled/10-cgi.conf 文件:按如下方式修改文件:
# cp /etc/lighttpd/conf-enabled/10-cgi.conf /root/
# vi /etc/lighttpd/conf-enabled/10-cgi.conf
server.modules += ( "mod_cgi" )
alias.url += ( "/cgi-bin/" => "/home/lighttpd/cgi-bin/" )
cgi.assign = (
".pl" => "/usr/bin/perl",
)
保存并关闭文件。
步骤#2:为 perl 准备文件系统
# mkdir /webroot/usr/share -p
# mkdir /webroot/usr/lib -p
# mkdir /webroot/home/lighttpd/cgi-bin/ -p
# chown www-data:www-data /webroot/home/lighttpd/cgi-bin/
步骤#3:把 Perl 放进 jail
将 /usr/bin/perl 复制到 /webroot/usr/bin 目录:# cp /usr/bin/perl /webroot/usr/bin
安装 perl 使用的共享对象/库:# /bin/l2chroot /usr/bin/perl
现在复制存储在 /usr 目录中的所有 perl 文件和模块:
# cp -avr /usr/share/perl /webroot/usr/share
# cp -avr /usr/share/perl5 /webroot/usr/share
# cp -avr /usr/lib/perl /webroot/usr/lib
# cp -avr /usr/lib/perl5 /webroot/usr/lib
步骤#4:将 Perl MySQL DBD 共享库放入 jail
复制加载 perl mysql.so 所需的共享库(存储在 /webroot/usr/lib/perl5/auto/DBD/mysql/mysql.so)。输入以下命令:
# /bin/l2chroot /usr/lib/perl5/auto/DBD/mysql/mysql.so
请注意,您刚刚启用了 perl mysql 支持。但是 /usr/lib/perl5/ 目录包含 perl 使用的其他共享对象。您需要启用它们才能使用其余的 Perl 功能。
步骤#5:重新启动lighttpd
# /etc/init.d/lighttpd restart
测试你的 perl+mysql 设置
将以下文件复制到您的 /webroot/home/lighttpd/cgi-bin/ 目录。
打开网络浏览器并运行 http://yourdomain.com/cgi-bin/db.pl 和 http://yourdomain.com/cgi-bin/index.pl