window 下 安装 nginx+mysql+php架构
首先我的系统是win7 旗舰版 ip地址:192.168.0.224
一:首先安装mysql
http://www.mysql.com/downloads
安装过程
1、解压缩mysql-5.6.15-winx64.zip到一个目录,加入解压缩到F:\mysql目录。
2、编写mysql的运行配置文件my.ini
my.ini
-----------------------------
[WinMySQLAdmin]
# 指定mysql服务启动启动的文件
Server=F:\\mysql\\mysql-5.6.15-winx64\\bin\\mysqld-nt.exe
[mysqld]
# 设置mysql的安装目录
basedir=F:\\mysql\\mysql-5.6.15-winx64
# 设置mysql数据库的数据的存放目录,必须是data,或者是\\xxx\data
datadir=F:\\mysql\\mysql-5.6.15-winx64\\data
# 设置mysql服务器的字符集
default-character-set=gbk
[client]
# 设置mysql客户端的字符集
default-character-set=gbk
3、安装mysql服务
从MS-DOS窗口进入目录:\mysql\mysql-5.6.15-winx64\bin,运行如下命令:
mysqld --install mysql --defaults-file= F:\mysql\mysql-5.6.15-winx64\my.ini
1
2
3
4
5
|
F:\>
cd
mysql
F:\mysql>
cd
mysql-5.6.15-winx64
F:\mysql\mysql-5.6.15-winx64>
F:\mysql\mysql-5.6.15-winx64>
cd
bin
F:\mysql\mysql-5.6.15-winx64\bin>mysqld --
install
mysql --defaults-
file
= F:\mysql\mysql-5.6.15-winx64\my.ini
|
发现出现错误
1
2
3
|
2013-12-25 10:42:18 0 [Warning] TIMESTAMP with implicit DEFAULT value is depreca
ted. Please use --explicit_defaults_for_timestamp server option (see documentati
on
for
more
details).
|
在my.ini 里添加这个参数
在mysqld里解决
mysql_args="--explicit_defaults_for_timestamp"
重新安装
1
2
3
|
F:\mysql\mysql-5.6.15-winx64\bin>mysqld
install
mysql --defaults-
file
="F:\mysql\
mysql-5.6.15-winx64\my.ini
Service successfully installed.
|
4、启动mysql数据库
还在上面的命令窗口里面,输入命令:net start mysql
这样就启动了mysql服务。
1
2
3
4
5
6
|
F:\mysql\mysql-5.6.15-winx64\bin>net start mysql
mysql 服务正在启动 ...
mysql 服务无法启动。
系统出错。
发生系统错误 1067。
进程意外终止。
|
有发现错误这个错误当时我找了好久,问了好些人,然后查看日志终于发现错误了
1
2
3
4
5
6
7
8
9
10
11
12
13
|
F:\mysql\mysql-5.6.15-winx64\bin>net start mysql
MySQL 服务正在启动 ...
MySQL 服务无法启动。
系统出错。
发生系统错误 1067。
进程意外终止。
F:\mysql\mysql-5.6.15-winx64\bin>mysqld --remove
Service successfully removed.
F:\mysql\mysql-5.6.15-winx64\bin>mysqld --
install
Service successfully installed.
F:\mysql\mysql-5.6.15-winx64\bin>net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。
|
ok,解决了
1
2
3
4
5
6
7
|
停止服务:
bin>net stop mysql
bin>mysqladmin -u root
shutdown
启动服务:
bin>net start mysql
在mysql\bin目录中,双击mysqladmin.exe文件
计算机管理->服务->启动mysql服务
|
5、(本地)登录mysql数据库
还在上面的命令窗口里面,输入命令:mysql -u root -p
回车后
1
2
3
4
5
6
7
8
9
10
11
|
F:\mysql\mysql-5.6.15-winx64\bin>mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection
id
is 5
Server version: 5.6.15 MySQL Community Server (GPL)
Copyright (c) 2000, 2013, Oracle and
/or
its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and
/or
its
affiliates. Other names may be trademarks of their respective
owners.
Type
'help;'
or
'\h'
for
help. Type
'\c'
to
clear
the current input statement.
mysql>
|
好熟悉的页面 这里就ok了
mysql解压缩版初次安装管理员root的密码为空,因此直接再回车一次就登入mysql数据库了。
如果你不是初次登录mysql,你还拥有网络地址的用户,那么你可以用如下命令登录到mysql服务器,这个mysql服务器也许在远方,也许在本地。这种登录方式叫“远程登录”,命令如下:
mysql -h 192.168.0.224 -u root -p
mysql -h 192.168.0.224 -u root -p123456
-h是指定登录ip,-u指定用户,-p指定密码,-p后如果什么都不写,那么接下来会提示输入密码,-p后也可以直接写上密码,这样就不再需要输入密码了。
6、操作数据库和表
登录mysql数据库后,就可以执行指定操作数据库,用命令:use 数据库名
指定了操作的数据库对象后,就可以操作数据库中的表了,操作方法当然是SQL命令了,呵呵。
7、更改mysql数据库管理员root的密码
mysql数据库中默认有个mysql数据库,这个是mysql系统的数据库,用来保存数据库用户、权限等等很多信息。要更改密码,就要操作mysql数据库的user表。
现在mysql的root用户密码还为空,很不安全的,假设要更改密码为“123456”。
还在上面的命令窗口里面,执行如下命令:
use mysql;
grant all on *.* to root@'%' identified by '123456' with grant option;
commit;
这段命令的含义是,添加一个root用户,拥有所有的权限,密码为“123456”,并且这个用户不但可以本地访问,也可以通过网络访问。强调这个原因是mysql系统自带的的那个root用户只能从本地访问,它@字符后面的标识是localhost。具体可以查看mysql数据的uer表看看,这样以来,就有两个root用户了,一个是系统原来的,一个新建的,为了管理的方便,就将mysql自带root删除,保留刚创建的这个root用户,原因是这个用户可以通过网络访问mysql。
然后,删除用户的命令:
user mysql;
delete from user where user='root' and host='localhost';
commit;
其实上面的方法是授权命令,在授权的同时创建了数据库用户。mysql也有单独的修改用户密码的方法,下面看看如何操作。
首先,先建立一个用户redhat,密码为:123456
grant all on *.* to redhat@'localhost' identified by '123456' with grant option;
接下来就修改这个用户的密码为:chenhao
update user set password = password('123456') where user = 'redhat' and host='localhost';
flush privileges;
说明一点,最好用grant的方式创建mysql用户,尤其对mysql DBA来说,创建用户的同时要指定用户权限,养成好习惯很重要的。
这个修改方法实际上用的是mysql函数来进行的,还有更多的方法,我就不一一介绍了。
还要注意一点就是在修改密码等操作的时候,mysql不允许为表指定别名,但是初次在外却没有这个限制。
8、创建数据库
实际上mysql数据库中除了mysql数据库外,还有一个空的数据库test,供用户测试使用。
现在继续创建一个数据库testdb,并执行一系列sql语句看看mysql数据库的基本操作。
创建数据库testdb:
create database testdb;
预防性创建数据库:
create database if not testdb
创建表:
use testdb;
create table table1(
username varchar(12),
password varchar(20));
预防性创建表aaa:
create table if not exists aaa(ss varchar(20));
查看表结构:
describe table1;
插入数据到表table1:
insert into table1(username,password) values
('redhat','wwwww'),
('chenhao','hahhahah');
commit;
查询表table1:
select * from table1;
更改数据:
update table1 set password='hehe' where username='redhat';
commit;
删除数据:
delete from table1 where username='redhat';
commit;
给表添加一列:
alter table table1 add column(
sex varchar(2) comment '性别',
age date not null comment '年龄'
);
commit;
从查询创建一个表table1:
create table tmp as
select * from table1;
删除表table1:
drop table if exists table1;
drop table if exists tmp;
9、备份数据库testdb
mysqldump -h 192.168.0.224 -u root -p123456 -x --default-character-set=gbk >C:\testdb.sql
10、删除数据库testdb
drop database testdb;
11、恢复testdb数据库
首先先建立testdb数据库,然后用下面命令进行本地恢复:
mysql -u root -p123456 testdb <C:\testdb.sql
12、删除mysql服务
假如你厌倦mysql了,你需要卸载,那么你只需要这么做
停止mysql服务
net stop mysql
删除mysql服务
sc delete mysql
mysqld-nt --remove
然后删除msyql的安装文件夹,不留任何痕迹
二:安装apache
下载并安装
配置httpd.conf 使得 apache能让php工作
在最后填下
1
2
3
|
LoadModule php5_module
"F:/php/php5apache2_2.dll"
AddHandler php5-script .php
AddType text
/html
.php
|
修改默认索引
1
2
|
#修改为
DirectoryIndex index.php index.html
|
三:安装nginx
下载http://nginx.org/download/nginx-1.5.7.zip
然后直接解压缩到文件下
开启
start nginx 就可以了
四:最后就剩安装php
安装下载地址很多地方都有
php:http://windows.php.net/downloads/releases/ 这下面找对应的软件
解压到安装目录下
设置环境变量,我的电脑->属性->高级系统设置->高级->环境变量->在path变量里加上F:\php
把php目录下的php.ini-development拷贝为php.ini
打开php.ini
修改路径
1
|
extension_dir =
"F:\PHP\ext"
|
要把mysql前的分好去掉
测试mysql是否支持
1
2
3
|
<?php
phpinfo();
?>
|
最后测试php 连接mysql
1
2
3
4
5
6
7
8
9
|
<?php
$conn
=mysql_connect(
"localhost"
,
"root"
,
""
)
or
die
(mysql_error());
if
(
$conn
){
echo
"connect success"
;
}
else
{
echo
"can not connect"
;
}
mysql_close(
$conn
);
?>
|
ok,搞定
现在我们最后测试 让nginx支持php
nginx支持php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
一、首先是PHP配置:
1
、把所下载的php包解压到硬盘上,以F盘为例,路径: F:/php
2
、找到文件php.ini-recommended,改名为:php.ini
3
、打开php.ini,修改如下配置:
a. 找到extension_dir =
"./"
修改为 extension_dir =
"F:\php\ext"
b. 修改配置项如下
enable_dl = On
cgi.force_redirect =
0
cgi.fix_pathinfo=
1
fastcgi.impersonate =
1
cgi.rfc2616_headers =
1
c. 配置基本的扩展,可以去掉如下项前的
";"
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mcrypt.dll
extension=php_mysql.dll
以上已经够用了,已开启mysql,其他项可以根据具体情况自己再开启扩展
4
、可以把php.ini复制一份到C:\WINDOWS下
5
、把php5ts.dll和libmysql.dll复制一份到C:\WINDOWS\system32下
|
nginx配置
1
2
3
4
5
6
7
|
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
/scripts
$fastcgi_script_name;
include fastcgi_params;
}
|
然后重启nginx就可以了
不过下的php版本一定要带cgi!