简体   繁体   English

PHP 在 Ubuntu Apache 服务器上不工作

[英]PHP is not working on Ubuntu Apache server

I just installed php and apache server on Ubuntu 17.04 but my .php file doesn't work on my browser.我刚刚在 Ubuntu 17.04 上安装了 php 和 apache 服务器,但我的.php文件在我的浏览器上不起作用。

index.php:索引.php:

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

Only Welcome!Welcome! appeared on the browser, and when I inspect the page I see php code is being commented.出现在浏览器上,当我检查页面时,我看到 php 代码正在被评论。 I have already started apache server and still have no idea what is wrong.我已经启动了 apache 服务器,但仍然不知道出了什么问题。 Please help me out, thank you!请帮帮我,谢谢!

$ 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.

while you are in ubuntu 17.04当你在 ubuntu 17.04

you can follow this steps你可以按照这个步骤

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

and give it another try for your file(index.php)再试试你的文件(index.php)

Check the below configuration in your web server检查您的网络服务器中的以下配置

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

It will install everything you need and will start the apache server with support for PHP.它将安装您需要的一切,并将启动支持 PHP 的 apache 服务器。

To verify that the php module is loaded, type:要验证 php 模块是否已加载,请键入:

   a2query -m php5

if not enabled, then load with:如果未启用,则加载:

   sudo a2enmod php5

and restart apache:并重新启动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

Tested Fixture for AWS Ubuntu 18.04适用于 AWS Ubuntu 18.04 的测试装置

Step 1 - In AWS Server, have created Ubuntu 18.04, connect via putty, search for apache2.conf file.步骤 1 - 在 AWS Server 中,已创建 Ubuntu 18.04,通过 putty 连接,搜索 apache2.conf 文件。 Step 2 - With apache2.conf open in the directory [ $ sudo vi apache2.conf ], press I for editing file, all you have to do is add the following to the bottom of the file:步骤2 - 在目录[ $ sudo vi apache2.conf ]中打开$ sudo vi apache2.conf ,按I编辑文件,您只需在文件底部添加以下内容:

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

Save and close apache2.conf.保存并关闭 apache2.conf。 Step 3 (usually not needed) - Enable/disable modules In order to get PHP to function properly, you have to disable the mpm_event module and enable the mpm_prefork and php7 modules.第 3 步(通常不需要) - 启用/禁用模块 为了让 PHP 正常运行,您必须禁用 mpm_event 模块并启用 mpm_prefork 和 php7 模块。 To do this, go back to your terminal window and issue the command:为此,请返回终端窗口并发出命令:

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

Step 4 - Restart Apache 2第 4 步 - 重新启动 Apache 2

sudo service apache2 restart

Maybe just a special case:也许只是一个特例:
I wanted to directly call a php file inside a subdirectory of "/var/www/ vhosts /.../somePage/index.php" (after restoring from an old VM).我想直接调用“/var/www/ vhosts /.../somePage/index.php”子目录中的php文件(从旧VM恢复后)。 It wasn't possible, the index.php would just be downloaded这是不可能的,index.php 只会被下载

After moving the ".../somePage/" directory from "/var/www/vhosts/..." to "/var/www/" the index.php would run correctly (calling http://localhost/somedir/index.php )将“.../somePage/”目录从“/var/www/vhosts/...”移动到“/var/www/”后,index.php 将正确运行(调用http://localhost/somedir/索引.php )

Package php-mcrypt is not available, but is referred to by another package. this error comes after giving the command 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 Package php-mcrypt 不可用,但被另一个 package 引用。此错误发生在给出命令 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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM