1、PHP是什么?
在网站的服务器端,实现服务器程序(网站功能)业务逻辑的一门常见的编程语言。
做网站:web应用程序开发
web程序的架构:B\S
B:browser 浏览器
S:Server 服务器
完成一个可以被浏览器访问的应用程序。
注意:
PHP是解释运行,所以有些错误,到真正运行才会暴露。
<?php
php代码
?>
编译环境和运行环境要一致。
2、搭建一个web应用程序的开发环境
1、安装apache服务器
(1)准备安装包:httpd-2.4.18-win64-VC14.zip 解压包安装方式 (2)启动httpd出现缺少文件或出现错误,安装vc_redist.2015.x64.exe (3)解压完成后,修改配置文件:/Apache24/conf/httpd.conf
(1)ServerRoot "D:/php/Apache24" (2)DocumentRoot "D:/php/Apache24/htdocs"(4)安装apache服务:"D:\php\Apache24\bin\httpd.exe" -k install -n Apache2.4
切记,包含引号。该命令的意思是,安装apache服务,并将该服务名称命名为Apache2.4(你也可以改成别的),回车。
注意执行结果:
Errors reported here must be corrected before the service can be started.
意思是,若该句话后面有错误信息,则表示服务安装失败,需要先改正错误。若没有,则成功。
(5)打开/Apache24/bin/ApacheMonitor.exe,执行start,通过浏览器访问:localhost
遇到错误:
Forbidden
You don't have permission to access / on this server.
修改配置文件:httpd.conf中的:
# Deny access to the entirety of your server's filesystem. You must
# explicitly permit access to web content directories in other
# <Directory> blocks below.
#
<Directory />
allow from all
</Directory>
配置完成:
It works!
2、apache服务器的使用与介绍
1、管理与配置端口
apache安装好后,操作系统是以服务的方式管理。可以通过服务来启动和关闭,也可以通过ApacheMonitor.exe来管理。通过命令行:(1)httpd -k start 打开(2)httpd -k shutdown 停止(3)httpd -k restart 重启可以将apache的bin目录的绝对路径加到环境变量的path中。
在httpd.conf文件中配置端口: Listen 81 修改后重启生效
apache可同时占用多个端口:Listen 81
Listen 8180
一台机器可以有1~65535号端口。
使用:netstat -an 查看当前机器有哪些端口被监听。
原则上能不开的端口就不开,一个端口通常只允许使用一次。
使用:netstat -anb该命令可以发现那个程序在监听该端口,从而关闭。
2、apache目录结构
bin 存放启动和关闭apache的脚本文件cgi-bin Linux/Uinx下脚本文件conf 存放Apache服务器的配置文件errors 存放Apache服务器错误信息文件(启动或关闭时)htdocs web应用所在目录(多个站点,可以用文件夹分类)icons 存放Apache图标文件logs Apache日志文件manual Apache帮助文档medules Apache各个模块二进制文件 *.os
apache的运行机制
mpm mutil processing module 多重处理模块
apr 可移植运行库
声明周期:子进程派生
3、配置虚拟目录
用虚拟目录替换documentroot路径,在documentroot前加#注销。
配置虚拟目录在apache的conf目录下的httpd.conf 的<IfModule dir_module>节点下加如下配置:
#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
DirectoryIndex index.html index.htm index.php
Alias /test "D:/php/test"
<Directory D:/php/test>
Order allow,deny
Allow from all
</Directory>
</IfModule>
在D:/php/test中新建index.html文件,重启apache,访问localhost/test
权限设置:
Order allow,deny 先执行allow,后执行deny deny from 218.20 allow from 218.20.1.3 先允许 218.20.1.3的IP访问,再拒绝所有218.20开头的IP访问,结果是拒绝所有访问。4、配置虚拟主机
在apache服务器中创建web站点,需要启动httpd-vhosts.conf文件: # Virtual hosts
Include conf/extra/httpd-vhosts.conf
(1)基于IP配置
1、假设服务器有个IP地址为192.168.1.10,使用ifconfig在同一个网络接口eth0上绑定3个IP
[root@localhost root]# ifconfig eth0:1 192.168.1.11[root@localhost root]# ifconfig eth0:2 192.168.1.12[root@localhost root]# ifconfig eth0:3 192.168.1.13
2、 修改hosts文件,添加三个域名与之一一对应
192.168.1.11 www.test1.com3、建立虚拟主机存放网页的根目录,如在/www目录下建立test1、test2、test3文件夹,其中分别存放1.html、2.html、3.html
192.168.1.12 www.test2.com
192.168.1.13 www.test3.com
/www/test1/1.html
/www/test2/2.html
/www/test3/3.html
4、在httpd.conf中将附加配置文件httpd-vhosts.conf包含进来,接着在httpd-vhosts.conf中写入如下配置:
<VirtualHost 192.168.1.11:80>
ServerName www.test1.com
DocumentRoot /www/test1/
<Directory "/www/test1">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow From All
</Directory>
</VirtualHost>
<VirtualHost 192.168.1.12:80>
ServerName www.test2.com
DocumentRoot /www/test2/
<Directory "/www/test2">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow From All
</Directory>
</VirtualHost>
<VirtualHost 192.168.1.13:80>
ServerName www.test3.com
DocumentRoot /www/test3/
<Directory "/www/test3">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow From All
</Directory>
</VirtualHost>5、测试下每个虚拟主机,分别访问www.test1.com、www.test2.com、www.test3.com
(2)基于主机名
1、设置域名映射同一个IP,修改hosts:
192.168.1.100 www.test1.com
192.168.1.100 www.test2.com
192.168.1.100 www.test3.com2、建立虚拟主机存放网页的根目录,如在/www目录下建立test1、test2、test3文件夹,其中分别存放1.html、2.html、3.html
3、在httpd.conf中将附加配置文件httpd-vhosts.conf包含进来,接着在httpd-vhosts.conf中写入如下配置:/www/test1/1.html/www/test2/2.html
/www/test3/3.html每个<VirtualHost>定义块中,至少都会有一个ServerName指令来指定伺服哪个主机和一个DocumentRoot指令来说明这
个主机的内容存在于文件系统的什么地方。
<VirtualHost *:80>
ServerName www.test1.com
DocumentRoot "D:/php/www/test1"
<Directory "D:/php/www/test1">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow From All
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName www.test2.com
DocumentRoot "D:/php/www/test2"
<Directory "D:/php/www/test2">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow From All
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName www.test3.com
DocumentRoot "D:/php/www/test3"
<Directory "D:/php/www/test3">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow From All
</Directory>
</VirtualHost>(3)基于端口
1、修改配置文件httpd-vhosts.conf :
Listen 80
改为
Listen 80
Listen 8080
2、在httpd-vhosts.conf中写入如下配置:
<VirtualHost 192.168.1.100:80>
ServerName www.test1.com
DocumentRoot "D:/php/www/test1"
<Directory "D:/php/www/test1">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow From All
</Directory>
</VirtualHost>
<VirtualHost 192.168.1.100:8080>
ServerName www.test2.com
DocumentRoot "D:/php/www/test2"
<Directory "D:/php/www/test2">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow From All
</Directory>
</VirtualHost>
注意:修改配置文件时,注意不要有空格!
使用命令启动Apache服务器,出错的话,可以直接看到错误信息!
为了使用命令方便,可以把apache的bin目录加入path中。
3、安装php
1、解压php
准备php安装包:php-7.0.3-Win32-VC14-x64.zip 修改配置文件:php.ini-development 改为 php.ini2、php与apache整合
在httpd.conf中加入配置:
#php7 config
LoadModule php7_module "D:/php/php7/php7apache2_4.dll"
PHPIniDir "D:/php/php7"
AddType application/x-httpd-php .php3、测试
<?php
phpinfo();
?>