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

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

发现出现错误

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"

重新安装

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服务。

F:\mysql\mysql-5.6.15-winx64\bin>net start mysql
mysql 服务正在启动 ...
mysql 服务无法启动。
系统出错。
发生系统错误 1067。
进程意外终止。


有发现错误这个错误当时我找了好久,问了好些人,然后查看日志终于发现错误了

window 下 安装 apache(nginx)+mysql+php架构_服务器

window 下 安装 apache(nginx)+mysql+php架构_配置文件_02

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,解决了

停止服务:
bin>net stop mysql
bin>mysqladmin -u root shutdown
启动服务:
bin>net start mysql
在mysql\bin目录中,双击mysqladmin.exe文件
计算机管理->服务->启动mysql服务

5、(本地)登录mysql数据库
还在上面的命令窗口里面,输入命令:mysql -u root -p
回车后

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;

window 下 安装 apache(nginx)+mysql+php架构_服务器_03

这段命令的含义是,添加一个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

下载并安装

window 下 安装 apache(nginx)+mysql+php架构_数据库_04

window 下 安装 apache(nginx)+mysql+php架构_数据库_05

配置httpd.conf 使得 apache能让php工作

在最后填下

LoadModule php5_module "F:/php/php5apache2_2.dll"
AddHandler php5-script .php
AddType text/html .php

修改默认索引

#修改为
DirectoryIndex index.php index.html

window 下 安装 apache(nginx)+mysql+php架构_ip地址_06

三:安装nginx

下载http://nginx.org/download/nginx-1.5.7.zip

然后直接解压缩到文件下

开启

start nginx 就可以了

window 下 安装 apache(nginx)+mysql+php架构_window_07


四:最后就剩安装php

安装下载地址很多地方都有

php:http://windows.php.net/downloads/releases/ 这下面找对应的软件

解压到安装目录下

设置环境变量,我的电脑->属性->高级系统设置->高级->环境变量->在path变量里加上F:\php

把php目录下的php.ini-development拷贝为php.ini

打开php.ini

修改路径

extension_dir = "F:\PHP\ext"


要把mysql前的分好去掉

window 下 安装 apache(nginx)+mysql+php架构_window_08

window 下 安装 apache(nginx)+mysql+php架构_服务器_09

window 下 安装 apache(nginx)+mysql+php架构_数据库_10

测试mysql是否支持

<?php
phpinfo();
?>

window 下 安装 apache(nginx)+mysql+php架构_window_11


最后测试php 连接mysql

<?php
$conn=mysql_connect("localhost","root","") or die(mysql_error());
if($conn){
 echo "connect success";
}else{
 echo "can not connect";
}
mysql_close($conn);
?>

window 下 安装 apache(nginx)+mysql+php架构_服务器_12



ok,搞定

现在我们最后测试 让nginx支持php

nginx支持php

一、首先是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配置

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!