php环境的配置相对来说比较繁琐,网上教程大部分都是放一起说,总体感觉比较乱,其实Apache是一款通用的服务器软件,可以用来配置支持静态页面,php、Python、Java甚至asp等服务端语言,要把Apache理解成单独的服务器,并不一定和php搭档,只是和php配合是比较流行的一种组合方式,就比如lamp就是比较流行的网站架构,所以,首先我们来配置Apache,首先让服务器跑起来并能解析静态的html文件
首先我们去官网下载最新版本的Apache,首先来到首页:http://www.apache.org/
这就是Apache基金会的官方网站,拉到底会看到有很多的开源项目,如Spark、Struts框架、流行的Hadoop大数据平台、tomcat服务器等,最著名的就是第一个HTTP Server也就是http服务器,
现在,点击进去就是Apache服务器页面了,网址是:http://httpd.apache.org/
官方提供了很多文档等,比网上搜到的结果要系统并且准确,并且还有中文版
好了,我们看到现在最新版是2.4.18,点击"Download"超链接
进来之后会看到下载的类型,前面几项是Linux版本的包文件和源码,点击最后一个Windows版本
然后现在看到的就是下载页面:
我们看到,Apache服务器没有专门用于Windows的版本,需要自己对源码进行编译生成二进制文件,如果不编译的话可以下载下面提供的编译好的程序
后面的WampServer和XAMPP就是Windows平台最流行的集成环境,上面第一项或者第二项就是编译好的Windows版本的Apache服务器,我们单击第二项进去,就是最终的下载页面了,链接是:http://www.apachelounge.com/download/
现在我们根据操作系统的位数直接下载就可以了,
下载完之后,我们为了方便,首先建立一个目录用来专门放置服务器和后续的php运行环境,我是建立在C:/www下,然后把刚才下载的服务器解压到该目录下,然后C:/www/Apache24下就是这个样子
还要注意一个地方就是最新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版本
这里根据操作系统位数一定要下载线程安全的版本,也就是Thread Safe的版本,下载完之后解压到C:/www下,我这里下载的是php7所以路径是:C:\www\php7
然后我们在这个目录下会看到,php7apache2_4.dll这个就是Apache运行php的必要组件,现在继续打开Apache的配置文件httpd.conf
把光标定位在最后,新起一行输入:LoadModule php7_module "C:/www/php7/php7apache2_4.dll"
这行代码意思就是让Apache服务器引入php模块,从而可以支持php应用的web访问
要注意,php5和php7是不一样的
然后,继续添加一行
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:这行
把下面的; 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扩展目录,所以我个人推荐第一种方法,就是直接在这里指定目录,简单并且灵活
开启了这里之后,那么就需要有选择的开启相应的扩展了
这里的这些扩展,去掉前面的;就是代表的开启,这里建议开启:
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个小时
这里可以改成:date.timezone = Asia/Shanghai或者date.timezone = PRC
到这里,我们保存php.ini,然后重启Apache服务器,测试phpinfo()就可以了
到现在Apache服务器和php环境都配置完成了,更详细的个性化配置等,需要根据项目需要来具体配置,这个后续再不断地补充,目前这个环境一般的开发测试是没问题的
另外关于MySQL数据库基本上是独立的,单独安装的,只要我们安装好之后,就可以用php或者其他编程语言建立连接去访问数据库中的数据了,具体配置也是相对独立的