从一个符号链接的目录执行cgi脚本

我有一个可以通过Apache修改父目录的脚本。 EW。 mybin / a.pl,修改../data/目录。 我想创build各种别名,例如。 localhost / www / mybin / a.pl localhost / zzz / mybin / a.pl可以修改不同的目录 – 比如www / data和zzz / data。 我想保留mybin的一个版本。 我试图创build指向单个目录(main / mybin)的符号链接www / mybin和zzz / mybin。 问题在于,Apacheparsing了符号链接,并在main / mybin中执行脚本,而不pipepath如何。 是否有可能configurationApache,使我的脚本从符号链接内调用?

我不认为答案会在Apache中find,而在CGI本身中。 如果所有者是相同的,Apache将遵循符号链接,那么我会看看你没有提供的CGI脚本。

我的猜测是在引用脚本修改的数据目录时使用了相对path。 如果你打算使用带有符号链接的脚本,那么这不是一个理想的情况,因为相对path总是和文件本身而不是符号链接的位置相同。

当我试图做这样的事时,我通常会使用Apache传递的SCRIPT_FILENAME CGI环境variables。 这应该有被调用的path,这将是符号链接的位置。 这个path将是/的绝对path。 这将具有CGI脚本名称,因此您可以将其../data ,然后附加../data或从path信息中获取基本目录名称以确定正确的数据目录。

您可以使Apache不遵循所需目录中的Options -FollowSymLinks符号链接。