Cgi/perl脚本在Monterey中显示为代码



这些脚本在升级到蒙特雷之前运行良好!我遵循了"etresoft"中关于编辑httpd.conf文件和重新启动Apache的教程,但当执行时,Perl脚本(代码(会显示在Safari中。这些脚本位于我的Sites目录中,从那里运行时可以正确执行。

有一套cgi/perl脚本,用于管理和显示家庭预算。第一个脚本打开一个数据文件,其中包含各种帐户:开支(如杂货、水电费等(和收入。该脚本显示了一个带有大表的HTML文件,表中的每一行都记录了一个帐户、到期金额和时间。脚本允许您编辑各种值。从这个表格页面中,可以调用另一个脚本,该脚本将显示当月的应付账款,并计算欠款总额、总收入和差额。

这些是对/etc/apache2/httpd.conf:进行的编辑

启用php和perl:

LoadModule php_modul/usr/local/opt/php@8.0/lib/httpd/modules/libphp.so
<FilesMatch .php$>
SetHandler application/x-httpd-php
</FilesMatch>
LoadModule perl_module libexec/apache2/mod_perl.so

取消对userdir_module:的LoadModule的注释

LoadModule userdir_module libexec/apache2/mod_userdir.so

取消对httpd-userdir.confInclude行的注释:用户主目录

Include /private/etc/apache2/extra/httpd-userdir.conf

保存了httpd.conf文件。

这是对/etc/apache2/extra/httpd-userdir.conf:的编辑

取消对*.confInclude行的注释

Include /private/etc/apache2/users/*.conf

我编辑了/etc/apache2/users/<your short user name>.conf。现在看起来是这样的:

<Directory "/Users/rjklaus/Sites/">
AddLanguage en .en
AddHandler perl-script .pl
Options Indexes MultiViews FollowSymLinks Includes ExecCGI
DirectoryIndex index.html index.cgi index.php
AllowOverride None
Require host localhost
</Directory>

在"终端"窗口中,我运行了以下命令:

chmod +a "_www allow execute" ~

我运行了apachectl configtest并收到一个"语法正常"。

接下来,我在Safari地址栏中输入了http://localhost/。我没有看到别人告诉我要期待的"它起作用了!"。相反,我得到了:

/Users/rjklaus/Ray's%20Stuff/HTML%20Budget/test.pl

"HTML预算"是"Ray’s Stuff"子目录中的一个文件(而不是目录(。文本字符串"test.pl"不在该文件中。Test.pl是我的Sites目录中的一个简短的perl脚本。

我从/usr/bin/perl运行perlv5.30.3。

Apache2有三个版本,位于/Users/Shared/子目录中,标记为:以前重新定位的项目,以前重新定位的项目1,以及以前重新定位的项目2。

只是为了确定cgi_module是否已启用?

<IfModule !mpm_prefork_module>
LoadModule cgid_module lib/httpd/modules/mod_cgid.so
</IfModule>
<IfModule mpm_prefork_module>
LoadModule cgi_module lib/httpd/modules/mod_cgi.so
</IfModule>

最新更新