Apache HTTP Server
配置默认站点
- 让Apache确定服务器上访问的位置:网站文件夹所在位置 httpd.conf:
Define SRVROOT "C:\fastwork\Apache24\htdocs" ServerRoot "${SRVROOT}"
- 方便用户使用名字访问对应的网站:给文件夹对应的取一个别名httpd.conf:ServerName localhost:8081
端口可以单独实现:httpd.conf:Listen 80 - 凡是涉及到Apache配置文件的修改,那么需要重启Apache才能生效
- 实现DNS域名解析:通常默认站点都是本地DNS。修改hosts文件, Windows下为
C:\Windows\System32\drivers\etc
httpd.exe 常用命令
最后, cmd.exe以管理员身份启动后, 进入bin目录下。
查看Apache具有哪些功能以及配置文件是否有错:httpd 或者 httpd.exe(文件所在目录);
查看使用的模块:httpd -M ,static 静态加载,Apache 启动就加载好的直接使用; shared 动态加载,用的时候才加载;
验证配置文件是否有效:httpd –t ;
安装服务: httpd -k install ;
httpd -k start 或者 win+R,输入 services.msc , 启动Apache服务
httpd -k stop
httpd -k restart
httpd -k uninstall
删除Apache服务应先停止再删除
PHP安装
PHP.exe 就是可以解析PHP代码转变成 HTML 代码从而让浏览器可以解析的。 php-7.3.10-Win32-VC15-x64.zip 解压后重命名为php7 , CMD测试:
1. index.php
<?php
echo '你好PHP\r\nNew'
?>
2. cmd.exe
C:\fastwork\php7>php.exe -f C:\fastwork\Apache24\htdocs\index.php
你好PHP\r\nNew
配置Apache加载PHP模块
httpd.conf 中配置
# 加载PHP
LoadModule php7_module 'C:\fastwork\php7\php7apache2_4.dll'
Apache分配工作给PHP模块:如果是PHP代码就交给PHP处理:文件后缀判断.php结尾肯定是PHP代码:
# 分配给PHP
AddType application/x-httpd-php .php
👉http://localhost/index.php
将PHP的配置文件加载到Apache配置文件中:共同生效在Apache中指定PHP配置文件所在路径 PHPIniDir php.ini 所在路径:
# 加载PHP配置文件,需要创建php.ini文件
PHPIniDir 'C:\fastwork\php7'
🍎 修改配置文件后,重启才会生效。
目前 httpd.conf 中配置项
Define SRVROOT "C:\fastwork\Apache24"
Listen 80
# 加载PHP
LoadModule php7_module 'C:\fastwork\php7\php7apache2_4.dll'
# 加载PHP配置文件,需要创建php.ini文件
PHPIniDir 'C:\fastwork\php7'
# 分配给PHP
AddType application/x-httpd-php .php
MySQL安装
下载地址 https://dev.mysql.com/downloads/mysql/ ;
使用版本 mysql-8.0.17-winx64.zip
准备配置文件(mysql.ini
)
如果没有自动生成需要手动创建
[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 = .....
# datadir = .....
# port = .....
# server_id = .....
basedir = "C:\fastwork\mysql"
datadir = "C:\fastwork\mysql\data\"
port = 3306
max_connections=1000
max_user_connections=500
wait_timeout=200
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
#character-set-server=UTF-8
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#忘记密码时使用
#skip-grant-tables
#设置协议认证方式(重点啊)
default_authentication_plugin=mysql_native_password
[mysql]
default-character-set=utf8
初始化
mysqld --install
安装多个MySQL,需要用服务名作区分 👉mysqld –install [服务名] 执行安装, 这里会等待一段时间
mysqld --initialize-insecure
启动MySQL服务: net start mysql
登录(初始化密码为NULL,直接回车进入): mysql -u root -p
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
PHP连接MySQL数据库👉php.ini
php.ini
(为 php.ini-development 或者 php.ini-production的副本)
放开mysql扩展
extension=pdo_mysql
PHP中所有的扩展都在 ext 文件夹中,需要指定扩展所在路径:extension_dir
; On windows:
;extension_dir = "ext"
;增加扩展路径
extension_dir = "C:\fastwork\php7\ext"
时区设置
; 增加时区
date.timezone = PRC
配置虚拟主机
虚拟主机的分类
在Apache中,可以将虚拟主机划分成两类:
- 基于IP的虚拟主机:一台电脑上有多个IP,每个IP对应一个网站 原理:电脑默认只有一个IP,因为通常只配有一个网卡;但是有的电脑(服务器居多)可以配置多个网卡,每个网卡可以绑定一个IP地址。
- 基于域名的虚拟主机:一台电脑上只有一个IP,但是IP下可以制作多个网站,但是需要给每个网站不同的名字(虚拟主机名.
搭建基于域名的虚拟主机
在Apache中,虚拟主机的搭建有两种方式:
-
在主配置文件中搭建:需要手动开启虚拟主机(基于域名) NameVirtualHost *:80
-
在专门的虚拟主机配置文件中配置
- 2.1 在主配置文件中加载虚拟主机配置文件(httpd.conf):虚拟主机配置文件已经开启了虚拟主机NameVirtualHost
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
- 2.2 虚拟主机从配置文件(extra/httpd-vhosts.conf)中配置虚拟主机
<VirtualHost *:80>
# 1.增加对应的站点文件夹位置
DocumentRoot "${SRVROOT}/mysite"
# 2.增加主机名,文件夹DocumentRoot的别名
ServerName www.mysite.com:80
# 3.hosts(C:\Windows\System32\drivers\etc)中增加:
# 127.0.0.1 www.mysite.com
# <Directory "站点目录">
<Directory "${SRVROOT}/mysite">
# 4.设定方式:代表匹配权限的顺序
# 需要给当前设定的站点(目录)访问权限,其中 Order 没有顺序关系:实际顺序有意义
Order Deny,Allow
# 5.限定范围:按照顺序执行
Deny from all
Allow from all
# 6.列表显示(开发环境)
# 配置访问列表:当访问是一个目录时候(没有指定具体要访问的文件)
# Options Indexes [FollowSymLinks],如果访问目录,那么列表显示所有文件
Options Indexes FollowSymLinks
# 7.指定默认访问文件
# 当用户访问指定目录不指定文件的时候,通常需要系统指定一个默认文件
# DirectoryIndex 默认的文件列表,使用空格分离
DirectoryIndex index.html index.htm index.php
</Directory>
</VirtualHost>
注意:如果说网站中整个网站根目录允许访问,但是其中还有其他文件夹不允许访问:可以增加多个Directory标签,针对不同的文件夹
- 一旦启用虚拟主机配置文件,那么默认的主机地址localhost就不再生效,如果想要生效:为localhost增加单独的虚拟主机
# 配置 localhost
<VirtualHost *:80>
DocumentRoot "${SRVROOT}/htdocs"
ServerName localhost
<Directory "${SRVROOT}/htdocs">
Order Deny,Allow
Deny from all
Allow from all
Options Indexes FollowSymLinks
DirectoryIndex index.html index.htm index.php
</Directory>
</VirtualHost>
- httpd -S 可查看虚拟机设置信息,方便调试。