【发布时间】:2016-03-31 22:07:12
【问题描述】:
我对与数据库通信的概念有冲突。
如果我有一个网站,我不能直接访问 MySQL,我需要一个 PHP 的 Web 服务器来与 MySQL 通信,PHP 将使用 HTML 与网站通信,对吗? 阿帕奇的作用是什么? 如果我们有这些工具,为什么还需要 WampServer?我们可以创建自己的服务器并让软件在其上运行。
我正在为我的大学做一个高级项目,但由于对这些概念的理解不足,我不知道我想使用什么工具。
【问题讨论】:
我对与数据库通信的概念有冲突。
如果我有一个网站,我不能直接访问 MySQL,我需要一个 PHP 的 Web 服务器来与 MySQL 通信,PHP 将使用 HTML 与网站通信,对吗? 阿帕奇的作用是什么? 如果我们有这些工具,为什么还需要 WampServer?我们可以创建自己的服务器并让软件在其上运行。
我正在为我的大学做一个高级项目,但由于对这些概念的理解不足,我不知道我想使用什么工具。
【问题讨论】:
PHP 不是网络服务器,它只是一种运行在网络服务器之上的语言。 Apache 是 Web 服务器。 PHP 在 Apache 之上运行。使用 WampSever/XAMP/LAMP 等工具的原因只是将这些软件捆绑在一起。安装 PHP、Apache、MySQL 等并将它们配置为一起工作可能需要一段时间。 WAMP/XAMP/LAMP 可以更轻松地快速部署这些软件包。
【讨论】:
Apache 是一个 Web 服务器,它通过 HTTP 协议接收请求,并以文件的内容或脚本的结果进行响应。
PHP 是一种服务器端脚本语言(在此上下文中)。当 Apache 收到对此类文件的请求时,它会以将其作为程序运行的输出作为响应。
PHP 可以与 MySQL 等数据库交互以存储和检索数据。
WampServer 是所有这些的预打包集合,可帮助您快速启动并运行开发环境。
【讨论】:
(这将是对@marwan评论“我的项目是包含大型数据库的android应用程序的评论,所以如果我想使用服务器,我需要使用php吗?并且只使用php用于网站,那么我可以将什么用于 android 应用程序?”,但字符用完了)
@Marwan 您可以将您的 android 应用程序直接连接到数据库,尽管不建议这样做,Why don't connect android to database directly?,有很多不这样做的原因,安全性是一个主要问题。 Php 用于 Web 服务,这些 Web 服务可能会或可能不会呈现为人类可读的网页。许多 Web 服务用于创建旨在供其他程序使用的输出。 android 应用程序将使用其中一种服务,例如 RESTful api (http://www.drdobbs.com/web-development/restful-web-services-a-tutorial/240169069) 从客户端(android 应用程序)检索数据或从数据库中检索数据或将处理从客户端(android 应用程序)转移到服务器。
除了 php 和 apache 之外,还有更多的语言和更多的服务器可以使用,但这是一个非常常见的设置(我个人最喜欢的)。
如果您想了解 apache 和 php,我建议您在 WAMP 服务器上设置 LAMP 服务器,该软件是开源的,因此是一个很好的学习工具 (https://www.atlantic.net/blog/why-startups-prefer-lamp-to-wamp/)。如果你没有 linux 机器,你可以在 VM 上运行 LAMP 堆栈,https://www.virtualbox.org/、https://www.vmware.com/products/player,甚至可能是 rasberry pi https://www.element14.com/community/community/raspberry-pi/raspberrypi_projects/blog/2014/02/24/raspberry-pi-as-a-lamp-server/。有很多方法可以在 linux 上安装 LAMP 堆栈(https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-14-04,unbuntu 14.04)。
Php 的文档很好,有很多教程,还有很多关于 SO 的问答。 http://php.net/manual/en/index.php
【讨论】: