windows下的php+nginx+mysql这个环境也配过很多次了,应该也不算陌生,但是每次配都会花好多时间,所以专门用来记录一下。
软件版本
网上资料很多,但是有一些经常因为版本的不同出现很多问题,所以我觉得有必要在一开始说明这个环境的版本,以免再遇尴尬。
php:php-7.0.5
nginx:nginx-1.9.14
mysql:mysql-5.7.11
系统:windows10,64位
软件包都是zip解压后直接配置使用,不是installer安装。
我都放到了c:\web目录下面,注意区别。
nginx配置
添加php主页
location / {
root html;
index index.php index.html index.htm;
}
添加php解析
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
php配置
从php.ini-development修改一个php.ini文件
打开扩展功能
extension_dir = "ext" // 去掉前面的分号
打开mysql数据库扩展(其他功能也是一样的)
//去掉前面的分号
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
mysql配置
从my-default.ini修改一个my.ini文件
basedir = C:\web\mysql
datadir = C:\web\mysql\data
port = 3306
server_id = 1
理论上可以开始使用mysql了,但是为了方便我们注册成windows服务
切换到bin目录下执行
mysqld --install
mysqld --initalize
启动和关闭服务
为了方便控制,创建两个脚本控制他们,需要使用一个工具让nginx和php在后台运行。
RunHiddenConsole.exe
启动脚本
@ECHO OFF
ECHO Starting PHP FastCGI...
C:\web\RunHiddenConsole.exe C:\web\php\php-cgi.exe -b 127.0.0.1:9000 -c C:\web\php\php.ini
echo Starting MySQL...
net start MySQL
ECHO Starting nginx...
cd c:\web\nginx
C:\web\RunHiddenConsole.exe nginx.exe
关闭脚本
@ECHO OFF
taskkill /f /IM nginx.exe
taskkill /f /IM php-cgi.exe
net stop MySQL
EXIT
这两个脚本一定要使用管理员身份运行!
测试文件
$mysqli = new mysqli("127.0.0.1", "root", "123qazQAZ!", "mysql");//参数为“地址”,“账号”,“密码”,“数据库名”
$result = $mysqli->query("SELECT host,user FROM user where user='root'");
$row = $result->fetch_assoc();
echo '<pre>';
print_r($row);
问题汇总
修改配置文件以后没有效果,请确认重启了对应的服务
卧槽,笔记丢了!