参考资料

如果想方便,可以直接使用集成的 LNMP 环境(例如 PHPStudy)。

下载 PHP

下载地址:https://windows.php.net/download

根据你的系统选择 32 位或 64 位下载。另外还有个线程安全和非线程安全的差异,对于 Nginx(使用 FastCGI,单线程工作),选择 Non Thread Safe 版本即可。具体差异可以 参考这里

  • None Thread Safe:非线程安全,在执行时不进行线程安全检查。
  • Thread Safe:线程安全,执行时会进行线程安全检查,以防止有新要求就启动新线程,耗尽系统资源。

我现在用的是 7.2,64位,非线程安全的版本。

下载 Nginx

下载地址:http://nginx.org/en/download.html

一般下载你服务器上安装的版本。随便玩的话,下载最新的稳定版就行了。

下载 RunHiddenConsole

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

PHP 和 Nginx 是守护进程,启动后需要一直开着黑窗口,不太方便。RunHiddenConsole 工具可以在启动这两个程序化隐藏黑窗口。

目录结构

这里 RunHiddenConsole.exe 以及所有的 bat 脚本都放在 script 目录中。PHP 和 Nginx 直接解压即可,注意 PHP 的目录名太长了,这里简化了一下。

├─nginx-1.15.1
│ ├─conf
│ ├─contrib
│ │ ├─unicode2nginx
│ │ └─vim
│ │ ├─ftdetect
│ │ ├─ftplugin
│ │ ├─indent
│ │ └─syntax
│ ├─docs
│ ├─html
│ ├─logs
│ └─temp
│ ├─client_body_temp
│ ├─fastcgi_temp
│ ├─proxy_temp
│ ├─scgi_temp
│ └─uwsgi_temp
├─php72
│ ├─dev
│ ├─ext
│ ├─extras
│ │ └─ssl
│ ├─lib
│ │ └─enchant
│ └─sasl2
└─script

编写脚本

注意,根据上面的目录编写脚本。如果你用的是不同的版本的 PHP 和 Nginx,需要根据解压后的目录名修改脚本中对应的变量。

这里启动 PHP 时,实际上启动的是 PHP-FPM,通过 -b 127.0.0.1:9000 参数指定监听本机的 9000 端口。另外,也可以把 php.exe 的绝对路径添加到系统环境变量 PHTH 中,这样就可以在命令行中使用 PHP 命令了,例如 php -v 查看版本。

同时启动 PHP 和 Nginx

@ECHO OFF

ECHO Starting PHP FastCGI...
set php_home=..\php72
.\RunHiddenConsole.exe %php_home%\php-cgi.exe -b 127.0.0.1:9000 -c %php_home%/php.ini ECHO Starting Nginx...
set nginx_home=..\nginx-1.15.1
.\RunHiddenConsole.exe %nginx_home%\nginx.exe -p %nginx_home%

同时关闭 PHP 和 Nginx

@ECHO OFF
echo Stopping nginx...
taskkill /F /IM nginx.exe > nul
echo Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe > nul
exit

单独启动 PHP

@ECHO OFF
ECHO Starting PHP FastCGI...
set php_home=..\php72
.\RunHiddenConsole.exe %php_home%\php-cgi.exe -b 127.0.0.1:9000 -c %php_home%\php.ini

单独关闭 PHP

@ECHO OFF
ECHO Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe > nul
exit

单独启动 Nginx

@ECHO OFF
ECHO Starting Nginx...
set nginx_home=..\nginx-1.15.1
.\RunHiddenConsole.exe %nginx_home%\nginx.exe -p %nginx_home%

单独关闭 Nginx

@ECHO OFF
ECHO Stopping Nginx...
taskkill /F /IM nginx.exe > nul
exit

Windows 下手工搭建 LNMP 环境的更多相关文章

  1. win7/win8下手工搭建WAMP环境

    win7/win8下手工搭建WAMP环境. 最近学习wamp,看了好多教程,出来好多问题,终于成功搞定,这里集合了一下最好的教程,写了一些自己的经验,希望大家有用 这里不能上传图片,我就写了个带pdf ...

  2. Mac下docker搭建lnmp环境 + redis + elasticsearch

    之前在windows下一直使用vagrant做开发, 团队里面也是各种开发环境,几个人也没有统一环境,各种上线都是人肉,偶尔还会有因为开发.测试.生产环境由于软件版本或者配置不一致产生的问题, 今年准 ...

  3. Centos 7 下yum搭建lnmp环境(yum安装方式)

    我们都知道linux下安装软件主要有三种方式: 1.源码编译安装,即下载软件源代码,利用gcc g++ make 等编译工具进行编译安装: 此方式的优点:可以指定软件版本,可选择性好:编译时可以手动指 ...

  4. 比特币学习笔记(一)---在windows下编译搭建比特币环境

    最近打算研究下比特币源码,却发现这套源码正常情况下得在linux下编译运行,而我的机器是windows的. 怎么办呢? 起初打算用mingw和cygwin搞搞看,试了许久后发现行不通,必须转到linu ...

  5. Ubuntu 18.04.1 下快速搭建 LNMP环境

    1.Nginx的安装 Nginx安装是属于最简单的,只需要在命令行执行 sudo apt-get install nginx 就能自动安装 Nginx,其中过程中需要 选择 Y/n 的选择Y就行了,当 ...

  6. CentOS6下yum搭建LNMP环境

    1.关闭防火墙[root@CentOS ~]# chkconfig iptables off 2.关闭selinuxvi /etc/sysconfig/selinux //将SELINUX=enfor ...

  7. [转]MonkeyRunner在Windows下的Eclipse开发环境搭建步骤(兼解决网上Jython配置出错的问题)

    MonkeyRunner在Windows下的Eclipse开发环境搭建步骤(兼解决网上Jython配置出错的问题)   网上有一篇shangdong_chu网友写的文章介绍如何在Eclipse上配置M ...

  8. 转:Windows下的PHP开发环境搭建——PHP线程安全与非线程安全、Apache版本选择,及详解五种运行模式。

    原文来自于:http://www.ituring.com.cn/article/128439 Windows下的PHP开发环境搭建——PHP线程安全与非线程安全.Apache版本选择,及详解五种运行模 ...

  9. windows下php+apache+mysql环境搭建

    在Windows 7下进行PHP环境搭建,首先需要下载PHP代码包和Apache与Mysql的安装软件包. PHP版本:php-5.3.2-Win32-VC6-x86,VC9是专门为IIS定制的,VC ...

随机推荐

  1. Java代码执行过程概述

    Java代码经历三个阶段:源代码阶段(Source) -> 类加载阶段(ClassLoader) -> 运行时阶段(Runtime) 首先我们来理清一下Java代码整个执行过程, 让我们对 ...

  2. python实现一个简单的网络聊天程序

    一.Linux Socket 1.Linux Socke基本上就是BSD Socket(伯克利套接字) 伯克利套接字的应用编程接口(API)是采用C语言的进程间通信的库,经常用在计算机网络间的通信.B ...

  3. 搜索(BFS)---计算在网格中从原点到特定点的最短路径长度

    计算在网格中从原点到特定点的最短路径长度 [[1,1,0,1], [1,0,1,0], [1,1,1,1], [1,0,1,1]] 题目描述: 1表示可以经过某个地方,求解从(0,0)位置到(tr,t ...

  4. 使用JS增加标签

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. JSP学习(1)

    JSP学习(1) 什么是Web应用程序 可以Web访问呢的应用程序,用户只需要浏览器即可访问 静态网页与动态网页 静态网页:网页中内容固定 动态网页:内容通过程序动态显示,自动更新 Java Web应 ...

  6. 使用Python和AWK两种方式实现文本处理的长拼接案例

    最近由于业务系统新需求的需要,我们平台需要将供应商G提供一类数据转换格式后提供给客户K.比较头疼是供应商G提供的数据都是在Windows下使用Excel存储的,而客户K先前与我们相关对接人员商定的数据 ...

  7. tpcc-mysql测试mysql5.6 (EXT4文件系统)

    操作系统版本:CentOS release 6.5 (Final)  2.6.32-431.el6.x86_64 #1 内存:32G CPU:Intel(R) Xeon(R) CPU E5-2450 ...

  8. Windows中的Work线程和GUI线程

    Windows线程分为两种:Worker线程.GUI线程 worker线程:是指完全不牵扯到图形用户界面(GUI),纯粹做运算的线程. GUI线程:负责建造窗口以及处理消息循环(拥有消息队列).任何一 ...

  9. docker设置proxy

    该方法是持久化的,修改后会一直生效.该方法覆盖了默认的docker.service文件. 1. 为docker服务创建一个内嵌的systemd目录 mkdir -p /etc/systemd/syst ...

  10. matplotlib--直线和点

    直线和点: import matplotlib.pyplot as plt import numpy as np x=np.linspace(-10,10,10) y=x**2 h=plt.plot( ...