windows 配置apache+php+mysql环境

时间:2022-11-11 20:33:50

windows 配置apache+php+mysql环境


第一部分:系统环境和安装介质

操作系统:Windows Server 2008R2 /Windows 7 64bit

Apache2.4:

Download页面

http://httpd.apache.org/download.cgi

Apache 2.4 Server Binaries下载页面

http://www.apachehaus.com/cgi-bin/download.plx


Apache2.4 安装说明

http://httpd.apache.org/docs/current/platform/windows.html#down


php7:

http://windows.php.net/download#php-7.1

要下载的版本

VC14 x64 Thread Safe (2017-Apr-12 02:23:05)


如果下载

VC14 x64 Non Thread Safe (2017-Apr-12 02:22:49)

是没有php7apache2_4.dll 这个文件的。


MySQL:

https://www.mysql.com/downloads/

登录后下载:

mysql-5.6.29-winx64.zip


原本使用mysql-advanced-5.7.17-winx64,后来发现MySQL5.7 有安全配置,初始化后有安全限制,因为本机系统配置原因导致无法登录。故先换为5.6.以后再研究一下MySQL5.7。


vc2015

到这里下载:http://www.microsoft.com/zh-cn/download/details.aspx?id=48145 

            点下载,之后选择vc_redist.x86.exe / vc_redist.x64.exe下载,运行安装。

            需要注意,安装vc14必须开启这3个服务,否则一定会安装失败:
            进入服务启动下列服务: windows modules installer、windows update、window defender service


第二部分:安装和配置

1. Apaceh2.4 配置


将apache解压缩,我的httpd路径:D:\Apache24



conf 路径下:
httpd.conf
1. 找到
Define SRVROOT "D:\Apache24"
ServerRoot "${SRVROOT}"

修改Define SRVROOT 的路径,注意有双引号。

2.修改端口:
#Listen 12.34.56.78:8081
Listen 8081

ServerName localhost:8081

3.修改SSL的端口(默认端口443)
\conf\extra 路径下
2个文件中的443 全部替换为 446
httpd-ahssl.conf
httpd-ssl.conf


4.加载httpd服务,启动服务
bin 路径下
方法一
a. ApacheMonitor.exe 启动apache服务监控器
b. 启动apache


方法二:
用管理员权限启动cmd
C:> d:
D:> cd D:\Apache24\bin
--安装apache
D:\Apache24\bin>httpd.exe -k install
--卸载apache
D:\Apache24\bin>httpd.exe -k uninstall
--启动apache
D:\Apache24\bin>httpd.exe -k start
--停止apache
D:\Apache24\bin>httpd.exe -k stop
--重启apache
D:\Apache24\bin>httpd.exe -k restart

浏览网站:
http://127.0.0.1:8081/
https://localhost:446/


2. 配置php7:

将php加压缩,我的php7路径:D:\php-7.1.4

复制php.ini-development后重命名为php.ini


修改httpd(Apache)的配置文件:D:\Apache24\conf\httpd.conf

在“#LoadModule watchdog_module modules/mod_watchdog.so
#LoadModule xml2enc_module modules/mod_xml2enc.so”

后面添加如下内容:

PHPIniDir "D:/php-7.1.4"
AddType application/x-httpd-php .php .html .htm
LoadModule php7_module "D:/php-7.1.4/php7apache2_4.dll"


找到<IfModule dir_module>添加index.php

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



修改php7的配置文件:

找到

; On windows:
; extension_dir = "ext"

修改为:
 extension_dir = "D:/php-7.1.4/ext"


修改控件:(; 表示注释掉,需要用的就需要去掉前面的;号)

;extension=php_bz2.dll
extension=php_curl.dll
;extension=php_fileinfo.dll
;extension=php_ftp.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_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


在操作系统的环境变量Path中最后一行添加php路径:

;D:\php-7.1.4;D:\php-7.1.4\ext


测试php:

在D:\Apache24\htdocs路径下创建文件:

phpinfo.php

文件内容:

<?php 

phpinfo();
?>


重启Apache后访问页面:http://127.0.0.1:8081/phpinfo.php

出现php配置说明页面就表示配置正确。


3. 配置MySQL:

mysql-5.6.29-winx64 解压缩到

D:\MySQL\Mysql-Windows\mysql-5.6.29-winx64


复制my-default.ini文件后重命名为my.ini:

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.

[WinMySQLAdmin]
#指定mysql服务启动的启动文件
Server=D:\MySQL\Mysql-Windows\mysql-5.6.29-winx64\bin\mysql.exe

[mysql]
no-auto-rehash
default-character-set=utf8

[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin

# These are commonly set, remove the # and set as required.
 basedir = D:\MySQL\Mysql-Windows\mysql-5.6.29-winx64
 datadir = D:\MySQL\Mysql-Windows\mysql-5.6.29-winx64\data
 port = 3306
 server_id = 1
# default-character-set=gbk
#default-character-set=utf8
character-set-server=utf8

# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M 

[client]
#设置mysql客户端的字符集
#default-character-set=gbk
default-character-set=utf8
#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 


启动MySQL:

C:\>d:

D:\>cd D:\MySQL\Mysql-Windows\mysql-5.6.29-winx64\bin

D:\MySQL\Mysql-Windows\mysql-5.6.29-winx64\bin>mysqld -install
Service successfully installed.

D:\MySQL\Mysql-Windows\mysql-5.6.29-winx64\bin>net start mysql
MySQL 服务正在启动 ...
MySQL 服务已经启动成功。


设置root密码

--password 为root密码,请自行修改

mysql> update user set password=password('password') where user='root';
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3  Changed: 3  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

--查询一下
mysql> select host,user,password from user;

mysql>exit


--重新登录

--password 为root密码

D:\MySQL\Mysql-Windows\mysql-5.6.29-winx64\bin>mysql -u root -p(password)



D:\Apache\Apache24\htdocs路径下新建文件 dbtest.php :

内容如下:

<?php  
header("Content-type: text/html; charset=utf8");
    $mysqli = new mysqli("localhost", "root", "password", "mysql");  
    if(!$mysqli)  {  
        echo"database error";  
    }else{  
        echo"php env successful 连接成功";  
    }  
    $mysqli->close();  
?>  


重启Apache后访问页面:http://127.0.0.1:8081/dbtest.php

页面出现“php env successful 连接成功”就表示配置正确。


第三部分:综合测试

创建一个数据库,建一个新表,填写测试数据,通过网站访问数据库中的数据。

1. 创建一个新的数据库,建一张新表

mysql> create database TEST;


mysql>

CREATE TABLE TEST1  ( 
`ID`     varchar(25) NULL,
`NAME`   varchar(25) NULL,
`MAIL`   varchar(25) NULL,
`PHONE`   varchar(25) NULL,
`ADDRESS` varchar(25) NULL,
`BZ`     varchar(25) NULL,
PRIMARY KEY(`ID`)
)


mysql>

INSERT INTO `ccejw`.test1(`ID`, `NAME`, `MAIL`, `PHONE`, `ADDRESS`)
VALUES('1', '张三', '_@_._', '1234567890', '地址1')
GO

INSERT INTO `ccejw`.test1(`ID`, `NAME`, `MAIL`, `PHONE`, `ADDRESS`)
VALUES('2', '李四', '_@_._', '1234567890', '地址2')
GO


mysql>use test;


test>select * from test1;


test> select * from test1;
+----+--------+-------+------------+---------+------+
| ID | NAME   | MAIL  | PHONE      | ADDRESS | BZ   |
+----+--------+-------+------------+---------+------+
| 1  | 张三   | _@_._ | 1234567890 | 地址1   | NULL |
| 2  | 李四   | _@_._ | 1234567890 | 地址2   | NULL |
+----+--------+-------+------------+---------+------+
2 rows in set (0.00 sec)


在D:\Apache\Apache24\htdocs路径下创建文件testselect.php:

内容如下:



<html>
<head>
<title>浏览器中的记录test</title>


</head>
<body>
<center>
<?php
$db_host="localhost";      //MYSQL服务器名
$db_user="root";       //MYSQL用户名
$db_pass="password";       //MYSQL用户对应密码
$db_name="test";      //要操作的数据库
//使用mysql_connect()函数对服务器进行连接,如果出错返回相应信息

$link=new mysqli($db_host,$db_user,$db_pass,$db_name)or die("不能连接到服务器".mysql_error());
//mysql_select_db($db_name,$link);   //选择相应的数据库,这里选择test库
$sql="select * from test1";     //先执行SQL语句显示所有记录以与插入后相比较

$result=mysqli_query($link,$sql);   //使用mysql_query()发送SQL请求
echo "当前表中的记录有:";
echo "<table border=1>";     //使用表格格式化数据
echo "<tr><td>ID</td><td>NAME</td><td>邮箱</td><td>电话</td><td>地址</td><td>备注</td></tr>";
while($row=mysqli_fetch_array($result))  //遍历SQL语句执行结果把值赋给数组
{
 echo "<tr>";
 echo "<td>".$row[ID]."</td>";   //显示ID
 echo "<td>".$row[NAME]." </td>";  //显示姓名
 echo "<td>".$row[MAIL]." </td>";   //显示邮箱
 echo "<td>".$row[PHONE]." </td>";  //显示电话
 echo "<td>".$row[ADDRESS]." </td>";  //显示地址
 echo "<td>".$row[BZ]." </td>";  //显示备注
 echo "</tr>";
}
echo "</table>";
?>
</center>
</body>
</html>


访问网址:

http://127.0.0.1:8081/testselect.php

页面显示:


当前表中的记录有:

ID NAME 邮箱 电话 地址 备注
1 张三 _@_._ 1234567890 地址1  
2 李四 _@_._ 1234567890 地址2  


至此,基础配置完成。本配置仅能作为测试环境使用,生产环境中最好使用Liunx+Apache+php+mysql/mongodb

基础配置后还需要针对安全做一些安全上的配置,比如修改Apache的默认网站文件路径,最好使用相对路径。开放必要的端口,关闭不需要的端口。

修改mysql/mongodb数据库的密码,尽量不要使用root用户,禁用mysql远程登录等等。