前言
一般来讲很多开发工作并不是在linux中用vim硬怼,很多人用windows编程然后通过git托管,那么我们可以在windows下面安装nginx和php+Mysql来调试我们的程序
nginx的安装:
方法类似linux下安装nginx,在官网上下载ngxin的windows版,解压然后修改conf/nginx.conf,主要修改如下:
server {
listen 80;#修改监听端口
server_name localhost;#修改域名
······
location / {
root html;#网站根目录
index index.html index.htm index.php;#配置index
}
······
location ~ \.php$ {
root html;#网站根目录
fastcgi_pass 127.0.0.1:9000;#Nginx以cgi方式用过tcp协议和php交互,也可配置成套接字交互(.sock)方法参考linux下配置
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#$document_root指的是web根目录,不配置可能会有No input file specified.错误
include fastcgi_params;
}
附上Nginx的常用命令:
运行start nginx
关闭 nginx -s stop 或者 nginx -s quit
stop表示立即停止nginx,不保存相关信息
quit表示正常退出nginx,并保存相关信息
重启(因为改变了配置,需要重启)
nginx -s reload
然后我们访问localhost,会看到nginx的欢迎界面。
php的安装:
php在windows下面安装方式网上一搜一大堆,整理下就是:
直接解压下载好的php包,把解压出来的文件夹重命名成php5。进入文件夹修改php.ini-recommended文件为php.ini,编辑文件:
extension_dir = "./ext"
更改为
extension_dir = "D:/wnmp/php5/ext"
往下看,再找到
;extension=php_mysql.dll ;extension=php_mysqli.dll
前面指定了php的ext路径后,只要把需要的扩展包前面所对应的“;”去掉,就可以了。这里打开php_mysql.dll和php_mysqli.dll,让php支持mysql。
到这里,php已经可以支持mysql了。
接下来我们来配置php,让php能够与nginx结合。找到
;cgi.fix_pathinfo=1
我们去掉这里的封号。
cgi.fix_pathinfo=1
这一步非常重要,这里是php的CGI的设置。
输入命令
php-cgi -b 127.0.0.1:9000 -c $PHP_PATH./php.ini #$PHP_PATH是你php的根目录
然后利用如下命令:
netstat -a
查看9000端口是否已经被php监听,如果是,那么大功告成
踩过的坑
php文件访问时会有No input file specified.错误,原因是没有配置
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #document_root是根目录
这个错误类似404
MySQL的安装:
由于是在windows下面安装MySQL,操作自然没有在linux下面那么风骚,接下来以MySQL5.7为例,来聊一聊mysql的安装:
首先下载mysql的windows版本,解压后新建my.ini或者修改my-defalut.ini为my.ini,并添加以下配置:
[mysql] #设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] #设置3306端口 port = 3306 #设置mysql的安装目录 basedir=D:\Programs\mysql-5.7.17-winx64 #设置mysql数据库的数据的存放目录 datadir=D:\Programs\mysql-5.7.17-winx64\data #坑注意! #允许最大连接数 max_connections=200 #服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 #创建新表时将使用的默认存储引擎 default-storage-engine=INNODB
前方高坑预警:如果你以为这么久可以直接启动服务那就真是naive了,5.7版本的mysql没有data文件夹,所以会导致服务打不开并且不报错,这个问题可以用如下命令解决:
cd到mysql的bin文件夹并且以管理员打开cmd运行下面命令:mysqld --initialize --user=mysql --console
先执行以上命令, 生成库. 注意有个临时密码, 要记下来.
然后启动服务:net start mysql
然后再命令行:
mysql -uroot -p
输入密码(生成表命令最后一行)进入mysql:
set password = password('root') #设置密码为root
必须修改否则无法使用mysql
踩过的坑
妈个鸡mysql5.7居然没有data文件夹,而且启动服务不报错,找了好久才找到问题,具体的报错可以用下面命令查看:
mysqld -nt -install #安装并打印日志
总结
没啥好总结的,在windows上面要是这些都不会装和咸鱼有什么区别。
在linux上面安装和在windows上面大同小异,值得一提的是虽然可以用tcp方式监听9000端口使nginx和php交互,但是利用套接字文件更快(.sock),linux上面启动php需要启动php-fpm.