Windows Server 2008 R2 x64 搭建apahce2.4.33+php5.6.36+mysql5.7.22

时间:2022-04-30 20:32:28
 

本文原创,话费两天才搭建并整理好文档,请不要抄袭,可以作为技术文档收藏,不可共享到网络,侵权必究!!!!!!!

首先,程序版本和平台一定要下载对不然,会报各种错。比如apache 64位,php32 位 ,会报一下错误:httpd.exe: Syntax error on line 118 of C:/AppServ/Apache2.4/conf/httpd.conf: Cannot load C:/AppServ\\php5.6.36\\php5apache2_4.dll into server: %1 \xb2\xbb\xca\xc7\xd3\xd0\xd0\xa7\xb5\xc4 Win32 \xd3\xa6\xd3\xc3\xb3\xcc\xd0\xf2\xa1\xa3

第一步下载并解压:

由于apache 只提供源码,不提供编译好的安装程序,这里提供一个下载地址

apache下载地址 https://www.apachehaus.com/cgi-bin/download.plx

php下载地址 https://windows.php.net/downloads/releases/

mysql 下载地址 https://dev.mysql.com/downloads/mysql/5.7.html#downloads这里以在64位Windows Server 2008 R2上搭建为例进行讲解,通过以上链接下载:

httpd-2.4.33-x64-vc11-r2.zip
php-5.6.36-Win32-VC11-x64.zip
mysql-5.7.22-winx64.zip

解压到C盘C:\AppServ目录下(楼主贫穷,买了个阿里云 2核4G内存 3年1600毛爷爷,,只要了个C盘40G,不过做网站是够用了)有兴趣下单连接https://s.click.taobao.com/t?e=m%3D2%26s%3DoiGq4bM2Dq8cQipKwQzePCperVdZeJviEViQ0P1Vf2kguMN8XjClAvoz9%2BQZLSKmrxXXzX96Xo%2BOJcnm1kBGCWh5MTSh%2FWduINkpnHpJDjQYjmFuVPVomRmIkXBqRClNTcEU%2BDykfuSM%2BhtH71aX6uIOTs4KMj3yjpOyWSRdiSZDEm2YKA6YIrbIzrZDfgWtwGXLU4WXsy8CZuZoOOkzXFxfvOyje0ynomfkDJRs%2BhU%3D

如图
Windows Server 2008 R2 x64 搭建apahce2.4.33+php5.6.36+mysql5.7.22

二、配置apache

  • 注意:windows环境下的配置中所有文件目录都要使用‘绝对路径’,相对路径会报错!
1、这里默认安装在C:\AppServ\apache2.4\目录下,将apache 安装为系统服务,随系统自启动。
C:\AppServ\apache2.4\bin\httpd -k install

   注意:如果提示缺少MSVCR110.dll 请下载VC++2012 x64 
   下载地址:http://www.microsoft.com/zh-CN/download/details.aspx?id=30679

2、编辑apahce/conf/httpd.conf,修改Define SRVROOT 为根目录,不然启动apache会报错:

Define SRVROOT "C:\AppServ\apache2.4"
ServerRoot "${SRVROOT}

3、win+r 输入service.msc 查看服务是否安装成功,找到apache2.4为成功

Windows Server 2008 R2 x64 搭建apahce2.4.33+php5.6.36+mysql5.7.22

4、编辑apahce/conf/httpd.conf,添加apache以模块方式运行php,并添加php文件扩展名支持以及php.ini路径配置

LoadModule php5_module C:/AppServ/php5.6.36/php5apache2_4.dll
AddType application/x-httpd-php .php .html .htm
PHPIniDir "C:/AppServ/php5.6.36"

5、编辑apahce/conf/httpd.conf, 找到

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

   修改为,添加自动首页匹配index.php:

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

6、在C:/AppServ下网站文件存放目录www,编辑apahce/conf/httpd.conf,找到DocumentRoot,修改为

DocumentRoot "C:/AppServ/www"
<Directory "${SRVROOT}/htdocs"> 修改为 <Directory "C:/AppServ/www">

7、隐藏浏览器Response header中 Server 字段中 Apache版本信息:

  ServerSignature Off
  
ServerTokens Prod

三、配置php.ini

1、在C:AppServ/php5.6.33 目录下有两个php.ini模板配置文件php.ini-production和php.ini-development,前者为生产环境,安全相关配置级别较高,后者为测试环境,级别相对较低,一些错误提示及异常会抛出。这里是配置生产环境,将前者重命名为php.ini。打开php.ini 找到扩展extension_dir目录配置去掉分号,改为

extension_dir = "C:AppServ/php5.6.33/ext"

2、找到以;extension=php_XXXXX.dll开头的这几行,根据需要开启的扩展去掉开始的分号';' php5.6.33中默认开启php_pdo所以extension=php_pdo.dll再次不适用。

extension=php_curl.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
extension=php_pdo_sqlite.dll
extension=php_sockets.dll

注意:php5.5.0开始不再建议使用php_mysql.dll,替换方案为php_mysqli.dll, php7.0开始彻底废除,开启扩展会报错!

3、隐藏浏览器 response header 中 X-Powered-By字段中 php版本信息

  在php.ini 中找到 expose_php = On   修改为  expose_php = Off   

三、安装mysql

1、新增系统环境变量名:MYSQL_HOME,变量值:C:/AppServ/MySQL

path里添加:%MYSQL_HOME%\bin;

Windows Server 2008 R2 x64 搭建apahce2.4.33+php5.6.36+mysql5.7.22

2、在C:AppServ/MySQL/分目录下新建mysql配置文件php.ini

[client]
 port=3306
 default-character-set=utf8
[mysqld]
# 设置为自己MYSQL的安装目录
 basedir=D:\MySQL
# 设置为MYSQL的数据目录
 datadir=C:/AppServ\MySQL\data
 port=3306
 character_set_server=utf8
 sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER
#开启查询缓存
 explicit_defaults_for_timestamp=trueskip-grant-tables

3、从控制台进入到MySQL解压目录下的 bin 目录下,即C:/AppServ/MySQL/bin    执行:

mysqld -install

  •   注意:如果报错缺少MSVCR120.DLL。请执行步骤6!

4、Mysql初始化data数据库,执行:

mysqld --initialize-insecure --user=mysql

5 、更改mysql密码,mysql5.7版本更改root密码与之前的命令不同,首先打开一个cmd窗口,在mysql\bin\文件夹下执行:

net stop mysql            //停掉服务
mysqld --skip-grant-tables     //跳过权限表运行

  此时不要关闭当前cmd窗口,然后再打开一个cmd窗口,输入:

mysql -u root -p
use mysql
update user set authentication_string = password('root123'), password_expired = 'N', password_last_changed = now() where user = 'root';

6、楼主启动过程中报错,查找原因楼主系统为64位win Server 2008 R2,系统中安装的 vc++2013为32位,需要下载64位,安装后不再报错

下载地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=40784

Windows Server 2008 R2 x64 搭建apahce2.4.33+php5.6.36+mysql5.7.22