Windows下apache+php的安装和配置

1、php安装和配置

1.下载和安装

PHP下载地址http://windows.php.net/download,下载最新线程安全版PHP zip压缩包,解压到本地安装目录:C:\develop\phpphp

注意:下载的PHP VC版本不能比前面安装的vc redist版高html

2.配置

 在php目录下找到php.ini-development文件,复制一份并重命名为php.inimysql

更改自定义扩展目录,找到extension_dir,更改成:redis

extension_dir = "C:/develop/php/ext"

开启扩展,找到extension,根据须要去掉前边注释:sql

extension=php_bz2.dll
extension=php_curl.dll
extension=php_com_dotnet.dll
extension=php_fileinfo.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_gmp.dll
extension=php_intl.dll
extension=php_imap.dll
;extension=php_interbase.dll
extension=php_ldap.dll
extension=php_mbstring.dll
extension=php_exif.dll      ; Must be after mbstring as it depends on it
extension=php_mysql.dll
extension=php_mysqli.dll
;extension=php_oci8_12c.dll  ; Use with Oracle Database 12c Instant Client
extension=php_openssl.dll
;extension=php_pdo_firebird.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
extension=php_shmop.dll

; The MIBS data available in the PHP distribution must be installed. 
; See http://www.php.net/manual/en/snmp.installation.php 
;extension=php_snmp.dll

extension=php_soap.dll
extension=php_sockets.dll
extension=php_sqlite3.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
extension=php_xmlrpc.dll
extension=php_xsl.dll

设置默认时区,找到date.timezone,更改成:apache

date.timezone = Asia/Shanghai

 

2、apache安装和配置

1.下载和安装

Apachelounge官方下载地址:http://www.apachelounge.com/download/,首先下载并安装vc redist,这是Apache运行必需的一个组件windows

Apache Lounge提供了创建在x86和x64系统的VC11,VC14,VC15 (Visual Studio 2012, 2015 or 2017分别编译)三个版本浏览器

根据选择的apache安装对应的vc redist,下载apache的压缩包,解压到本地安装目录:C:\develop\Apache24安全

2.配置

进入apache的conf目录,打开apache的配置文件httpd.confphp7

修改apache软件所在目录:

ServerRoot "C:\develop\Apache24"

修改主机名:

ServerName localhost:80

修改htdocs目录:

DocumentRoot "C:/develop/edoc/docphp"
<Directory "C:/develop/edoc/docphp">

修改默认索引以支持php:

DirectoryIndex index.php index.html index.htm

加载php5模块:

LoadModule php5_module "C:/develop/php/php5apache2_4.dll"
<IfModule php5_module> 
    PHPIniDir "C:/develop/php/" 
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
</IfModule>

php7对应的为:

LoadModule php7_module "C:/develop/php/php7apache2_4.dll"
<IfModule php7_module> 
    PHPIniDir "C:/develop/php/" 
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
</IfModule>

开启rewrite功能:

LoadModule rewrite_module modules/mod_rewrite.so

其余模块能够参考apache模块详解:https://blog.csdn.net/yangyu19910407/article/details/10008007

 将apache安装成服务:

httpd -k install -n "apache4edoc" -f "C:\develop\Apache24\conf\httpd.conf"

httpd命令参数含义:

 -f config
在启动中使用config做为配置文件。若是config不以"/"开头,则它是相对于ServerRoot的路径。其默认值是conf/httpd

-k start|restart|graceful|stop|graceful-stop
发送信号使httpd启动、从新启动或中止

下列参数仅用于Windows平台
-k install|config|uninstall
安装Apache为一个Windows NT的服务;改变Apache服务的启动方式;删除Apache服务。

-n name
指定Apache服务的名称为name

能够使用httpd -h查看命令帮助

成功启动Apache后,在docphp目录编写phpinfo.php:

<?php
phpinfo();
?>

浏览器地址栏输入localhost/phpinfo.php,显示PHP相关信息即代表成功了。

 遇到问题:

1.PHP Warning: PHP Startup: Unable to load dynamic library 'C:\develop\php\ext\php_curl.dll' - �Ҳ���ָ����ģ�顣 

in Unknown on line 0

将C:\develop\php目录下的libeay32.dll、libssh2.dll、ssleay32.dll复制到apache安装目录的bin目录下,我这里是C:\develop\Apache24\bin,也有说复制到系统的system32下,应该也是能够的不过这样不知道对别的功能有没有影响,这几个文件的版本好像仍是挺多的

2.PHP Warning: PHP Startup: Unable to load dynamic library 'C:\develop\php\ext\php_intl.dll' - �Ҳ���ָ����ģ�顣 

in Unknown on line 0

将C:\develop\php目录下的icu*.dll之类的文件复制到C:\develop\Apache24\bin,固然也能够复制到system32

在解决问题的时候,发现了这么句话,感受颇有用:

When any application attempts to use a dll file in windows, the system searches for this file using the following order:

The directory from which the application loaded.
The windows\\system32 directory.
The windows\\system directory.
The windows directory.
The current directory.
The directories that are listed in the PATH environment variable.

原文是在:https://www.jianshu.com/p/7e9b51c9cdd1

弄了好多天的东西终于成功了!!!