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();

?>

搭建windows下的php开发环境相关推荐

  1. 搭建Windows下Android应用开发环境——Eclipse/Android/ADT

    搭建Windows下Android应用开发环境--Eclipse/Android/ADT 田海立@CSDN 2011/07/18 Window下Android的应用开发环境,很早以前就在我的机器上搭建 ...

  2. Windows下的PHP开发环境搭建——PHP线程安全与非线程安全、Apache版本选择,及详解五种...

    2019独角兽企业重金招聘Python工程师标准>>> 今天为在Windows下建立PHP开发环境,在考虑下载何种PHP版本时,遭遇一些让我困惑的情况,为了解决这些困惑,不出意料地牵 ...

  3. php环境搭建appserv,在 Windows 下安装 PHP 开发环境(基于 Appserv)

    在 Windows 下安装 PHP 开发环境(基于 Appserv) 1.Appserv 是什么? Appserv 是PHP网页架站工具组合包,可以将网络上免费的架站资源重新包装成单一的安装程序.它提 ...

  4. 图文详解如何搭建Windows的Android C++开发环境

    原地址:http://www.apkbus.com/android-18595-1-1.html //================================================= ...

  5. Windows下安装Objective-C开发环境

    Windows下安装Objective-C开发环境 1.首先用GNUstep在windows下模拟object c开发环境. 官方网址:http://www.gnustep.org/ 百度云下载: 链 ...

  6. Windows下配置IDEA开发环境

    Windows下配置IDEA开发环境 文章目录 Windows下配置IDEA开发环境 安装JDK 查看JDK是否安装 下载JDK 配置环境变量 安装IDEA 下载IDEA 安装IDEA 初始化IDEA ...

  7. windows下关于Objective-C开发环境的配置

    最近IOS一直很火,也想学习以以下OC开发,一般装个虚拟机,然后装个mac,我相信大多数人的机子跑不起来或者很卡,所以之前借鉴了一个文章,就是关于在windows下配置OC开发环境,这里我把自己的安装 ...

  8. Windows 下使用GNU开发环境[转]

    Windows 下使用GNU开发环境http://www.hebl.name/zh/archives/gnuwin32-dev.html 2005-4-22 GNU/Linux, 軟件技術 GNU/U ...

  9. 一、C++基础入门之 Windows下C/C++开发环境配置

    Windows 下 C/C++开发环境的配置:(51开源时代) 我的系统是Windows的,所以在这里我以Windows为例,我使用的是微软提供的VS2013(Microsoft Visual Stu ...

最新文章

  1. 在Linux下编写Daemon
  2. 10.python网络编程(解决粘包问题 part 2)
  3. w10系统老是自动息屏_大师解答win10系统无法自动关屏/待机和睡眠的恢复教程
  4. 皮一皮:千万不要把可乐放冷冻...
  5. C++中为什么要引入抽象基类和纯虚函数?
  6. python中list是什么类型_Python 入门系列 —— 13. List 类型简介
  7. Loadrunner中socket协议中的三个关联函数
  8. DiskFileUpload类常用方法
  9. C语言 | 链表概述
  10. dense rank改为mysql_mysql上排名sql的写法,类似oracle的rank和dense
  11. HTML中制作循环广告条,一种循环展示广告的广告箱的制作方法
  12. python生成shell脚本_Python设置在shell脚本中自动补全功能的方法
  13. Flex中动态更新List item
  14. python 获取当前目录,上级目录,上上级目录,N级目录
  15. JAVA中加密算法的简单使用入门
  16. 不同版本的Python,如何pip
  17. 【语音去噪】基于matlab基本维纳滤波算法语音去噪【含Matlab源码 570期】
  18. 【数学分析新讲 笔记】第一章 实数
  19. 将VSCode添加到鼠标右键菜单
  20. BERT源码embedding_lookup解析

热门文章

  1. 海龟 (turtle) 画图终极实战:小海龟挑战大迷宫游戏
  2. 中国可降解塑料行业深度分析及未来发展趋势展望2021年版
  3. netty ChannelFuture的不解?
  4. 《信息安全工程师教程》学习笔记02(第二章 密码学基础与应用—DES算法)
  5. 跨界转型 打造大数据旗舰
  6. MySQL基础~NATURAL JOIN(自然连接) 和USING的使用(SQL99语法新特性)
  7. target is null for setProperty(null, quot;xquot;, [Ljava.lang.String;@b0c40e)错误异常
  8. 博士申请 | 香港科技大学陈浩老师招收人工智能医疗方向全奖博士/博后
  9. sync.Once化作一道光让我顿悟
  10. (Fabric 学习六)Fabric2.0 私有数据 使用marbles官方示例