这些脚本在升级到蒙特雷之前运行良好!我遵循了"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.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>
在"终端"窗口中,我运行了以下命令:
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>