搭建windows下的php开发环境

时间:2022-06-02 20:35:56

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.com
192.168.1.12   www.test2.com
192.168.1.13   www.test3.com
3、建立虚拟主机存放网页的根目录,如在/www目录下建立test1、test2、test3文件夹,其中分别存放1.html、2.html、3.html
/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.com

2、建立虚拟主机存放网页的根目录,如在/www目录下建立test1、test2、test3文件夹,其中分别存放1.html、2.html、3.html

/www/test1/1.html
/www/test2/2.html
/www/test3/3.html
3、在httpd.conf中将附加配置文件httpd-vhosts.conf包含进来,接着在httpd-vhosts.conf中写入如下配置:

每个<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.ini
2、php与apache整合
在httpd.conf中加入配置:
#php7 config
LoadModule php7_module "D:/php/php7/php7apache2_4.dll"      
PHPIniDir "D:/php/php7"
AddType application/x-httpd-php .php
3、测试

<?php

    phpinfo();

?>