【问题标题】:PHP is not working on Ubuntu Apache serverPHP 无法在 Ubuntu Apache 服务器上运行
【发布时间】:2017-09-22 02:50:58
【问题描述】:

我刚刚在 Ubuntu 17.04 上安装了 php 和 apache 服务器,但我的 .php 文件在我的浏览器上无法运行。

index.php:

<!DOCTYPE html>
<html>
<body>
<h1>Welcome!</h1>
<?php
  echo "Hello World!";
?>
</body>
</html>

只有Welcome! 出现在浏览器上,当我检查页面时,我看到 php 代码正在被注释。我已经启动了 apache 服务器,但仍然不知道出了什么问题。请帮帮我,谢谢!

$ php -v

PHP 7.0.15-1ubuntu4 (cli) (built: Feb 28 2017 21:33:59) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.15-1ubuntu4, Copyright (c) 1999-2017, by Zend Technologies

$ sudo /etc/init.d/apache2 status

apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: active (running) since Tue 2017-04-25 14:38:55 +07; 10min ago
  Process: 11578 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS)
  Process: 11604 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
 Main PID: 11619 (apache2)
    Tasks: 55 (limit: 4915)
   Memory: 9.7M
      CPU: 429ms
   CGroup: /system.slice/apache2.service
           ├─11619 /usr/sbin/apache2 -k start
           ├─11663 /usr/sbin/apache2 -k start
           └─11664 /usr/sbin/apache2 -k start

Apr 25 14:38:55 g5080 systemd[1]: Starting The Apache HTTP Server...
Apr 25 14:38:55 g5080 apachectl[11604]: AH00558: apache2: Could not reliably determin…sage
Apr 25 14:38:55 g5080 systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.

【问题讨论】:

标签: php apache ubuntu


【解决方案1】:

在您的网络服务器中检查以下配置

sudo apt-get install apache2 php5 libapache2-mod-php5`

它将安装您需要的一切,并将启动支持 PHP 的 apache 服务器。

要验证 php 模块是否已加载,请键入:

   a2query -m php5

如果未启用,则加载:

   sudo a2enmod php5

然后重启 apache:

   sudo service apache2 restart

【讨论】:

  • 我使用的是 Ubuntu 17.04,所以 libapache2-mod-php5 不起作用。
  • 我使用的是 18.04 并使用 sudo apt-get install libapache2-mod-php5.6 进行安装。它奏效了。
【解决方案2】:

当你在 ubuntu 17.04 中时

您可以按照以下步骤操作

sudo apt-get install apache2 php libapache2-mod-php7.0 mysql-server php-mbstring php7.0-mbstring phpmyadmin     //install
sudo service apache2 restart    //restart

再试一次你的文件(index.php)

【讨论】:

  • a2query -m php7.0 返回No module matches php7.0
  • 试试 a2query -m php
  • 我仍然收到No module matches php
  • @HuyVo 检查回复
  • 很好的答案。为我工作:)
【解决方案3】:

尝试这个命令实际上对我有用

sudo apt-get install php libapache2-mod-php php-mysql php-curl php-gd php-pear php-imagick php-imap php-mcrypt php-recode php-tidy php-xmlrpc

【讨论】:

    【解决方案4】:

    也许只是一个特例:
    我想直接在“/var/www/vhosts/.../somePage/index.php”的子目录中调用一个php文件(从旧VM恢复后)。 不可能,只是下载 index.php

    将“.../somePage/”目录从“/var/www/vhosts/...”移动到“/var/www/”后,index.php 将正确运行(调用http://localhost/somedir/index.php

    【讨论】:

      【解决方案5】:

      针对 AWS Ubuntu 18.04 的测试夹具

      第 1 步 - 在 AWS Server 中,创建 Ubuntu 18.04,通过 putty 连接,搜索 apache2.conf 文件。 步骤 2 - 在目录 [$ sudo vi apache2.conf] 中打开 apache2.conf,按I 编辑文件,您只需在文件底部添加以下内容:

      <FilesMatch \.php$>
      ​SetHandler application/x-httpd-php
      ​</FilesMatch>
      

      保存并关闭 apache2.conf。 第 3 步(通常不需要) - 启用/禁用模块 为了让 PHP 正常运行,您必须禁用 mpm_event 模块并启用 mpm_prefork 和 php7 模块。为此,请返回终端窗口并发出命令:

      sudo a2dismod mpm_event && sudo a2enmod mpm_prefork && sudo a2enmod php7.2
      

      第 4 步 - 重新启动 Apache 2

      sudo service apache2 restart
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-05-16
        • 1970-01-01
        • 1970-01-01
        • 2012-10-15
        • 2014-05-04
        • 2019-09-11
        • 2022-01-18
        • 1970-01-01
        相关资源
        最近更新 更多