【问题标题】:Unable to connect to mysql database through HTML php script [duplicate]无法通过HTML php脚本连接到mysql数据库[重复]
【发布时间】:2020-08-10 00:37:52
【问题描述】:

我有一个运行 MariaDB 的树莓派(操作系统:Ubuntu 18.04,本地 IP:192.168.1.84),我对其进行了配置,以便我的桌面(操作系统:Ubuntu 18.04,本地 IP:192.168.1.76)可以访问它。我在桌面上运行了一个交互式 php shell,一切都很好:

$ php -v
PHP 7.2.24-0ubuntu0.18.04.6 (cli) (built: May 26 2020 13:09:11) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.24-0ubuntu0.18.04.6, Copyright (c) 1999-2018, by Zend Technologies
$ php -a
php > $conn = new mysqli("192.168.1.84", "root", "", "test");
php > $result = $conn->query("SELECT * FROM testing");
php > echo $result->num_rows;
3

但是,我编写了一个快速的 html 脚本来显示这些信息:

<html>
<body>

<?php
$conn = new mysqli("192.168.1.84", "root", "", "test");
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

echo "<p>Connection successful</p>";
?>

</body>
</html>

当我尝试在浏览器中打开 html 文件时,this 是它的样子(一个包含一段 php 代码的页面)。我不知道该页面发生了什么。

我是 html/php 新手,感谢任何帮助。

【问题讨论】:

    标签: php html mysql mariadb


    【解决方案1】:

    PHP 是一种服务器端脚本语言。你不能通过在浏览器中打开 PHP 文件来直接运行它,因为它需要一个解释器来输入,然后你会得到你想要的输出。

    您在命令行中所做的正是它应该如何工作的。您将 php 代码输入 PHP 交互式 shell,然后它使用解释器相应地执行代码并向您显示输出。

    正如您所提到的,您使用的是 Ubuntu,因此为了在浏览器中执行代码,您需要安装 PHP 以及 Apache 或 Nginx 等 HTTP 服务器。

    安装它们之后,您将启动 HTTP 服务器进程,然后您将在 /var/www/html/ 下创建一个扩展名为 .php 的文件,假设您安装了 Apache HTTP 服务器。

    当您这样做时,您将能够使用以下链接通过浏览器访问您的文件:

    http://localhost/index.php
    

    您可以执行以下命令以在 Ubuntu 中获取工作服务器:

    sudo add-apt-repository ppa:ondrej/apache2
    
    sudo apt-get update
    
    sudo apt-get install apache2
    
    sudo apt-get install php7.2
    
    sudo service apache2 start
    

    如果您想设置始终推荐的 VHOST,您可以通过以下方式进行:

    执行命令创建 VHOST 配置文件:

    sudo nano /etc/apache2/sites-available/project1.loc.conf
    

    然后复制以下配置并粘贴到文件中并保存conf文件:

    <VirtualHost *:80>
        ServerName project1.loc
        ServerAlias project1.loc
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/project1.loc
        <Directory /var/www/html/project1.loc/>
                Options All
                AllowOverride All
                Require all granted
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
    

    接下来,启用 VHOST 并重启 apache:

    sudo a2ensite project1.loc.conf
    
    sudo systemctl restart apache2
    

    在您的/etc/hosts 中添加以下行:

    127.0.0.1 project1.loc
    

    每次更改 hosts 文件后刷新 DNS 缓存:

    sudo systemd-resolve --flush-cache
    

    接下来执行以下命令创建项目目录:

    sudo mkdir /var/www/html/project1.loc
    

    接下来,执行以下命令来创建您的 PHP 文件(您的代码所在的位置):

    touch /var/www/html/project1.loc/index.php
    

    然后您可以在浏览器中使用以下链接访问您的文件:

    http://project1.loc/index.php
    

    当然一开始会是空白的,只需编辑/var/www/html/project1.loc/index.php 更进一步。祝你好运!

    【讨论】:

      【解决方案2】:

      您无法在 HTML 文件中执行 PHP 代码,请将文件重命名为 index.php。没有像 HTML 脚本 这样的东西。 HTML 代表超文本标记语言,没有提及脚本。

      但是,如果您的 HTTP 服务器配置正确以处理带有*.php 扩展名的文件,您可以像在示例中那样生成包含 PHP 代码片段的 HTML 代码。

      此外,我可以看到您需要安装一些 HTTP 服务器,即 XAMPP 并添加一个虚拟主机。您不能只是在浏览器中打开 PHP 文件,并希望它能正常工作。

      当您使用 Ubuntu 时,您可能可以使用 apt(该死的 oldschool-cool)see this aricle 安装堆栈。

      【讨论】:

      • 请使用@UmairShahYousafzai 的回答,因为它专门针对您的操作系统描述了问题。
      【解决方案3】:

      首先,将文件扩展名从.html更改为.php

      其次,使用本地 HTTP 服务器,如 WAMPXAMPPLaragon(或其他适合您的系统)来运行 PHP。

      【讨论】:

        猜你喜欢
        • 2019-03-25
        • 2012-12-29
        • 2018-09-09
        • 2018-06-14
        • 2019-02-03
        • 1970-01-01
        • 2016-11-22
        • 2016-07-30
        • 2013-08-06
        相关资源
        最近更新 更多