为什么我的 php 脚本不起作用

发布于 2024-08-22 13:41:03 字数 344 浏览 7 评论 0原文

我想做的(最初)如下:

<?php
phpinfo();
?>

我正在运行两个不同的 Web 服务器。如果我尝试在 Firefox 中打开上述内容,在任何文件名下,使用来自 apache 的 :80 端口,它只会回显上述内容。

如果我尝试从端口 8888 上的 python 扭曲 Web 服务器以任何文件名打开上述内容,我会收到 http 500 错误(CGI 脚本错误

脚本标头过早结束。)!

我正在运行 Gentoo linux。我已经用不同的方式安装和重新安装了cgi。任何其他文件(不使用 CGI)都会按预期由两个 Web 服务器提供。

All I want to do (initially) is the following:

<?php
phpinfo();
?>

I have two different web servers running. If I try to open the above in firefox, Under any filename, with the :80 port from apache, it merely echoes the above.

If I try to open the above, as any filename, from a python twisted web server on port :8888, I get a http 500 error (CGI Script Error

Premature end of script headers.)!

I am running Gentoo linux. I have installed and re-installed cgi different ways. Anything other file, not using CGI, is served up as expected with both web servers.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

绿光 2024-08-29 13:41:03

获胜者是:

<IfDefine PHP5>
    # Load the module first
    <IfModule !mod_php5.c>
            LoadModule php5_module    modules/libphp5.so
            AddHandler php5-script php
            AddHandler php5-script html
            AddType text/html       php
    </IfModule>

    # Set it to handle the files
    <FilesMatch "\.ph(p5?|tml)$">
            SetHandler application/x-httpd-php
    </FilesMatch>

    <FilesMatch "\.phps$">
            SetHandler application/x-httpd-php-source
    </FilesMatch>

    DirectoryIndex index.php index.phtml

我还不知道自己在做什么。我所知道的是我达到了预期的效果:我的根 htdocs 目录中的任何 *.php 或 *.html 文件都将正确呈现 php SCRIPTS。我在网络帖子中发现很多关于这意味着什么的混乱。我的php脚本以开头,以?>结尾 没必要写,也没有必要在 *.php 文件中写出任何 http 标头。

And the winner is:

<IfDefine PHP5>
    # Load the module first
    <IfModule !mod_php5.c>
            LoadModule php5_module    modules/libphp5.so
            AddHandler php5-script php
            AddHandler php5-script html
            AddType text/html       php
    </IfModule>

    # Set it to handle the files
    <FilesMatch "\.ph(p5?|tml)$">
            SetHandler application/x-httpd-php
    </FilesMatch>

    <FilesMatch "\.phps$">
            SetHandler application/x-httpd-php-source
    </FilesMatch>

    DirectoryIndex index.php index.phtml

I don't really know what I am doing yet. All I know is I achieved the desired effect: any *.php or *.html file in my root htdocs directory will correctly render php SCRIPTS. I found a lot of confusion in web posttings about what this entails. My php scripts start with <? and end with ?> It was not necessary to write <?php, nor is it necessary to write out any http headers in a *.php file.

灼疼热情 2024-08-29 13:41:03

你不需要将 php 作为 cgi-bin 运行。只需将文件放在 htdocs 文件夹下即可。

确保您使用 LoadModule 在 httpd.conf 中加载了 mod_php5

并重新启动服务器 -> apachectl restart

它将开箱即用

you need not run the php as a cgi-bin. just put the file under htdocs folder.

make sure you loaded mod_php5 in the httpd.conf using LoadModule

and restart the server -> apachectl restart

it will work out of the box

看春风乍起 2024-08-29 13:41:03

您需要首先输出 CGI 的标头:

<?php
echo "Content-type: text/html\n";
echo "\n";

phpinfo();
?>

请参阅CGI 文档了解更多信息。

编辑:

在httpd下,您需要将脚本放在cgi-bin/中并通过那里访问它,例如http://example.com/cgi- bin/phpinfo.php

You need to output the headers for CGI first:

<?php
echo "Content-type: text/html\n";
echo "\n";

phpinfo();
?>

Refer to the CGI documentation for more info.

EDIT:

Under httpd, you need to put the script in cgi-bin/ and access it via there, e.g. http://example.com/cgi-bin/phpinfo.php.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文