php配置步奏

web运行大致流程
?浏览器输入地址,回车(发送请求)
?根据规则找到对应web服务器。规则如下:
?首先在本机hosts文件中找对应IP
?如果hosts中没有找到,则到互联网上找对应IP
?如果还是没有找到,则终止请求,返回“找不到服务器”提示
?web服务器取得对应文件
?如有需要,对该文件进行一定的处理(比如php代码执行)
?将文件(或执行结果文件)返回给浏览器(返回应答)
?浏览器接收到文件
?浏览器处理文件(显示/执行)

hosts文件位置:
window操作系统目录/system32/drivers/etc/hosts
注意:hosts文件没有后缀,而且就是文本文件。
该文件只有一个语法:
ip地址    域名
含义:该域名对应该ip地址。
其中127.0.0.1表示“本机”
DNS服务器:无非是“超大规模的hosts文件”

WEB软件运行原理图

PHP网站运行原理图:
涉及到浏览器, apache软件, PHP语言, MySQL数据库,我们的PHP程序(代码)

安装apache
规划目录:
尽量将apache,php,mysql安装到一个位置,比如:

建议大家直接在c盘或d盘建一个文件夹amp,然后再分上述目录。
安装完后,初始站点为:http://localhost/
如下:

该站点对应文件夹为: apache安装目录/htdocs/
该“主页”文件为:index.html

在apache中配置PHP语言包
apache的配置文件为:
apache安装目录/conf / httpd.conf
打开它,并“装载”php语言包:
基本语法如下:

并重启apache。

设定php文件有php语言模块处理的代码,还可以有以下方式:

实际上,这种后缀,可以任意设定,比如
AddType  application/x-httpd-php  .php   .abc   phtml

php的配置
配置时区
初始运行php输出时间:

结果却是这样:

错误提示的意思是没有配置php的“时区”(timezone)。
php的配置文件默认“没有”,如下所示:
先运行<?php  phpinfo();  ?>,可以看到php的配置文件的情况

虽然默认情况下,php没有配置文件也能运行。但实际上,php语言包中提供了2个配置文件的模板,自己选用就可以了:

我们只要修改其后缀就可以(现在选用开发阶段的php.ini)

首先,我们要需要在apache的配置文件中,“指定”php.ini文件的位置!!!

然后再去php.ini文件中找到关键字:timezone,
原始:
修改为如下:

还得重启apache。
最后重新运行刚才的3php.php网页:

配置php内部模块
php,作为一门语言,其也有若干个模块,每个模块可以完成某些特定的工作,比如数据库操作,比如图片处理。
这些模块,通常都只要进行“开关”设置,如下所示:

目标:让php可以调用mysql函数,如下所示:

初始运行结果为:

说明:严重错误,调用了未定义的函数 mysql_connect();.......
实际上,mysql_connect()函数,就是隶属于php中的一个模块,必须打开该模块,才可以使用:
初始:

打开它:

还需要指定,php的这些(扩展)模块所在的完整物理路径(位置),形式如下:
extends_dir  “完整物理路径(位置)”;

修改为:

重启apache,然后再浏览,结果为:

可见,现在该函数可以使用了,但因为还没有mysql数据库服务器,自然连接不成功!

接下来安装mysql数据库
mysql数据库的安装
我们安装: mysql-5.5.24-win32.msi 

然后在重新运行,

结果如下:

设置2个环境变量以方便和后续的操作:
apache的bin目录:
apache安装目录/bin
mysql的bin目录:
mysql安装目录/bin

加入到系统环境变量设置:
资源管理器》计算机》右键》属性》高级属性设置》高级》环境变量》系统变量》path
虚拟主机基本配置
什么叫虚拟主机?
通常是指,对外看来是一台独立运行的“服务器”,有其自身的域名可以对外提供服务。虚拟主机其实就是讲一台真实的主机(电脑),通过一定的软件设定,让外界看起来像有“多台”主机,此时就成为虚拟主机。
端口监听设置
一台电脑(服务器),对外来说,确定其“身份”(位置),本质上只有一个IP。通过IP来识别该服务器。

此时,如果一个请求来到“本机”,但又可能需要不同的方式来区分不同的请求(比如web浏览请求,文件下载请求,邮件收发请求。。。。),此时就使用一个叫做“端口”的数字来对此做进一步区分。
对于apache,则只要在配置文件httpd.conf中,声明对哪些端口提供服务,则外界来的该端口请求就会找到apache这个web软件并提供相应服务——如果不是这些端口,apache不负责。
默认只对80端口负责提供web服务:

我们可以自己来加上更多端口(虽然很少这样实际使用):

重启apache,结果如下:

主机配置关键项:2项
设定主机名:
就是网站的域名。
ServerName  www.abc.com
或者:
ServerName  abc.com
或者:
ServerName  news.abc.com
或者:
ServerName  def.news.abc.com

设定主机的实际物理路径:
就是网站的实际文件所在位置。
DocumentRoot  “c:/www”
或者:
DocumentRoot  “H:/itcast/class/bj-php-36”

理解一个主机的本质:就是一个文件夹而已,并映射一个域名以对外“好看”。

不过,通常,一个站点的实际文件夹,也需要给其设定“访问权限”:
目录访问设定
<directory  “要设定权限的实际目录路径”>
#这里来设定访问权限
</directory>
举例:

在目录权限设定范围中,还可以设定“是否允许分布式权限配置文件”:
<directory  “要设定权限的实际目录路径”>
AllowOverride  All
</directory>
其含义是:该目录中,允许一个特定的文件(.htaccess)来对该目录做“其他设定”(其实也是权限设定一类)。该文件的设定,会覆盖这里Directory中的设定!

在该文件中:

其他相关设定
默认页设置DirectoryIndex:
如果请求的地址中没有指定要访问的页面文件名,则此项生效

目录别名设置Alias
目录别名又叫“虚拟目录”,就是一个不存在的文件夹(目录) ,但却可以对外访问。
比如,某站点(www.php36.com)所在的文件夹中,没有soft这个目录,但我们可以配置出如下可访问的效果:
http://www.php36.com/soft/

语法实现:
Alias  /虚拟目录名   “实际目录完整路径”
举例:

多域名虚拟主机配置
一个主机,通常设定的项包括:
主机名(ServerName)
主机别名(ServerAlias):
主机实际路径(文件)(DocumentRoot)
目录权限中的一些设定:<Directory>Options, Order, Allow, AllowOverride,  DirectorIndex...</Directory>
目录默认页设定(DirectorIndex)
目录别名(Alias):

则多域名虚拟主机设定,就是可以做多个站点,每个站点都可以设定上述项目。

注意:我们如果开通过多域名虚拟主机配置项,则原来httpd.conf中的默认主机的配置项就“失效”了。

多站点实现方式:
1,在主配置文件(httpd.conf)中打开虚拟主机配置文件(httpd-vhosts.conf)引入项:
初始:

打开后:

2,设定计划做多站点配置的IP及端口(通常是已经设定好了):

3,然后就一个一个站点配置就好了:
#站点1:
<VirtualHost  *:80>
这里就是第一个站点的所有配置项
</VirtualHost>
#站点2:
<VirtualHost  *:80>
这里就是第 2 个站点的所有配置项
</VirtualHost>
#站点3:
<VirtualHost  *:80>
这里就是第 3 个站点的所有配置项
</VirtualHost>

举例:
通常,需要先删除默认安装时生成的2个“虚拟主机配置项”。

站点2:

可见该站点只是“找回”原来的站点而已。

在这种多站点配置中,第一个站点被称为“默认站点”:
——当某个请求根据端口进入到本apache的服务范围中,但该请求的地址信息中的域名又无法跟任何一个站点的主机名匹配的时候,Apache就会当做用户是要访问该默认站点(第一个站点)。
时间: 2024-08-05 03:04:14

php配置步奏的相关文章

IDEA Maven-SSM项目搭建 详细步奏

一.个人编写步奏,容易上手.分享一下,觉得实用的话可以收藏 1.创建maven项目选择模板 2.创建好后导入jar包 3.创建java.resources.webapp包  没有就创建 4.然后在resources包下创建applicationContent.xml 按照我给的applicationContext.xml文件的步奏写下去 需要什么去补什么 例如: 4.1  需要配置文件 然后去创建文件 <!-- 1.1 引入配置文件--> <context:property-placeh

cocos2dx创建win32项目一般步奏

1.导入一个新项目步奏:解决方案:右键->添加->添加现有项目->添加依赖项目libCocoStudioD:\work\CannonDefender\cocos2d\cocos\editor-support\cocostudio\proj.win32添加依赖项目libExtensionsD:\work\CannonDefender\cocos2d\extensions\proj.win32添加依赖项目libGUID:\work\CannonDefender\cocos2d\cocos\u

Centos7 配置网络步奏详解

编辑网卡配置文件 vi /etc/sysconfig/network-script/ifcfg-ens01 备注:这里的ens01不是所有系统都叫这个,有的可能叫其他名字 也可以输入vi /etc/sysconfig/network-script/ifcfg-e,然后tab补全 onboot改成yes 配置完成之后一定要的记得重启网络服务 Service network restart

linux 生成免密登陆步奏

1.大致流程 有时需要从服务器A免密连接到服务器B,这时需要在服务器A生成私钥和公钥,大致过程其实就2步. 1.1 在服务器A生成公钥和私钥 在服务器A上输入如下命令: ssh-keygen -t rsa 过程中按三次回车,执行结束如下图: 然后我们进入/root/.ssh/文件夹,查看文件夹的内容,如下所示: 其中 id_rsa为私钥 id_rsa.pub为公钥,接下来打开id_rsa.pub,将内容复制. 1.2 在服务器B配置服务器A生成的公钥 打开服务器B,将刚刚在服务器A内复制的内容追

MPLS VPN 配置步聚实验

实验拓扑图 CE与PE之间跑OSPF为例 1.配置IGP(OSPF) show ip ospf neighbor show ip route ospf 2.配置MPLS 可以配置mpls的标签范围 mpls label range xx-xx 默认是ldp协议 接口下启用mpls int fa0/0 mpls ip 查看邻居 show mpls ldp discovery show mpls ldp neighbor show mpls forwarding-table\\查看标签分配情况 3.

MVC 框架搭建步奏1日志

1.日志部分 首先是一个日志接口 public interface ILogger { /// <summary> /// 检查level级别的日志是否启用 /// </summary> /// <param name="level">日志级别<seealso cref="T:Rosefinch.Core.Logging.LogLevel" /></param> /// <returns>如果启

实现国际化的步奏

code实现国际话 1,添加中文简体. 2.CFBundleDisplayName 你的软件显示名称 实现国际话 最好在这里更改 以便适配,同理中文键入下面语句即可. 3.自己创建 newFile -->resource -->最后一个 命名为Localizable 右侧 左侧 4.在控制器中的使用 二.xib实现国际化 右边左边

NDK 的helloworld步奏

1. helloworld.c #include <string.h> #include <jni.h> /* * Class: com_example_ndk_NativeHelloworld * Method: hello * Signature: ()Ljava/lang/String; */ jstring JNICALL Java_com_example_ndk_NativeHelloworld_hello(JNIEnv * env, jclass thiz) { ret

JDBC编程步奏、问题总结(一)

jdbc编程步骤: 1. 加载数据库驱动 2. 创建并获取数据库链接 3. 创建jdbc statement对象 4. 设置sql语句 5. 设置sql语句中的参数(使用preparedStatement) 6. 通过statement执行sql并获取结果 7. 对sql执行结果进行解析处理 8. 释放资源(resultSet.preparedstatement.connection) jdbc问题总结如下: 1. 数据库链接创建.释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可