【环境】如何搭建PHP开发环境(PHP+Apache+MySQL)
前提:进入cmd命令尽量都是用管理员身份运行,否则可能出错。
PHP
1,下载PHP压缩包,地址:https://windows.php.net/download ,解压到指定路径即可
2,配置php.ini
1)PHP解压路径中复制php.ini-development,并修改文件名称为: php.ini
2)php.ini中,设置php的模块位置(找关键字extension_dir)
3)php.ini中,去掉注释开启mysqli模块
4)有些安装后,php.ini中找不到extension=php_mysql.dll / extension=php_mysqli.dll,直接手动添加即可。
Apache
1,安装地址:https://apr.apache.org/download.cgi
2,解压到指定路径 eg: D:\Program Files\Apache24
3, 打开CMD,进入指定路径:D:\Program Files\Apache24\bin 执行
- httpd.exe -k install
- httpd.exe
出现:httpd.exe: Syntax error on line 39 of D:/Program Files/Apache24/conf/httpd.conf: ServerRoot must be a valid directory,解压路径与原始路径不一致
修改 D:\Program Files\Apache24\conf 下的httpd.conf文件
4,为避免端口冲突,win+R,输入regedit 打开注册表,进入\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP,将start中数值数据改为0
5, 重新执行 httpd.exe,浏览器输入:127.0.0.1 ,出现以下界面则启动成功
6,加载PHP模块到Apache中
在apche的主配置文件apache/conf/httpd.conf中,添加以下三行:
LoadModule php7_module “php7apache2_4.dll” (引号内是php7apache2_4.dll的完整路径) AddType Application/x-httpd-php .php (给apache设定,php文件的后缀为“.php”) PHPIniDir “php.ini文件所在路径” (在apache中设置php.ini的路径)
6,在路径D:\Program Files\Apache24\htdocs 中添加phpinfo.php文件,内容如下:
<?php phpinfo(); ?>
7,浏览器执行:127.0.0.1/phpinfo.php,启动成功如下:
MySQL
1,下载地址:https://www.mysql.com/
滑动到页面最底部,点击MySQL Community Server
2,选择一个系统下载即可,跳转到注册或登录页面,可点击免登陆下载
3,进入D:\Program Files\mysql-5.7.37\bin,执行:
mysqld --initialize --console (会多出一个data文件,多次执行,则需要先把data删除,不然会报错:the data directory has files in it. Aborting.)
执行成功输出初始帐号密码(不记得也可以删除data重新执行mysqld --initialize --console重新生成)
可能会出现 - 找不到msvcp120.dll无法继续执行代码,因为没有安装微软常用运行库合集64位导致的,点击如下链接
https://www.microsoft.com/zh-CN/download/details.aspx?id=40784 进入微软下载中心,下载vcredist
4,安装mysql服务
mysqld --install 或 mysqld.exe -install
5,启动mysql服务
net start mysql
6,mysql根目录添加my.ini文件,配置如下:
[client] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] skip-grant-tables # 这个是先免密登录,改完密码后,需要删掉 # 设置3306端口 port = 3306 # 设置mysql的安装目录 basedir= D:\Program Files\mysql-5.7.37 # 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错 # datadir=D:\Program Files\mysql-5.7.37\data # 允许最大连接数 max_connections=20 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB
8,指定用户登录mysql (由于my.ini配置了skip-grant-tables 可免密登录,password部分直接enter)
mysql -u root -p
7,修改密码,修改后重新登录,验证是否修改成功
UPDATE user SET password = PASSWOED('123456')WHERE user = 'root'
8,本地验证数据库是否连接成功
SHOW DATABASES; (这里一定要有分号)
9,Apache中(D:\Program Files\Apache24\htdocs)写一个mysql.php文件,看看能否成功连接数据库
<?php $servername = "localhost"; $username = "root"; $password = "123456"; // 创建连接 $conn = new mysqli($servername, $username, $password); // 检测连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } echo "连接成功"; ?>
10,浏览器输入127.0.0.1/mysql.php,执行成功如下