php入门

php介绍 2

php的应用领域 2

php运行环境 4

web软件的运行模式 4

web运行流程 4

php网页运行原理 5

安装apache 6

配置apache以运行php程序 8

补充一个检测apach的配置语法的命令: 9

php的配置 11

时区配置: 11

php的模块配置 13

mysql的安装: 15

主机(站点)配置 23

一个站点的2个核心信息为: 23

单站点配置项 23

端口监听: 23

设置主机(站点)的名字:服务器名,站点名 23

设置主机(站点)的物理路径: 24

目录访问权限 24

目录访问权限中的“分布式权限”: 25

多站点的配置 27

站点别名的设置: 28

目录别名(虚拟目录)的设置: 29



今天的目标1:

<?php

echo  “hello world”; //表明配置好了apache

echo  “
现在时间:”  .  date(“Y-m-d H:i:s”) ; //表明配置好了php

$link  = mysql_connect(“localhost”,  “rott”, “123” ); //表明配置好了mysql

?>

目标2:

能够建立多个站点,比如:

www.abc.com能访问一个“网站”;

www.php39.com,能访问另一个“网站”

php介绍

缩写:Personal Home Page ==>>PHP:HypeText Preprocessor

历史

1995PHP/FI,Rasmus Lorderf,Personal Home Page

1997PHP/FI2.0,1998PHP3,2000PHP4,2005PHP5

php的应用领域

web服务器端脚本:主要作用

应用程序图形界面

命令行脚本

运行php文件:php.exe  -f  "php文件路径"

运行php代码:php.exe  -r  "php脚本代码"

php作为一门语言,本身可以是一个纯绿色版的“文件夹”——称之为“php语言包”


其中,有一个文件为:php.exe,可以用来它“执行”php代码:



演示1:

这是1base.php文件:


通过php.exe去“执行”它,如下:



演示2:  直接运行php代码:

形式:

php.exe  -r  "php脚本代码"



php运行环境

web软件的运行模式


一个重要观念:

web软件的运行模式中,总是先在客户端(浏览器端),发起一个“请求”,然后,服务器端才产生反馈动作(就是“运行”程序),并因此而返回给该浏览器一定的信息——就是所谓的应答(响应);


其中运行过程中,所涉及到的一些相关技术或软件如下:


浏览器端: 服务器端 数据库端

html 服务器软件语言 mysql

css apache PHP oracle

js IIS java mssql

..... ...... ......


其中,浏览器端的技术是“无可替代”的,而其他层面的,都是有可替代性。


web运行流程

浏览器输入地址,回车(发送请求)

根据规则找到对应web服务器。规则如下:

首先在本机hosts文件中找对应IP

hosts文件位置:操心系统/system32/drivers/etc/

注意:需要以管理员身份打开编辑器,才能编辑保存它

如果hosts中没有找到,则到互联网上找对应IP(DNS服务器中)

如果还是没有找到,则终止请求,返回“找不到服务器”提示

web服务器取得对应文件(就是请求的文件)

如有需要(比如php文件),对该文件进行一定的处理(比如php代码执行)

将文件(或执行结果文件)返回给浏览器(返回应答)

浏览器接收到文件

浏览器处理文件(显示/执行)

php网页运行原理


安装apache


注意:





成功后,浏览器中浏览如下:


apache安装后的目录结构:



配置apache以运行php程序

将刚才的网页1base.php放到apache的htdocs文件中,并通过浏览器“浏览”:


可见,根本无法运行php!!!


其实,我们就需要去配置apache了:

分2步:

第一步:

装载php“模块”——其实就是指php语言包中的一个文件而已!

A:首先,我们将php语言模块,拷贝到计划的目录中来:...... /bj-php-39/amp/php/

B:打开apache的配置文件:apache安装位置/ conf / httpd.conf



第二步:

指定php后缀的文件,去“找”这个php模块处理(执行)——这里,基本是固定写法:


然后,重启apache,再次刷新刚才的页面:


可见,php已经通过apache发挥作用了!


注意:apache配置文件修改后,必须重启apache,才能生效!


另外:第2步中“设定php后缀的文件由php模块去处理”的命令,可以有另一种写法,如下:



补充一个检测apach的配置语法的命令:

命令所在位置:

apache安装位置/bin/httpd.exe

命令使用方式:

httpd.exe  -t

命令结果:

如果配置文件httpd.conf没有语法错误,就返回: syntax  OK

如果有错误,则会提示第几行错误!

用法1:强行拖入法


用法2:配置环境变量法:

我的电脑》属性》高级系统设置》高级》环境变量》系统变量》path》编辑,

然后,在其中加入刚才httpd.exe文件所在的完整目录路径,注意使用英文分号(;)跟以前的内容分开:


然后,就可以在cmd中直接使用:



php的配置

时区配置:

先看php的代码:


浏览的结果为:


这是,因为,我们还没有配置php语言模块(语言引擎)的运行时区!

需要去修改php的配置文件:

php的配置文件位置:

php语言包/php.ini

初始,并没有该文件的直接版本,而是提供了2个选择性版本:


我们采用php.ini-development,改其后缀就可以了!


第一步:

然后打开该文件,并查找关键字:timezone:


修改为:


第二步:

在apache的配置文件(httpd.conf)中,设置php.ini文件的路径(位置):



然后,还是要重启apache,然后,重新刷新刚才显示时间的网页,结果为:


php的模块配置

理解一件事情:

php(语言模块)是apache的众多模块之一!

mysql是php语言中的众多模块之一!


目标:运行一行“连接mysql数据库”的代码:


但运行结果却是报错:调用未定义的函数!


这是,因为,mysql作为一个php的“模块”尚未配置!

解决,分2步:

第一步:

在php.ini文件中,设定php模块所在的路径(查找关键字extension_dir):


我们要修改为指向php语言包中的ext这个目录的“完整物理路径”:


第2步:

“打开”mysql这个模块就可以了(查找关键字php_mysql.dll):


修改为:


然后,重启apache,重新浏览刚才的网页,结果为:


下面就可以安装mysql数据库软件,以“建立”mysql数据库服务器。

mysql的安装:



















然后,重新浏览刚才的php网页(将代码略修改为以下):


结果为:



主机(站点)配置

一个站点的2个核心信息为:

主机名(服务器名/站点名): ServerName服务器名

站点位置(站点目录路径):DocumentRoot“实际物理路径”


默认情况下,apache安装成功,就默认配置好了一个“站点”,该站点的实际位置在:

apache安装位置/htdocs/

默认主机名是安装时设置的,比如www.abc.com,当然,也可以使用localhost


单站点配置项

端口监听:

在apache的主配置文件httpd.conf中:


也可以写为:


实际应用中,我们几乎都是80。


设置主机(站点)的名字:服务器名,站点名

ServerName服务器名

举例:


也可以设置为:



设置主机(站点)的物理路径:

形式:

DocumentRoot  “实际物理路径”

重要观念:

站点就是“文件夹”——我让它当站点,它就是站点。


比如:

原始的站点在这里:


修改为:


在浏览“localhost”,发现被进制访问(Forbidden),然后添加访问权限,如下:


就可以了。


目录访问权限

一个站点,就是一个“目录”。

每个目录,都应该给其设定“访问权限”,语法如下:

<Directory  “要设置权限的目录路径”>

#设置当一个请求中没有给定请求的文件名又没有默认网页(首页)的时候,显示文件列表

Options  Indexes


#设置权限控制的先后顺序,只有2种:Deny,Allow(先拒绝,后允许),Allow,Deny(先允许后拒绝)

Order  Deny,Allow


#Deny用于设定要拒绝访问的来源地址或服务器名,几乎没有实际意义!

Deny  from拒绝名单  比如:deny  from  192.168.3.8  172.180.4


Allow  from允许名单   比如:Allow  from  all


#设置该文件夹下的“默认网页”(首页),可以设置多个,用于请求中不带文件名的时候自动使用该文件作为“返回”页面。

DirectoryIndex  index.php  index.html   main.php  default.php   abc.php   123.html

</Directory>


目录访问权限中的“分布式权限”:

对于某个目录的访问权限,我们在apache中使用Directory来设定,但可能不够方便:

1,apache配置修改,必须重启apache

2,某个站点中的“下级目录”访问权限,不方便单独设置,


这种,可以称为“集中式权限”;

分布式权限,就是:针对某个网站的任何一个下级目录,都可以单独去设置其访问权限,并且可以不重启apache就生效。

做法:分2步:

第1步:

在该站点对应目录权限的Directorty配置中添加一条:


第2步:

在该目录下的任何子目录中,创建一个特殊的文件(.htaccess),在该文件中写所需要的“权限内容”(几乎跟Directory中的写法一样):

举例:

www.php39.com/day1/中,初始可以浏览结果如下:


然后,在该文件夹中添加一个文件:.htaccess其内容为:

(该ip不知是谁,反正不是我!)

在该day1文件夹中,就多了一个文件:


然后,重新访问刚才路径(刷新):





多站点的配置

分3步:

第1步:

在apache的主配置文件httpd.conf中,“打开”多站点虚拟主机配置文件项(关键词:vhosts):

初始:


修改为:



第2步:

在httpd-vhosts.conf文件中,设定希望提供“多站点”服务的IP地址和端口号,通常默认就是:*:80,其中“*”代表所有IP,默认其实apache安装好之后就设置好了,无需手动设置(关键字NameVirtualHost):


第3步:

然后就一个站点一个站点加上!形式如下:

<virtualhost  *:80>

#这里设置站点1的各项信息

</virtualhost>

<virtualhost  *:80>

#这里设置站点2的各项信息

</virtualhost>

...........


注意:

1,先把httpd-vhosts.conf文件中的2个初始安装生成的站点,删除!!!

2,每个站点的设置项,主要就3个:

ServerName,

DocumentRoot,

<Directory>...</Directory>

3,在多站点配置中,第一个站点被称为“默认站点”,如果某个请求的域名无法跟任何一个站点“匹配”,就会当做请求的是默认站点去处理(应答)

4,一旦实现了多站点配置,则最初安装成功时的“默认站点”就失效了,我们可以将“localhost”当做一个普通站点重新设置就可以了,也可以将其放在第一个位置又重新作为默认站点。


举例:




站点别名的设置:



目录别名(虚拟目录)的设置:

某个站点www.abc.com所对应文件夹下有一个目录为d1,则可以这样访问该目录:

www.abc.com/d1

这个d1就称为“真实目录”;

虚拟目录就是:

该站点下不存在某目录名,但却可以使用同样的语法形式,去访问,比如:

www.abc.com/d2    //假设该站点目录下根本就没有d2这个目录,此时却可以访问


实现这种技术,就是所谓“目录别名”(虚拟目录)的设置,如下:

在一个站点中,做如下2步:


第1步:

设置目录别名的名字和其对应的“实际真实目录(文件夹位置)”:

Alias  /目录别名的名字   “实际真实目录(文件夹)的位置”

第2步:

设置该真实目录的访问权限(否则是禁止访问的):

<Directory   “真实目录路径”>

。。。。。。跟其他目录权限设置一样

</Directory>




���k~�

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容