搭建环境
基础知识
- 什么是网站?
网站是一种能够提供web访问服务的电脑。
用户:网站就是一个用户能够通过浏览器(web)进行访问的方式。(浏览器上通过输入url,获得其他电脑(web服务器)的资源并且进行显示。)
程序员:网站就是一个在安装了服务器的电脑上,提供一个可以被访问的资源(文件夹)
2.什么是服务器?
服务器直译是硬件(电脑),一台能够对外提供服务的电脑。
服务器:一台装有服务器软件的电脑,能够对外提供访问的服务。
服务器有哪些?
web服务器:Apache,iis,tomcat等
数据库服务器:mysql,oracle,DB2,sqlserver等
文件上传服务器:ftp等
文件管理服务器:svn等
3.什么是url?
url:Uniformed Resource Locator,统一资源定位,在互联网(局域网)上有很多台电脑连接,有其中一台或者多台提供某种特殊的服务,然后其他电脑需要从这台电脑上获取服务。需要有一种机制,能够从一张互联网上找到对应的某台确定的电脑,使用URL
URL:是互联网上的绝对路径
如: http://www.itcast.cn/gz/php/index.php
www.itcast.cn: 主机名,互联网上某台电脑上的对应文件夹的名字
itcast.cn:域名,一级域名(.com,.cn,.china:域名服务器)
www.itcast.cn:二级域名:在一级域名的左边增加一个单词
luntan.itcast.cn:二级域名
/gz/php/index.php:确定某台服务器上对应的文件的位置(目录结构)
在电脑网站根目录下面的gz文件夹下的php文件夹下的index.php文件
URI:Uniformed Resource Identifier,统一资源标识,用来定位服务器上的文件的位置(路径:相对路径)
http://www.itcast.cn/index.php?class=php150422
协议:http://
URI:/index.php?class=php150422
4.如何进行网站的web访问?
用户角度出发:
a) 打开浏览器
b) 输入URL,按回车(请求)
c) 浏览器显示数据
服务器角度:
a) 接收请求(欢迎光临)
b) 解析请求(询问客户需要买什么内容:买盐)
c) 响应(给用户盐:用户给钱)
IP:绑定在每台电脑的网卡上的唯一标识,一个IP能够代表一台电脑(唯一),互联网之间是通过TCP/IP协议来进行电脑匹配
域名:域名又可以理解为主机名,是某个网站对应的“文件夹”(文件夹别名)的名字,因为IP地址很难记,用户体验相当差。使用域名来给IP地址也取个别名,用户只需要记住域名(主机名)即可,浏览器输入URL的时候也不需要输入IP
DNS:Domain Name system,域名系统,专门用户解析域名换成对应的IP地址
hosts文件:本地域名解析(所有浏览器发出的请求,都是先经过本地解析hosts文件)
Port:端口,电脑上(服务器)的软件用来监听外部发送过来的请求的(门卫)
5.软件结构?
软件分为两种类型的:C/S结构,B/S结构
C/S:Client/Server,客户端/服务端,这种软件结构必须保证用户的电脑上安装的客户端(对应服务器端),如QQ,飞秋
客户端只能向服务器发起请求
B/S:Browser/Server,浏览器/服务器,这种结构只要求用户有浏览器即可。
浏览器是一种万能客户端。
6.开发环境?
开发环境就是指安装软件:软件分为两种
集成环境:有人将实现某个功能所需要用到的多个软件进行合并(封装),变成一个软件,用户使用的时候,只需要安装一个软件就实现了安装多个软件:如wamp = Apache + mysql + php + windows
xapp,appserv,phpstudy ===== Windows + Apache + mysql +php
独立环境:用户自主安装多个需要的软件
独立环境与集成环境的区别
集成环境优点
- 集成环境安装简单
- 使用比较简单和方便(内部已经实现配置)
集成环境缺点
- 集成环境会精简配置,所以有些功能不能使用
- 集成环境是个人制作,不安全
- 版本限制
独立环境优点
- 支持的功能较多,可以随意配置
- 安全:自己安装和配置
独立环境缺点
- 安装麻烦,多个软件都需要安装
- 配置麻烦:需要多个软件共同协作
选择
开发的时候,基本上使用集成环境(简单)
部署的时候(上线),基本上使用独立环境(安全):lamp = Linux + Apache(稳定) + mysql + php ====》 lnmp = linux + nginx(效率高) + mysql + php
安装Apache
Apache是提供web访问服务的软件。
- 获取Apache安装文件: http://www.apache.org
1.双击安装:打开欢迎界面
2.点击“next”进入到协议界面
3.同意协议,点击“next”,进入应用提示界面
4.点击“next”进入到主机配置界面
5.输入域名,主机名,邮箱,选择所有用户,点击“next”,进入类型选择界面
6.选择自定义安装,点击“next”进入到路径选择界面
注意:安装路径不能有中文,不能有空格
7.修改安装目录:为D:/server/apache,点击“next”进入到安装准备界面
8.点击“install”安装
- 点击“finish”完成安装
失败原因:端口被占用:Apache默认使用80端口
9、测试安装是否成功:在浏览器中输入localhost(主机名)
假设:Apache不是安装在自己电脑上
10.查看Apache的目录结构
htdocs目录:网站根目录
Apache只能简单的读取文件里面的内容,然后直接交给浏览器:Apache不能解析文件里面的任何内容
浏览器只能解析HTML和css以及js,不能识别php代码
Apache工作原理
Apache是以模块化的形式进行工作:需要某个模块进行工作的时候,就加载某个模块
httpd.exe:在Apache的bin目录下,这是Apache服务软件
该软件是在cmd下面运行:需要进入到控制台(CMD:Command)
解决方案:配置环境变量和进入到对应的目录
httpd.exe是搭配命名使用
-M命令:查看Apache总共有哪些模块
-t:测试Apache的配置是否正确
配置文件:是Apache工作的灵魂(Apache的工作受配置文件支配),Apache是完全按照配置文件的指示和配置进行工作的。/apache/conf/httpd.conf
修改后的效果
注意:配置文件的修改不会改变当前Apache的工作方式(需要重启Apache)
安装独立环境之前卸载集成环境,卸载注意事项
- 保存www目录下的所有文件(php文件)
- 保存bin目录下->mysql-》mysql 版本文件夹->data-》自己新建的数据库对应的文件夹;bin目录下->mysql-》mysql 版本文件夹->data下有一个ibdata1
PHP了解
- 什么是PHP?
PHP是一种运行在服务器端的脚本语言。
运行在服务器端:浏览器不能识别
Apache本身不能解析任何脚本(包括HTML)
PHP:早期,Personal HomePage,个人主页,perl开发
PHP:后期,PHP Hypertext Preprosessor,超文本预处理器,底层是用C语言开发
PHP定义:一种服务器端的 HTML 脚本/编程语言,是一种简单的、面向对象的、解释型的、健壮的、安全的、性能非常之高的、独立于架构的、可移植的、动态的脚本语言。是一种广泛用于 Open Source(开放源代码)的尤其适合 Web 开发并可以嵌入 HTML 的多用途脚本语言。它的语法接近 C,Java 和 Perl,而且容易学习。该语言让 Web 开发人员快速的书写动态生成的网页。
- php的发展史?
作者:Rasmus Lerdorf
发展历程
1994:1.0个人perl,Personal HomePage
1996:2.0,C语言底层编译
1998:Zend公司负责PHP的规范,3.0版本,zendEngine能够高效的解释PHP语言
2000:4.0,session(会话技术)+输出缓冲等
2004:5.0,zend引擎2代
2.什么是脚本语言?
脚本语言是相对于编译型语言。
编译语言:写好的代码不能直接执行,需要先通过编译器进行编译,得到编译后的结果文件(文件与原代码文件完全不一样),最后执行编译后的结果。如:C,C++,C#,Java等
脚本语言:是一种解释型语言,不需要事先编译,在需要运行的时候,直接编译。脚本语言通常都是做web网站。
网站最耗时间的部分是:网络,用户察觉不到后台脚本语言解析所消耗的时间。
安装PHP
- 获取PHP安装文件: 官网:http://www.php.net
2.解压缩
3.将软件包移动到D:/server
4.重命名
5.PHP安装文件的目录结构
6.证明:php.exe能够解析php代码:在cmd下面使用php.exe
php.exe –f php文件路径
Apache加载PHP模块
Apache将php当做Apache内部的一个模块来进行处理。
应该在Apache的配置文件中去加载php。
7.修改Apache的配置文件,加载php
LoadModule php5_module php给Apache提供的动态链接的路径
代表了Apache可以使用php模块
8.修改Apache配置文件:告诉Apache在什么时候使用php
将以.php结尾的文件都交给php去处理
AddType application/x-httpd-php .php
9.查看请求Apache的php文件的效果
PHP配置文件
默认的,php给用户提供了两套配置文件供筛选,但是两套都没有启用。
必须要变成php.ini才能使用
选择开发环境的配置文件:为了保证以后配置文件出错还能重新找回来。复制一份再重命名
修改php配置文件:timezone
若要php的配置文件生效:前提是Apache要加载php配置文件变成Apache自己的。
PHPIniDir php.ini所在的路径
效果
安装mysql
- 获取安装文件:官网 http://www.mysql.com
2.双击安装,进入到安装欢迎页
3.点击“next”,进入到协议界面
4.同意协议,点击“next”进入到安装类型选择界面
5.选择自定义安装:点击“Custom”,进入到自定义安装界面:安装路径
5.1 选择安装路径
5.2 选择数据存储路径
6.修改安装路径和数据存储路径之后,点击“next”进入到安装准备界面
7.点击“install”安装
8.点击“next”继续安装,连续点击两次,进入到完成安装界面
9.点击“finish”完成安装,打开配置准备界面
10.点击“next”,进入实例选择配置界面
11.选择明细配置,点击“next”进入到
12.选择开发者机器,点击“next”进入到数据库使用选择界面
13.选择多功能数据库,点击“next”进入到innodb表空间设置界面
14.默认的不需要修改,点击“next”进入到并发量选择界面
15.选择手动设置,设置并发量为15,点击“next”进入到网络设置界面
16.勾选添加防火墙例外,点击“next”进入到字符集选择界面
17.选择手动选择字符集,并将字符集选择成utf8,点击“next”进入到操作系统配置界面
18.勾选将mysqlbin目录添加到windows的环境变量,点击“next”进入到安全配置界面
注意:不用勾选匿名账户
19.输入root用户密码,勾选允许远程root用户访问,点击“next”进入到配置待执行界面
20.点击“execute”执行配置:要等到4个白圈,都被勾选才算配置完整
21.点击“finish”完成安装
22.了解mysql安装目录结构
bin目录
data目录
23.验证mysql是否安装成功
24.通过查看服务或者进程
25.通过访问服务器证明服务器可以正常工作。
假设:现在mysql服务器是安装在另外一台电脑上。
mysql是一种c/s结构的软件,需要通过客户端去访问服务器:mysql.exe
mysql.exe需要借助cmd运行
访问方式
mysql –hlocalhost –P3306 –uroot –p(建议回车再输入)
26. php操作mysql
PHP操作mysql
PHP不能操作mysql,自己没有这个能力。必须借助第三方扩展才能实现。
PHP必须冒充mysql客户端才能实现访问。
- php必须加载PHP操作mysql的扩展:php.ini
2.指定扩展所在路径:确定要找到对应的扩展
3.查看效果
虚拟主机
主机:一个对应的域名对应的一台电脑,一个域名只对应一个IP,而一台电脑又只能拥有一个IP地址。一台电脑只能做一个网站。
一个网站就是一个文件夹,一台电脑可以有多个文件夹。
虚拟主机:不是真正的主机,通过给网站(文件夹)定义不同的名字,然后其他用户就可以通过名字来访问一台电脑上的不同文件夹内的内容。
虚拟主机分类:基于IP的虚拟主机和基于域名的虚拟主机
IP虚拟主机
ip虚拟主机要求一台电脑上是使用ip去对应不同的文件夹(网站),实际上一台电脑可以有多个IP地址,需要硬件支持,只要在电脑上插上多个网卡(IP绑定在网卡上)
域名虚拟主机
一台电脑上只有一个IP,但是有多个文件夹需要做网站(不同的网站),用户访问的时候,不允许直接使用ip访问,必须要给一个名字(域名/主机名),在本机上给不同的文件夹绑定不同的主机名,所以可以通过不同的主机名找到不同的网站。
1.基于域名的虚拟主机开启
2.NameVirtualHost *:80 #开启虚拟主机:监听来自所有的ip地址是80端口
3.增加虚拟主机
<VirtualHost *:80>
#里面代表一个虚拟主机
#主机名:文件夹的别名
ServerName www.itcast.cn
#文件夹:路径
DocumentRoot “D:/class/php150422”
</VirtualHost>
4.重启Apache,要识别对应的配置修改
5.修改本地hosts文件:增加域名对应IP地址的解析
6.权限控制:需要对指定文件夹进行权限控制
<Directory 文件夹路径:通常就是DocumentRoot对应路径>
#权限顺序
Order Deny,Allow #deny和allow的顺序可以颠倒:代表系统读取权限的顺序
#权限控制
Allow from All #允许全部用户访问
Deny from All #禁止所有用户访问
</Directory>
7.允许访问文件列表(目录),当用户没有指定访问哪个具体文件的时候,直接给用户全部文件列表
Options Indexes FollowSymLinks #FollowSymLinks是表示是否允许软链接
8.系统增加默认访问界面
DirectoryIndex 要访问的首页文件index.html index.php … 系统先找index.html,找不到就向下继续寻找
虚拟主机单独管理
将所有的虚拟主机放到一个文件中,然后在主配置文件httpd.conf中加载对应的虚拟主机文件即可。
9.先加载虚拟主机配置文件:httpd.conf
10.增加虚拟主机文件,将所有的虚拟主机都虚拟主机文件中维护
11.虚拟主机一旦启用:默认的localhost主机就会失效:新建一个localhost的虚拟主机