PHP、MYSQL、Apache 环境搭建等

本贴最后更新于 2023 天前,其中的信息可能已经时过境迁

部分摘要自官方 php 手册 https://www.php.net/manual/zh/manual.php

什么是 PHP

  • PHP(“PHP: Hypertext Preprocessor”,超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML 中,尤其适合 web 开发。

  • 与用大量的命令来编写程序以输出 HTML 不同的是,PHP 页面就是 HTML,只不过在其中嵌入了一些代码来做一些事情(在本例中输出了 "Hi, I'm a PHP script!")。PHP 代码被包含在特殊的起始符和结束符 中,使得可以进出“PHP 模式”。


<html>

<head>

<title>Example</title>

</head>

<body>

  

<?php

echo "Hi, I'm a PHP script!";

?>

  

</body>

</html>

  • 和客户端的 JavaScript 不同的是,PHP 代码是运行在服务端的。如果在服务器上建立了如上例类似的代码,则在运行该脚本后,客户端就能接收到其结果,但他们无法得知其背后的代码是如何运作的。甚至可以将 web 服务器设置成让 PHP 来处理所有的 HTML 文件,这么一来,用户就无法得知服务端到底做了什么。

PHP 能做什么

PHP 脚本主要用于以下三个领域:

  1. 服务端脚本:这是 PHP 最传统,也是最主要的目标领域。开展这项工作需要具备以下三点:PHP 解析器(CGI 或者服务器模块)、web 服务器和 web 浏览器。

  2. 命令行脚本:可以编写一段 PHP 脚本,并且不需要任何服务器或者浏览器来运行它。通过这种方式,仅仅只需要 PHP 解析器来执行。

  3. 编写桌面应用程序:对于有着图形界面的桌面应用程序来说,PHP 或许不是一种最好的语言,但是如果用户非常精通 PHP,并且希望在客户端应用程序中使用 PHP 的一些高级特性,可以利用 PHP-GTK 来编写这些程序。用这种方法,还可以编写跨平台的应用程序。


  • 使用 PHP,并不局限于输出 HTML。PHP 还能被用来动态输出图像、PDF 文件甚至 Flash 动画(使用 libswf 和 Ming)。还能够非常简便的输出文本,例如 XHTML 以及任何其它形式的 XML 文件。PHP 能够自动生成这些文件,在服务端开辟出一块动态内容的缓存,可以直接把它们打印出来,或者将它们存储到文件系统中。

  • PHP 最强大最显著的特性之一,是它支持很大范围的数据库。使用任何针对某数据库的扩展(例如 mysql)编写数据库支持的网页非常简单,或者使用抽象层如 PDO,或者通过 ODBC 扩展连接到任何支持 ODBC 标准的数据库。其它一些数据库也可能会用 cURL 或者 sockets,例如 CouchDB。

Apache 目录结构

  • htdocs:apache 默认的主机地址(网站根目录)

  • modules:apache 所有功能都是模块化的

  • \bin\ab.exe:压力测试

  • \conf\http.conf:主配置文件

  • httpd.exe

  1. 服务器进程,运行后才能正常工作

  2. 用来查看 apache 有哪些功能以及配置文件是否有错


查看使用模块:


httpd -M

Loaded Modules:

core_module (static)

win32_module (static)

mpm_winnt_module (static)

http_module (static)

so_module (static)

access_compat_module (shared)

actions_module (shared)

alias_module (shared)

allowmethods_module (shared)

asis_module (shared)

auth_basic_module (shared)

auth_digest_module (shared)

authn_core_module (shared)

authn_file_module (shared)

authz_core_module (shared)

authz_groupfile_module (shared)

authz_host_module (shared)

authz_user_module (shared)

autoindex_module (shared)

cache_module (shared)

cache_disk_module (shared)

cgi_module (shared)

dir_module (shared)

env_module (shared)

file_cache_module (shared)

include_module (shared)

isapi_module (shared)

log_config_module (shared)

mime_module (shared)

negotiation_module (shared)

rewrite_module (shared)

setenvif_module (shared)

userdir_module (shared)

vhost_alias_module (shared)

php7_module (shared)

static:静态加载 apache 启动就已经加载好,可以直接使用

share:动态加载,需要使用才会加载

  • 验证配置文件是否有效

httpd -t

Syntax OK

  • 配置默认站点
  1. 让 Apache 确定服务器上访问的位置:网站文件夹所在位置:httpd.conf 下 DocumentRoot

  2. 方便用户使用名字访问对应网站:给文件夹取一个别名: httpd.conf 下 ServerName

  3. 实现 DNS

PHP 目录结构说明

ext:扩展(PHP 很多功能是通过加载扩展实现的)

php.exe:php 解释器

  • php.exe 就是可以解析 PHP 代码转变成 HTML 代码让浏览器可以解析的

  • 通过 php.exe 运行命令来指定界限的 php 脚本即可 php.exe f [php文件所在路径]

配置 Apache 加载 PHP 模块

  1. 在 Apache 主配置文件下:loadModule php7_module '[path]'

  2. Apache 分配工作给 PHP 模块:如果是 php 代码就交给 PHP 处理(*.php)AddType application/x-httpd-php .php

  3. 将 PHP 配置文件加载到 Apache 配置文件中

  4. 在 Apache 中指定 PHP 配置文件所在路径 httpd.conf 下 PHPIniDir '[php.ini路径]'

  5. php.ini 文件默认不存在,是以 development 和 production 存在,需要格式化

(php.ini 文件修改需要重启 Apache 才能生效)

Mysql 目录结构说明

mysql\bin\mysqld.exe:MySQL 服务

mysql\bin\mysql.exe:访问 MySQL 服务的客户端

mysql\bin\mysqldump.exe:MySQL 备份软件

C/S 结构:client/Server 用户需要安装客户端产品才能访问服务器,而且只能访问一种软件

B/S 结构:browser/Server 用户只要安装浏览器,就可以访问所有服务器(B/S 架构服务)

PHP 连接 MySQL 数据库

PHP 本身不具备操作 MySQL 数据库的能力,需要借助 PHP 操作 MySQL 扩展来实现

  1. PHP 加载 MySQL 扩展

设定 PHP 系统时区

php.ini 中:增加 date.timezone ="PRC"

配置虚拟主机

  • 虚拟主机分类
  1. 基于 IP 的虚拟主机:一台电脑上有多个 IP,每个 IP 对应一个网站

  2. 基于域名的虚拟主机:一台电脑上只有一个 IP,但是 IP 下可以制作多个网站,需要给每个网站不同的名字

  • PHP

    PHP(Hypertext Preprocessor)是一种开源脚本语言。语法吸收了 C 语言、 Java 和 Perl 的特点,主要适用于 Web 开发领域,据说是世界上最好的编程语言。

    179 引用 • 407 回帖 • 491 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...