[英]Cgi/perl scripts display as code in Monterey
这些脚本在升级到 Monterey 之前运行良好! 我遵循了“etresoft”关于编辑httpd.conf
文件并重新启动 Apache 的教程,但是当执行 Perl 脚本(代码)时,它显示在 Safari 中。脚本位于我的Sites
目录中,从那里运行时可以正确执行。
有一套 cgi/perl 脚本 function 可以管理和提供家庭预算。 第一个脚本打开一个包含各种账户的数据文件:支出(如杂货、公用事业等)和收入。 该脚本提供了一个带有大表格的 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.conf
的Include
行:用户主目录
Include /private/etc/apache2/extra/httpd-userdir.conf
保存了httpd.conf
文件。
这是对/etc/apache2/extra/httpd-userdir.conf
所做的编辑:
取消注释*.conf
的Include
行
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>
从“终端”window 我运行了以下命令:
chmod +a "_www allow execute" ~
我运行了apachectl configtest
并收到了“Syntax OK”。
我接下来在 Safari 地址栏中输入http://localhost/
。 我没有看到“它有效”。 有人告诉我期望:相反,我得到了:
/Users/rjklaus/Ray's%20Stuff/HTML%20Budget/test.pl
“HTML Budget”是“Ray's Stuff”子目录中的文件(不是目录)。 文本字符串“test.pl”不在该文件中。 Test.pl 是我的站点目录中的一个简短的 perl 脚本。
我正在从 /usr/bin/perl 运行 perl v5.30.3。
Apache2 的三个版本位于 /Users/Shared/ 子目录中,标记为:Previously Relocated Items、Previously Relocated Items 1 和 Previously Relocated Items 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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.