Windows下配置Apache服务器并支持php

时间:2023-03-08 16:12:29
Windows下配置Apache服务器并支持php

  php环境的配置相对来说比较繁琐,网上教程大部分都是放一起说,总体感觉比较乱,其实Apache是一款通用的服务器软件,可以用来配置支持静态页面,php、Python、Java甚至asp等服务端语言,要把Apache理解成单独的服务器,并不一定和php搭档,只是和php配合是比较流行的一种组合方式,就比如lamp就是比较流行的网站架构,所以,首先我们来配置Apache,首先让服务器跑起来并能解析静态的html文件

  首先我们去官网下载最新版本的Apache,首先来到首页:http://www.apache.org/

  Windows下配置Apache服务器并支持php

  这就是Apache基金会的官方网站,拉到底会看到有很多的开源项目,如Spark、Struts框架、流行的Hadoop大数据平台、tomcat服务器等,最著名的就是第一个HTTP Server也就是http服务器,

  Windows下配置Apache服务器并支持php

  现在,点击进去就是Apache服务器页面了,网址是:http://httpd.apache.org/

  官方提供了很多文档等,比网上搜到的结果要系统并且准确,并且还有中文版

  好了,我们看到现在最新版是2.4.18,点击"Download"超链接

  Windows下配置Apache服务器并支持php

  进来之后会看到下载的类型,前面几项是Linux版本的包文件和源码,点击最后一个Windows版本

  Windows下配置Apache服务器并支持php

  然后现在看到的就是下载页面:

  Windows下配置Apache服务器并支持php

  我们看到,Apache服务器没有专门用于Windows的版本,需要自己对源码进行编译生成二进制文件,如果不编译的话可以下载下面提供的编译好的程序

  后面的WampServer和XAMPP就是Windows平台最流行的集成环境,上面第一项或者第二项就是编译好的Windows版本的Apache服务器,我们单击第二项进去,就是最终的下载页面了,链接是:http://www.apachelounge.com/download/

  现在我们根据操作系统的位数直接下载就可以了,

  Windows下配置Apache服务器并支持php

  下载完之后,我们为了方便,首先建立一个目录用来专门放置服务器和后续的php运行环境,我是建立在C:/www下,然后把刚才下载的服务器解压到该目录下,然后C:/www/Apache24下就是这个样子

  Windows下配置Apache服务器并支持php

  还要注意一个地方就是最新Apache的运行环境最低必须建立在VC++2014之上,然后VC++2015更没有问题,同样php运行也需要这个环境,我前面的文章提到过,所以安装一次VC14或者VC15就没问题了

  现在开始配置服务器,首先打开conf目录下的httpd.conf配置文件

  找到ServerRoot "c:/Apache24"这一行,

  根据实际目录进行更改,所以改为:ServerRoot "c:/www/Apache24"

  找到#ServerName www.example.com:80把前面的#去掉即可

  然后找到 DocumentRoot "c:/Apache24/htdocs"这个意思就是我们web资源放置的根目录了,这里我的改为:DocumentRoot "c:/www/Apache24/htdocs"

  然后及接着下面一行:<Directory "c:/Apache24/htdocs">这个也是web资源的跟目录,所以改为:<Directory "c:/www/Apache24/htdocs">

  然后找到:

  <IfModule dir_module>
    DirectoryIndex index.html
  </IfModule>

  这个意思就是我们的默认首页程序,可以设置为:DirectoryIndex index.html index.htm index.php 这个配置是按照优先顺序进行访问

  然后找到:ScriptAlias /cgi-bin/ "c:/Apache24/cgi-bin/"这里的意思是设置cgi的目录,在Apache目录下有个cgi-bin目录,所以这里应该改为:ScriptAlias /cgi-bin/ "c:/www/Apache24/cgi-bin/"

  然后找到:

  <Directory "c:/Apache24/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
  </Directory>

  这些代码,注意和我们前面的web根目录不是同一个位置,把这里也改成cgi-bin的目录,和ScriptAlias一样就行

  到这里,我们的Apache服务器配置就完成了,现在可以解析html运行应用了

  现在,运行cmd,进入C:\www\Apache24\bin目录,这个目录下的httpd.exe就是服务器的执行程序,根据官网上说的,我们首先把Apache作为应用软件服务安装到系统服务中,运行命令:

  httpd -k install -n "ApacheServer"

  执行完这条命令后,如果没什么问题,就把Apache服务安装成功了,服务名为:ApacheServer这个我们可以自定义,如果只执行

  httpd -k install

  这样默认安装Apache服务名为:Apache2.4

  如果安装的时候提示,OS 5拒绝服务,AH00369这样的错误,那么原因就是我们没有权限执行操作,那么需要进入C:\Windows\System32目录下,右击cmd.exe选择以管理员方式运行即可,这样就安装成功了

  现在运行services.msc就可以看到刚安装好的服务了,并且默认为自动,就是随系统自动启动,不用我们每次再启动了,

  如果想手动启动或者关闭或者重启服务器有两种方法,一种是在系统服务中右键进行相应操作,比较简单

  另外就是使用命令行进行操作:

  启动:httpd -k start -n "ApacheServer"或者默认是httpd -k start

  停止:httpd -k stop -n "ApacheServer"或者httpd -k shutdown -n "ApacheServer"

  重启:httpd -k restart -n "ApacheServer"

  如果需要卸载服务就执行:httpd -k uninstall -n "ApacheServer"

  现在,我们访问http://localhost或者http://127.0.0.1如果可以看到 It works!的欢迎页,就是访问到了根目录下的index.html程序,那么Apache的环境就ok了

  下面需要配置让Apache可以运行php应用,现在需要去php官网下载运行环境

  过程就不细说了,Windows版本的网址为:http://windows.php.net/download

  这里可以下载最新版本的php7.0.1也可以下载php5.6.16这两个版本,但是不推荐下载更低的5.5、或者5.4版本

  Windows下配置Apache服务器并支持php

  这里根据操作系统位数一定要下载线程安全的版本,也就是Thread Safe的版本,下载完之后解压到C:/www下,我这里下载的是php7所以路径是:C:\www\php7

  Windows下配置Apache服务器并支持php

  然后我们在这个目录下会看到,php7apache2_4.dll这个就是Apache运行php的必要组件,现在继续打开Apache的配置文件httpd.conf

  把光标定位在最后,新起一行输入:LoadModule php7_module "C:/www/php7/php7apache2_4.dll"

  这行代码意思就是让Apache服务器引入php模块,从而可以支持php应用的web访问

  要注意,php5和php7是不一样的

  Windows下配置Apache服务器并支持php

  然后,继续添加一行

  AddType application/x-httpd-php .php .html .htm .php5

  这个是告诉Apache识别php文件的后缀,从而对这些后缀的应用进行解析,后面我们还可以添加.php7

  最后添加一行:PHPIniDir "C:/www/php7" 这行代码是告诉Apache服务器php.ini的目录,从而使服务器读取php的配置

  到现在就添加完了,如果是php7的话,有可能后续启动不成功,如果启动不成功,那么把PHPIniDir最后这行,放到LoadModule前面,就是先读取php.ini设置,在加载php模块,这样一般就成功了

  网上还有一种对于php7的配置方法是:

  phpinidir "C:/www/php7"
  loadfile "C:/www/php7/php7ts.dll"
  loadfile "C:/www/php7/ssleay32.dll"
  loadfile "C:/www/php7/libeay32.dll"
  loadmodule php7_module "C:/www/php7/php7apache2_4.dll"

  就是多三行代码,引入了3个文件,如果上面方法还是不行,可以试试这个方法,因为php7发布没多长时间,后续这些问题肯定会解决的

  到这里Apache服务器就全部配置完了,我们保存httpd.conf就行了

  现在进入php的目录,把php.ini-development复制一个副本,然后将副本重命名为:php.ini,然后打开php.ini开始配置

  我们找到; On windows:这行

  Windows下配置Apache服务器并支持php

  把下面的; extension_dir = "ext"前面的;注释去掉,然后把ext改成php下的ext目录,这里改成 extension_dir = "C:/www/php7/ext"目录,这个是指定php相应扩展的目录,如果这个不设置,那么只能使用php核心功能,另外的curl操作,mbstring字符串操作,xml操作,mysql操作都不能进行,所以这个必须设置好

  网上有些教程说把C:\www\php7;C:\www\php7\ext加入到环境变量中,这里只去掉分号就行了,还有的教程说把ext目录下的dll文件都复制到C:\Windows下,这里的注释不管他,原因很简单就是因为Windows本来就在环境变量当中,这些方法其实本质是一样的,都是让php通过php.ini配置文件读取ext扩展目录,所以我个人推荐第一种方法,就是直接在这里指定目录,简单并且灵活

  开启了这里之后,那么就需要有选择的开启相应的扩展了

  Windows下配置Apache服务器并支持php

  这里的这些扩展,去掉前面的;就是代表的开启,这里建议开启:

  php_mbstring.dll(截取中文标题或摘要时会发现太好用了)

  php_mysqli.dll

  php_mysql.dll(新版本废除了,用mysqli代替)

  php_curl.dll

  php_gd2.dll

  php_pdo_mysql.dll

  php_sockets.dll

  php_xmlrpc.dll

  这些扩展一般就够用了,后续如果需要的话再具体开启

  另外,时区的配置也可以改一下,作用和在程序里面用date_default_timezone_set()函数设置相同,默认是UTC格林威治时间,和北京时间相差8个小时

  Windows下配置Apache服务器并支持php

  这里可以改成:date.timezone = Asia/Shanghai或者date.timezone = PRC

  到这里,我们保存php.ini,然后重启Apache服务器,测试phpinfo()就可以了

  到现在Apache服务器和php环境都配置完成了,更详细的个性化配置等,需要根据项目需要来具体配置,这个后续再不断地补充,目前这个环境一般的开发测试是没问题的

  另外关于MySQL数据库基本上是独立的,单独安装的,只要我们安装好之后,就可以用php或者其他编程语言建立连接去访问数据库中的数据了,具体配置也是相对独立的