开发者学堂课程【PHP 基础入门课程(上) :搭建动态 web 服务器】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/709/detail/12577
搭建动态 web 服务器
内容介绍:
一、本节学习目标及概念
二、搭建动态 web 服务器的原理
三、搭建动态 web 服务器的步骤
四、小结
一、本节学习目标及概念
目标:掌握 PHP 与 Apache 的合作机制,并实现 PHP 与 Apache 共建动态 Web 服务器
概念:动态 Web 服务器:指利用静态 Web 服务器 Apache 配合动态脚本编程语言 PHP,实现动态网站。
Apache 是一种静态 Web 服务器,不能解析内容,但是可以接收用户请求; PHP 可以生成动态内容,但是无法直接被用户(浏览器)访问,因此需要将二者结合共同完成动态网站的建设。
即满足使浏览器能够去访问 Apache ,最好也能够让 PHP 同样工作。
二、搭建动态 web 服务器的原理
1. Apache 是一种模块化的软件,只需要将某额软件挂靠在 Apache 上, Apapche 就能运用该模块实现某种功能。
2. PHP 对外提供了一个模块,允许其他软件应用该模块。这个模块叫做 php7apache2.4.dll,相当于一个对应的的 so 文件。找找看我们的 PHP 里面到底有没有这个文件,server - php7- Apache ,可以看到存在 php7apache2.4.dll 。
3. Apache 加载 PHP ,进行相关授权配置,从而让 Apache 在某种情况下运用 PHP 模块来进行工作。
三、搭建动态 web 服务器的步骤
1. 打开 Apache 的配置文件:D:/server/Apache24/conf/httpd.conf
2. 使用 LoadModule 命令加载 PHP 模块:
LoadModulephp7modulephp 模块所在路径。
LoadModule 就相当于加载一个模块,可以将加载原有的 so 文件。
此时去加载 PHP ,所以我们要给他一个名字叫 php7-model;而且大小写一定要注意。
加载 PHP 模块:LoadModule php7_module并指定对应的一个路径,路径的话,就位于 D 盘 server-PHP7。
取出相关文件的名字,而不是运行;然后放到这个对应位置,这样一来就加载好了。
3. 模块加载了不会自动工作,需要 Apache 指派工作给 PHP ;当 Apache 发现请求是 PHP 的时候,可以交给 PHP 来处理:
AddType application/x-httpd-phpphphtml (后缀区分,多种后缀可以使用空格来区分)
当我们碰到 .PHP 后缀的文件的时候,或者 .html 的文件的时候,我们都会用应用AddType application/x-httpd-phpphphtml 这个模块,当然也可以用多个。
直接复制了就不去写了,找到即#分配工作 ADDTyped,然后把后缀为 .php的分配给他的;至于 . html 文件是不是要给他,就看个人的一个设置,如果非要给他也可以,加空格就行;还有其他的文件,比如说什么 .htm ,这个也可以给他。之后,同样的再保存一下
4.此时的 PHP 隶属于 Apache ,但是因为 PHP 是独立模块,如果想要让 Apache 能够更多控制和使用PHP,就需要将 PHP 的配置文件告知 Apache ,从而让 PHP 和 Apache 成为一个整体: PHPIniDirphpini 所在路径。
刷新一下我们的浏览器,, Apache 一旦修改了配置文件,我们都需要重启我们拿吧器才能生效。重启后刷新一下显示被解析了,说明 Apache 跟PHP已经生效了。
我们说PHP虽然隶属于 Apache ,但是要知道PHP本身是不是自己是一个独立的一个软件,只是强拉过来,而且是通过 dll 文件拉过来的。如果说我们想让它变成一个整体,那最好还是要让 Apache 能够去解读 PHP 的配置文件,从而根据PHP的配置文件来选择或者体现PHP的一个功能。
那当中一个叫做: PHPIniDirphpini,然后 PHP.ini 所在的目录就可以了。
那我们来演示一遍:
#加载 PHP 配置文件
PHPIniDirphpini D:/server/php7
把它重启一下,其实重不重启都不影响我们的效果了,只是说后面有一些管理不方便;我们再来看一下这个修改会不会让我们反倒失效,没有,说明这个增加也是可行的。
如果有必要的话,建议大家可以跑到一个 ..cd Apache24\bin>httpd-
t ,测试一下语法有没有问题,若没问题,啊明我们加的这三行代码不影响。
5、Apache 的任何配置修改,都需要重启 Apache 才能生效; PHP 的配置文件现在已经隶属于 Apache 的一部分,因此PHP的配置修改,也需要重启 Apache 才能生效。
这就是搭建一个动态让彼此合作,我们用的是浏览器来访问 Apache ,但是 Apache 却用到了 PHP 即把 PHP 代码给解析了,所以他们就形成了一个动态的一个 Web 服务器。
四、小结
1. Apache 是一种静态服务器,能够接收浏览器的请求,但是只能读取文件,不能解析文件。
2. PHP 解释器是一个能够解释 PHP 代码的工具,但是不能接收浏览器请求。
3. Apache 可以将PHP添加到自己的模块列表中,从而 Apache 就可以“指使”PHP来进行某些处理。
4. 动态 web 服务器就是能够利用动态脚本语言实现动态数据提供的 Web 服务器。