Windows下搭建nginx+php+MariaDB开发环境

准备工作

Nginx 1.10.1 D:\WebSrv\nginx
PHP 5.6.23 X64版 D:\WebSrv\php
MariaDB 1.10.1 D:\WebSrv\MariaDB

注意: nginx下php是以FastCGI的方式运行,所以我们下载非线程安全也就是nts的php包

统一安装到D:\WebSrv底下。

PHP安装与配置

解压PHP压缩包到指定目录

如:

 

 

找到php.ini-development更名为php.ini并打开(建议使用Notepad2或Notepad++)

首先找到 extension_dir

 

去掉前面的分号,改为

extension_dir=”D:/wnmp/php5/ext”

接下来是一些常用扩展启用(去掉其前面的分号)

extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
extension=php_pdo_sqlite.dll
extension=php_sockets.dll
extension=php_sqlite.dll
extension=php_sqlite3.dll
extension=php_exif.dll

CGI设置(去掉其前面的分号)

cgi.force_redirect = 1

cgi.fix_pathinfo=1(重要,设置之后PHP文件才能被编译)

cgi.rfc2616_headers =1

PHP部分设置完成

Nginx安装与配置

解压压缩包

找到nginx.conf文件

 

打开后修改

 

包含文件 include     D:/wnmp/ww/conf/*.conf; 记得有 分号 结尾

若没有多个域名指定多个虚拟目录的需求,则修改server部分。

示例conf,只含有server部分

 

 

Server_name   xxx.xxx # 绑定域名

可以通过修改hosts文件 将域名指向本地就可以使用了

 

 

下载RunHiddenConsole:http://redmine.lighttpd.net/attachments/660/RunHiddenConsole.zip

解压到nginx目录下

RunHiddenConsole 执行的程序进程不会随着命令提示符窗口关闭而结束

创建start.bat批处理

@echo off & title 启动Nginx服务器

color 0A

REM Windows 下无效

REM set PHP_FCGI_CHILDREN=5

call stop.bat

REM 每个进程处理的最大请求数,或设置为 Windows 环境变量

set PHP_FCGI_MAX_REQUESTS=1000

echo 启动 php-5.4.19 FastCGI …

RunHiddenConsole D:/wnmp/php5/php-cgi.exe -b 127.0.0.1:9000 -c D:/wnmp/php5/php.ini

echo 启动 Nginx 1.4

RunHiddenConsole  D:/wnmp/nginx/nginx.exe -p D:/wnmp/nginx

echo 启动完成…

Cls

创建stop.bat批处理

@echo off & title 停止Nginx

color 0A

echo Stopping Nginx…  

taskkill /F /IM nginx.exe > nul

echo Stopping PHP FastCGI…

taskkill /F /IM php-cgi.exe > nul

Cls

 

如下: 运行start.bat

 

启动成功后如下图

 

打开浏览器

 

 

接下安装Mariadb

Mariadb安装与配置

除了指定安装目录外,按照安装顺序下一步即可。找到 my-small.ini文件打开

 

修改(添加红色部分):

[client]

#password = your_password

port = 3306

socket = /tmp/mysql.sock

default-character-set=utf8 # 字符集编码

# Here follows entries for some specific programs

# The MySQL server

[mysqld]

port = 3306

socket = /tmp/mysql.sock

# 5.5及以后版本用character_set_server=utf8 取代default-character-set=utf8  

character_set_server=utf8 # 字符集编码

collation-server=utf8_general_ci # 字符集

skip-external-locking

key_buffer_size = 16K

max_allowed_packet = 1M

table_open_cache = 4

sort_buffer_size = 64K

read_buffer_size = 256K

read_rnd_buffer_size = 256K

net_buffer_length = 2K

thread_stack = 128K

 

basedir=D:/wnmp/MySQL # MySQL安装目录

datadir=D:/wnmp/MySQL/data # 数据库文件存放目录

 

另存为my.ini

备注:

按照上面的方法开始使用nginx的时候,会跳出一个提示,说程序无法使用,这是因为我们使用的是64位的PHP,如果是32位的PHP,就不会有这个情况。

解决方法是:安装MSVC12,x86版和x64版都装,就可以解决了。

[原创]scp无需输入密码,批量拷贝数据的方法

以前觉得scp除了两端建密钥的方法,就没有无需输入密码,自动化拷贝文件的方法了

今天仔细搜索,发现还是有的,用expect,详情参见我的两个附件sh文件。
iscp.sh是循环读取文件列表中的每一行,将其中的每一行作为文件、调用scpf.sh进行scp拷贝。
scpf.sh是利用expect自动输入密码进行拷贝。
要点:
1、用[lindex $argv 0]表示参数,0表示参数的顺序,0是第一个,以此类推。
2、timeout 后面的是秒数,意味着等你设定的若干秒后进行下一步。

附件列表