PHP 不在 Ubuntu Apache 服务器上工作



我刚刚在 Ubuntu 17.04 上安装了 php 和 apache 服务器,但我的.php文件在我的浏览器上不起作用。

索引.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.

当你在 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

并为您的文件(索引.php)再试一次

在 Web 服务器中检查以下配置

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

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

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

a2query -m php5

如果未启用,则加载:

sudo a2enmod php5

并重新启动 Apache:

sudo service apache2 restart

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

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

针对 AWS Ubuntu 18.04 测试的夹具

步骤1 - 在AWS服务器中,创建了Ubuntu 18.04,通过腻子连接,搜索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

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

从"/var/www/vhosts/..." 移动".../somePage/"目录到"/var/www/"索引.php将正常运行(调用 http://localhost/somedir/index.php)

软件包 php-mcrypt 不可用,但被另一个包引用。 此错误是在发出命令后出现的 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

EDIT 2023:与Rasbian Debian Bullseye和Debian Bookworm一起工作。

您需要编辑文件/etc/apache2/apache2.conf并添加到文件末尾:

SetHandler application/x-httpd-php

然后重新加载apache2.service

sudo systemctl restart apache2.service

然后检查服务是否正确加载:

sudo systemctl status apache2.service

最新更新