avatar

目录
Apache+php+MySQL的安装与配置

下载并解压Apache

下载地址:https://www.apachelounge.com/download/

使用说明:https://httpd.apache.org/docs/current/platform/windows.html

配置 Apache

配置文档:http://httpd.apache.org/docs/current/

安装方式如下,先解压到纯英文路径的文件夹,然后执行以下命令:

Code
1
2
3
4
# 注意:需要使用管理员身份运行命令行!!! 
# 切换到 Apache 解压路径中的 bin 目录 $ cd <解压目录>/bin
# 安装 Apache 服务,‐n 参数是指定服务名称 $ httpd.exe ‐k install ‐n "Apache"
# 如果需要卸载 Apache,可以执行以下命令 $ httpd.exe ‐k uninstall ‐n "Apache"

执行安装命令过后会报一个错,原因是默认的配置文件有问题,需要先调整一下配置文件 conf/httpd.conf ,才能

正常启动服务。

Code
1
2
Errors reported here must be corrected before the service can be star ted.
httpd. exe: Syntax error on line 37 of D:/WebDevelopment/Apache/Apache24/conf/httpd. conf: ServerRoot must be a valid directory

注意:以下所记录的行号仅供参考,不同版本的配置文件可能不尽相同。

找到 Apache 解压目录中的 conf 目录下的 httpd.conf 文件,定位到 37 行,将 c:/Apache24 改为解压目录,我这

里解压到路径是 D:\WebDevelopment\Apache\Apache24 ,所以我这里修改

配置文件中行首的 # 指的是注释

修改完以后,执行以下命令重新测试配置文件是否通过。

Code
1
httpd.exe ‐t

任然报错

Code
1
2
3
4
AH00526: Syntax error on 1ine 246 of D:/WebDevelopment/Apache/Apache24/conf/ :
DocumentRoot C:/Apache24/htdocs
is not a direc tory,
or is not readable

通过错误信息得知,这里是因为另外一个地方配置的目录不存在导致的,所以接着调整 256 行的 DocumentRoot

选项: (文档目录自定义)

然后重新执行 httpd.exe -t 测试配置文件,这时候应该提示 Syntax OK 。

接着运行以下命令重新启动 Apache 服务:

Code
1
2
3
4
5
6
# 注意:需要使用管理员身份运行命令行!!! 
$ httpd.exe ‐k start ‐n "Apache"
# 重新启动 Apache 服务
$ httpd.exe ‐k restart ‐n "Apache"
# 停止 Apache 服务
$ httpd.exe ‐k stop ‐n "Apache" 123456

回到浏览器中,地址栏输入:http://localhost/,回车访问,这时正常应该看到 It works!

注意

  • 确保配置文件语法检查通过

  • 确保 80 端口没有被其他程序占用

  • 确保防火墙允许 80 端口的请求,或者干脆关掉防火墙

  • 如果出现 Forbidden 情况,确保配置文件 httpd.conf 中 256 行( DocumentRoot 之后)的 Directory 配

置的与 DocumentRoot 路径相同

监听端口

监听端口可以随意修改为任意一个未被其他程序监听的端口,可以通过设置配置文件 httpd.conf 中的 Listen

指令后面的数字修改。

网站根目录

网站根目录就是存放我们网站文件的最顶层目录,通常 URL 中域名后面的第一个斜线对应(映射)的就是网

站根目录。

默认文档指的是我们在访问某一个目录时(没有指定具体的文件),默认访问的文件叫做默认文档

:动态网站情况会比较特殊,需要单独考虑,不一定是这个规则。

默认 Apache 的网站根目录是安装目录中的 htdocs 文件夹,为了方便对网站文件的管理,一般我们会将其设置在

一个自定义目录中(如果你不介意其实不修改也无所谓)。

如果需要设置网站根目录,可以通过修改配置文件 httpd.conf 中的网站根目录选项切换。6.3. 默认文档

当客户端访问的是一个目录而不是具体文件时,服务端默认返回这个目录下的某个文档(文件),这个文档

就称之为默认文档

配置文件 httpd.conf 的 285 行的 DirectoryIndex ,默认文档可以配置多个(有前到后依次去找,找到为止,如

果没找到任何一个则启用目录浏览):

虚拟主机

如果一台机器上只有一个网站的话,没有任何问题,但是如果想要在一台机器上部署多个站点,就必须通过配置虚

拟主机的方式解决。

由于后期对虚拟主机的配置操作非常常见,所以我们一般将虚拟主机的配置单独放到一个配置文件中,然后

在主配置文件中引入,避免破坏主配置文件中的其他配置。

Include conf/extra/httpd-vhosts.conf 配置的作用就将另外一个配置文件引入(使其生效)

具体的操作方式就是在主配置文件 httpd.conf 的 514 行取消注释:然后找到 Apache 的虚拟主机配置文件,添加一个如下的虚拟主机配置节点,然后重新启动 Apache。

配置项:

xml
1
2
3
4
5
6
7
8
9
10
11
<VirtualHost *:80>
DocumentRoot "F:/www/wordpress" #虚拟主机根目录
<Directory "F:/www/wordpress">
Options Indexes FollowSymLinks #设置访问权限
AllowOverride None#
Require all granted
</Directory>
ServerName wordpress.io #虚拟主机域名
ErrorLog "logs/wordpress.dev-error.log" #虚拟主机日志
CustomLog "logs/wordpress.dev-access.log" common
</VirtualHost>

修改本机hosts文件:(此目录下 :C:\Windows\System32\drivers\etc)

添加 : 127.0.0.1 wordpress.io

注意:

.dev 的地址解析有异常,最好不要用,还有一些地址还待发现

如果使用了虚拟主机,则默认必须全部使用虚拟主机,即之前的默认网站也必须通过虚拟主机方式配

置,否则访问不到。参考:http://skypegnu1.blog.51cto.com/8991766/1532454

如果虚拟主机的端口使用的不是 80 ,则需要在主配置文件中添加一个对这个端口的监听:

配置Apache支持PHP

  • 在服务器上安装 PHP

    解压 php 到纯英文路径目录中 下载地址:https://windows.php.net/download#php-7.4

  • php.ini的配置

    直接复制PHP根目录中php.ini-development文件,改名为php.ini

    打开php.ini,注释掉分号启用

  • 在 Apache 中添加支持 PHP 的配置

​ 在 Apache 添加 PHP 处理模块

Code
1
2
# php support
LoadModule php7_module D:/WebDevelopment/PHP/php7apache2_4.dll

​ 添加PHP目录

Code
1
PHPIniDir "D:/WebDevelopment/PHP"

​ 在 节点中添加 .php 扩展名解析支持

Code
1
2
# parse .php files 
AddType application/x‐httpd‐php .php

​ 默认文档配置节点 中添加 index.php

默认文档指的是在访问一个目录而不是具体文件名时,默认执行的文件名

Code
1
2
3
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
  • 重启 Apache

安装MySQL解压版

下载地址:https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.18-winx64.zip

  • 下载完之后,解压至你想要的目录

  • 添加环境变量 MySQL的bin目录

  • cmd管理员权限进入到MySQL的根目录的bin目录

  • 新建一个my.ini 配置文件如下

    Code
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    [mysql]
    ; 设置mysql客户端默认字符集
    default-character-set=utf8
    [mysqld]
    ;设置3306端口
    port = 3306
    ; 设置mysql的安装目录
    basedir=D:\Software\Programming Software\Database\MySQL\mysql-8.0.15-winx64
    ; 设置mysql数据库的数据的存放目录
    datadir=D:\Software\Programming Software\Database\MySQL\mysql-8.0.15-winx64\data
    ; 允许最大连接数
    max_connections=200
    ; 服务端使用的字符集默认为8比特编码的latin1字符集
    character-set-server=utf8
    ; 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
  • 进入MySQL的根目录的bin目录(用管理员cmd)

命令行输入:

Code
1
mysqld --install

初始化生成随机密码:末尾密码请记住

Code
1
mysqld --initialize --console

启动服务:

Code
1
net start mysql

使用随机密码登录并修改密码 :

Code
1
mysql -u root -p

修改密码:

Code
1
2
3
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
更新密码:
update mysql.user set authentication_string=password('新密码') where user='root' and Host = 'localhost';

PHP开启MySQL:

打开PHP的php.ini文件

启用MySQL: 去除前面的分号即可

有可能启用后启动php会报错,提示无法加载模块。可能原因是php的模块应为 php_pdo_mysql.dll,而php.ini的配置中,缺少php前缀,加上即可

文章作者: 止戈-
文章链接: http://vchamps.cn/2020/03/08/Apache-php-MySQL%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ever-Wu