PHP——基本使用(一)

Apache安装与配置

install

  • 下载地址:https://www.apachelounge.com/download/,选择2.4.33版本64位
  • 将程序解压到一个英文目录下,以管理身份打开cmd
  • cd <解压目录>/bin,执行命令切换到apache解压的盘符的bin目录
  • httpd.exe -k install -n "Apache",执行命令对bin目录下的httpd进行安装,-n参数是指定服务器的名称,默认名称是Apache24,很丑陋,所以改成了Apache
  • httpd.exe -k uninstall -n "Apache",执行命令可对apache进行卸载
  • 执行完安装命令之后,会有一个错误,大概意思是在conf目录下的http.cof 配置文件中指定的根目录serveroot并不是一个有效的目录
Errors reported here must be corrected before the service can be started.
httpd.exe: Syntax error on line
37 of C:/apache/conf/httpd.conf: ServerRoot must be a valid directory
  • 我们找到这个配置文件,37行指定的根目录是ServerRoot "C:/Apache24",但是我们解压后因为改了名字,所以再配置文件我们也需要做出相应的更改,修改为ServerRoot "C:/apache"
  • 再去执行cmd命令,httpd.exe -t,对httpd.exe是否正确安装进行测试,发现又报了错误,错误还是在上面的配置文件中,大概意思是在248行,DocumentRoot 'C:/Apache24/htdocs' 不是一个目录或者不可读,其实还是和改了名字有关系,所以选中出现错误的地方,利用sublime中快捷键一直按ctrl+d直到文件最后,进行修改
AH00526: Syntax error on line 248 of C:/apache/conf/httpd.conf:
DocumentRoot 'C:/Apache24/htdocs' is not a directory, or is not readable
  • 修改之后再次执行httpd.exe -t 测试命令,发现Syntax OK,但是其实还是有一个错误,大概意思缺少服务器的域名,提示我们通过ServeName这个指令进行全局设置。这里需要说明的是,这个报错我们其实可以忽略,因为我们之后需要做虚拟主机
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::dd08:7c28:a78f:e5bd. 
Set the 'ServerName' directive globally to suppress this message
  • 此时我们通过运行=>services.msc打开服务,看到apache服务已经被成功安装,但是并没有显示启动。

start

  • httpd.exe -k start -n "Apache" 执行命令后,还是会报上面的AH00558错误,这里我们忽略,此时再去查看服务,Aapche服务已经正在运行了

  • 此时我们再浏览器中输入127.0.0.1,就会弹出it works

DNS

  • 这里我们再介绍下DNS的概念,客户在发送的请求的时候,首先会从本地的hosts文件下去找域名匹配的ip,否则则会去DNS服务器去解析,再获取ip后才会去web服务器上获取数据。我们可以通过修改本地C:\Windows\System32\drivers\etc下的hosts文件,依然能够访问
127.0.0.1    wuqiuxue.dec

 

端口

  • 端口就好比是与外界交往的门,只有通过这个门,数据才会传递。在我们输入127.1.0.0的ip地址时,我们并没有输入端口号,因为url会默认添加一个80端口。同时apache的conf目录下的httpd.conf配置文件中的58行,用了Listen 80 进行了配置。所以客户输入ip地址,自然是去找这个ip地址下的拥有80端口的apache服务器。我们可以通过cmd执行netstat -ano命令查看端口占用情况,确实看到本地有一个服务将80端口占用,这里有这个服务的pid号——5424,通过执行tasklist|findstr "5424"命令,我们就可以查到是哪个服务占用了此端口,很显然是apache.

网站根目录

  • 服务器将网站的根目录默认指向的是DocumentRoot "c:/apache/htdocs",htdocs下有一个index.html文件,很麻烦,我们可以自定义网站根目录。但是这里需要再次澄清一个概念,客户通过apache服务器80端口访问服务器磁盘上的数据,但是并不是代表可以访问所有服务器上所有的文件,这里apache有权限的设置,/ 斜杠代表的是服务器上所有的文件,大概意思是所有重写被拒绝,所有需求被拒绝

  • 因为是拒绝访问,所以我们在将网站根目录地址更改的时候,还要对这个改过的目录进行设定,系统默认设定是是Require all granted,所以我们也就不用改了

默认文档

  • 当客户端访问的是一个目录而不是具体文件,服务器默认就会返回这个目录下的某个文档(可以设置),这个被称之为默认文档。默认文档可以配置多个,用空格隔开,从前往后寻找,直到找到可用的为止,如果没有找到则启用一个目录浏览器

目录浏览

  • 启用目录浏览是很丑陋的,所以我们要进行设置,还是在网站根目录中进行配置,将index删除即可

虚拟主机

  •  一台机器上如果部署多个站点,那么我们需要通过配置虚拟主机的方式解决
  • httpd.conf在主配置文件中,虚拟主机的引入被注释了,解除注释。然后找到所在目录,找到虚拟配置文件进行更改,这样的方式是为了减少对主配置文件的修改,做到功能化单一化,当然即使我们改错了也没事,我们可以通过conf目录下的original目录进行恢复操作,这里存放这系统的默认配置

  • 找到配置虚拟主机的httpd-vhosts.conf文件,修改里面的配置文件,因为是修改了域名,所以我们还需要在hosts文件进行域名与ip地址的绑定
  • 别名一般就是在顶级域名前加上www.  这被称为二级域名

  • 如果还需要需要另外一个站点,那么我们还需要再配置一个虚拟主机,具体配置如下,同样还需要再hosts文件进行域名绑定,但是此时这样设置会报错,无法获取服务

  • 原因很简单,因为在配置第一个虚拟主机的时候,网站的根目录地址与主配置文件的地址相同,而主配置文件已经对了这个根目录进行了权限修改,而第二个虚拟主机所指定网站根目录显然是没有进行权限修改,保险起见,将第一个虚拟主机也添加一个directory的设置

  • 同时我们也可以将这两个站点都放在www下,只是不同的文件夹,而且也不用配置文件权限,因为主配置文件对www已经配置过了
  • 只要配置了虚拟主机,流程就不会再走主配置文件的中的网站根目录配置,如果再浏览器上输入127.0.0.1,本来这是指向主配置文件的,现在默认走第一个虚拟主机的配置

 

请求的流程

  • 客户端请求的是一个静态页面,那么服务器会原封不动的发给客户,这是静态网站,而动态网站,会根据每一次的请求,动态执行一段代码,这里我们介绍PHP
  • 服务器根据url地址去找对于的文件,如果发现文件不是静态文件,那么它会将此文件发给其他程序让其解析,最后将执行结果发给客户
  • apache服务器就相当与包工头,主要是分配任务,php就相当与农民工,主要是处理代码,现在我们来安装php,不然apache有任务也处理不了

PHP安装与配置

  • 下载地址:https://windows.php.net/download#php-7.1,解压到指定文件夹下,我们需要选择Thread Safe版本的,这个版本与apache搭配,non-Thread Safe是与iis搭配
  • 打开apache主配置文件,进行加载配置,将php解压目录下的php7apache2_4.dll文件的路径放入,如果路径存在空格,需要用双引号将整个路径包裹起来

  • 在模块设置的标签内,还要进行设置,虽然引入了mine.typeswen文件,但是里面不包括php,所以自己手动添加

  • 既然支持了php,那么我们还将默认文档进行追加,也支持index.php

 

转载于:https://www.cnblogs.com/wuqiuxue/p/8642804.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值