部分摘要自官方 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 脚本主要用于以下三个领域:
-
服务端脚本:这是 PHP 最传统,也是最主要的目标领域。开展这项工作需要具备以下三点:PHP 解析器(CGI 或者服务器模块)、web 服务器和 web 浏览器。
-
命令行脚本:可以编写一段 PHP 脚本,并且不需要任何服务器或者浏览器来运行它。通过这种方式,仅仅只需要 PHP 解析器来执行。
-
编写桌面应用程序:对于有着图形界面的桌面应用程序来说,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
-
服务器进程,运行后才能正常工作
-
用来查看 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
- 配置默认站点
-
让 Apache 确定服务器上访问的位置:网站文件夹所在位置:httpd.conf 下 DocumentRoot
-
方便用户使用名字访问对应网站:给文件夹取一个别名: httpd.conf 下 ServerName
-
实现 DNS
PHP 目录结构说明
ext:扩展(PHP 很多功能是通过加载扩展实现的)
php.exe:php 解释器
-
php.exe 就是可以解析 PHP 代码转变成 HTML 代码让浏览器可以解析的
-
通过 php.exe 运行命令来指定界限的 php 脚本即可
php.exe f [php文件所在路径]
配置 Apache 加载 PHP 模块
-
在 Apache 主配置文件下:
loadModule php7_module '[path]'
-
Apache 分配工作给 PHP 模块:如果是 php 代码就交给 PHP 处理(*.php)
AddType application/x-httpd-php .php
-
将 PHP 配置文件加载到 Apache 配置文件中
-
在 Apache 中指定 PHP 配置文件所在路径 httpd.conf 下
PHPIniDir '[php.ini路径]'
-
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 扩展来实现
- PHP 加载 MySQL 扩展
设定 PHP 系统时区
php.ini 中:增加 date.timezone ="PRC"
配置虚拟主机
- 虚拟主机分类
-
基于 IP 的虚拟主机:一台电脑上有多个 IP,每个 IP 对应一个网站
-
基于域名的虚拟主机:一台电脑上只有一个 IP,但是 IP 下可以制作多个网站,需要给每个网站不同的名字
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于