获取Apache的空白PHP页面

 静静我想你啦 发布于 2023-02-03 12:48

在新设置的digitalOcean云服务器(CentOS)中,我安装了php和Apache.网络服务器正常运行:

[root@a2m5cent01 httpd]# service httpd status
httpd (pid  11232) is running...
[root@a2m5cent01 httpd]# php --version | head -1
PHP 5.3.3 (cli) (built: Dec 11 2013 03:29:57) 

但是如果我尝试访问任何php页面,浏览器会显示空白页面(白页).

以下是我到目前为止所做的排除故障的方法:

    创建了包含以下内容的页面:.从浏览器查看时显示空白页面.

    只是为了确保,apache指向正确的目录,在.html那里放置一个静态页面,并且在浏览器中看到它很好,所以apache正在工作,目录是正确的.

    /etc/php.ini,改变display_errors指令On.还是空白页面

    在Apache配置文件(/etc/httpd/conf/httpd.conf)中找到了这一行Include conf.d/*.conf.在conf.d目录中,有一个php.conf包含以下行的文件: LoadModule php5_module modules/libphp5.so.确保此.so文件实际存在于此处.

    在同一个文件中我也有这两行:AddHandler php5-script .phpAddType text/html .php

    从CLI执行php页面,它工作正常 - 所以php在本地工作.

那为什么它总是在浏览器上显示空白/白页?我还缺少什么?

编辑 根据@Nathan的建议,

    我检查了Apache错误日志文件,看不到任何报告错误.

    /etc/php.ini说,php error_log位于syslog.所以我检查/var/log/messages但找不到任何PHP错误消息

    接下来我HTML在包含phpinfo()调用的php文件中放了一些正常.有趣的是,我发现即使是普通的HTML文本也不会出现.它仍然产生空白页面.

    然后我检查了Apache access日志.惊喜!GET我试图在浏览器中加载任何PHP文件都没有请求.但GET请求所有非PHP文件都有200返回代码.

Apache 甚至没有记录任何PHP文件的访问请求.知道为什么会这样吗?

2 个回答
  • 看看你的phpinfo()脚本.

    <?php
    phpinfo();
    ?>
    

    错过了第一个"?"背后的"php" 会给出一个空白页面

    2023-02-03 12:49 回答
  • 我认为你的apache安装错误.这就是为什么你在网络服务器上看不到任何php页面的原因.清除删除所有现有的应用程序,如httpd,php,php-fpm,php-cli等,并尝试按此顺序清理isntall

    yum install httpd -y
    yum install php php-common php-cli php-gd php-curl php-fpm -y
    

    然后确保你重新启动你的httpd服务器.

    service httpd restart
    

    安装mod_fastcgi:

    yum install  mod_fastcgi
    

    启动服务:

    service php-fpm start
    

    重启Apache:

    service httpd restart
    

    5.使用PHP-FPM配置Apache

    打开fastcgi.conf文件:

    nano /etc/httpd/conf.d/fastcgi.conf
    

    将其添加到文件末尾:

    <IfModule mod_fastcgi.c>
                    DirectoryIndex index.html index.shtml index.cgi index.php
                    AddHandler php5-fcgi .php
                    Action php5-fcgi /php5-fcgi
                    Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
                    FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization
    </IfModule>
    

    在"FastCgiWrapper"之后进行搜索并确保将其设置为"off"然后保存文件.

    / usr/lib/cgi-bin /目录必须存在,因此我们创建它:

    mkdir /usr/lib/cgi-bin/ 
    

    如果安装并启用了mod_php,我们需要将其禁用,以便在/etc/httpd/conf.d/php.conf中打开配置:

    nano /etc/httpd/conf.d/php.conf
    

    注释掉AddHandler和AddType行,使其如下所示:

    #
    # PHP is an HTML-embedded scripting language which attempts to make it
    # easy for developers to write dynamically generated webpages.
    #
    <IfModule prefork.c>
      LoadModule php5_module modules/libphp5.so
    </IfModule>
    <IfModule worker.c>
      LoadModule php5_module modules/libphp5-zts.so
    </IfModule>
    #
    # Cause the PHP interpreter to handle files with a .php extension.
    #
    #AddHandler php5-script .php
    #AddType text/html .php
    #
    # Add index.php to the list of files that will be served as directory
    # indexes.
    #
    DirectoryIndex index.php
    #
    # Uncomment the following line to allow PHP to pretty-print .phps
    # files as PHP source code:
    #
    #AddType application/x-httpd-php-source .phps
    

    保存文件并重启Apache:

    service httpd restart
    

    2023-02-03 12:51 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有