风之旅人 Android Dev Engineer

1.PHP环境搭建

2019-10-09
PHP

Apache HTTP Server

配置默认站点

  1. 让Apache确定服务器上访问的位置:网站文件夹所在位置 httpd.conf:
    Define SRVROOT "C:\fastwork\Apache24\htdocs"
    ServerRoot "${SRVROOT}"
    
  2. 方便用户使用名字访问对应的网站:给文件夹对应的取一个别名httpd.conf:ServerName localhost:8081
    端口可以单独实现:httpd.conf:Listen 80
  3. 凡是涉及到Apache配置文件的修改,那么需要重启Apache才能生效
  4. 实现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中,可以将虚拟主机划分成两类:

  1. 基于IP的虚拟主机:一台电脑上有多个IP,每个IP对应一个网站 原理:电脑默认只有一个IP,因为通常只配有一个网卡;但是有的电脑(服务器居多)可以配置多个网卡,每个网卡可以绑定一个IP地址。
  2. 基于域名的虚拟主机:一台电脑上只有一个IP,但是IP下可以制作多个网站,但是需要给每个网站不同的名字(虚拟主机名.

搭建基于域名的虚拟主机

官方指南👉http://httpd.apache.org/docs/trunk/vhosts/

在Apache中,虚拟主机的搭建有两种方式:

  1. 在主配置文件中搭建:需要手动开启虚拟主机(基于域名) NameVirtualHost *:80

  2. 在专门的虚拟主机配置文件中配置

  • 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标签,针对不同的文件夹

  1. 一旦启用虚拟主机配置文件,那么默认的主机地址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>
  1. httpd -S 可查看虚拟机设置信息,方便调试。

相关文章

评论