自PHP5.4起,PHP内置Web服务器,我们在部署开发环境时,完全可以忽略搭建什么WAMP或WNMP环境,直接使用PHP就可以了。
前言:首先恭喜ThinkPHP5顺利推出,非常感谢Think长期以来对PHP开发做出的贡献,我在这也给大家做个小工具,也算对ThinkPHP5做点边缘化的支持!嘿嘿...
背景:自PHP5.4起,PHP内置Web服务器,我们在部署开发环境时,完全可以忽略搭建什么WAMP或WNMP环境,直接用命令 PHP -S http://localhost:8000 就可以让PHP项目跑起来了。在Windows中,我们通常没有设置系统环境Path,PHP配置也有点麻烦,让CMD可以执行PHP对于一些人来说也不容易。
目标:免安装WNMP或WAMP环境,实现快速部署PHP开发运行环境,一键走起。
走起:这里我给大家写了一个段BAT脚本,它可以自动检测并安装PHP环境,启动PHP内置WEB服务,BAT脚本内容在下面可以看到。只需要在项目根目录下放置一个start.bat文件,双击这个文件,就可以打开你的PHP项目了。这个工具使用的PHP版本是PHP7.0.10,脚本运行的时候,会自动下载一个PHP目录放在当前盘符根下面,这个PHP就是官方的window版本。在工具初始运行时,可能会要求您安装VC库,根据提示安装就可以,如果不安装,会导致PHP无法运行,导致各种dll文件丢失的报错!具体部署如下图,其中start.bat文件已经压缩上传,请在附件中下载!
注意:部分杀毒软件会报毒,这个你懂的,建议大家使用腾讯管家或者添加到信任列表。哈哈!!!
提示:首次运行脚本,是需要通过VB下载php.zip和VC库程序,所以需要等待一段时间哦,切忽心急重复运行BAT脚本。当然安装好了之后就可以随便运行了,多开也是可以的,毕竟WEB服务端口是随机计算的。
@echo off<br>
<br>
:: PHP简易开发环境搭建工具 V1.0<br>
::<br>
:: 作者:Anyon <zoujingli><br>
:: 网址:http://www.ctolog.com<br>
:: 创建:2016/09/22 20:20<br>
<br>
title HTTP-SERVER<br>
<br>
set pan=%~d0<br>
:: 判断PHP运行环境是否存在<br>
if not exist %pan%\php (goto down) else (goto start)<br>
<br>
<br>
:start<br>
cls<br>
<br>
:: 临时设置PHP运行环境路径<br>
set path=%~dp0..\php;%~dp0php;%pan%\php;%path% <br>
<br>
:: 随机计算服务运行端口<br>
set port=%random%<br>
set /a port=port%%1000+2000<br>
title [ %port% ] HTTP-SERVER<br>
<br>
:: 打开浏览器窗口<br>
start http://localhost:%port%<br>
<br>
:: 启动Web服务进程<br>
@echo on<br>
@php -S localhost:%port%<br>
goto end<br>
<br>
:down<br>
cls <br>
echo.<br>
echo 未检测到本地环境,正在尝试下载安装,请稍候...<br>
echo.<br>
<br>
:: 资源路径定义<br>
set src=http://zoujingli.oschina.io/static/php-install/php.zip<br>
set des=%pan%\php.zip<br>
<br>
set sof_32=http://zoujingli.oschina.io/static/php-install/vc_redist.x86.exe<br>
set sof_des_32=%pan%\vc_redist.x86.exe<br>
<br>
set sof_64=http://zoujingli.oschina.io/static/php-install/vc_redist.x64.exe<br>
set sof_des_64=%pan%\vc_redist.x64.exe<br>
<br>
set script=%pan%\script.vbs<br>
set dir=%pan%\<br>
<br>
:: 生成VB脚本,下载并处理PHP支持程序<br>
echo Set xPost = CreateObject("Microsoft.XMLHTTP") >%script%<br>
echo xPost.Open "GET","%src%",0 >>%script%<br>
echo xPost.Send() >>%script%<br>
echo Set sGet = CreateObject("ADODB.Stream") >>%script%<br>
echo sGet.Mode = 3 >>%script%<br>
echo sGet.Type = 1 >>%script%<br>
echo sGet.Open() >>%script%<br>
echo sGet.Write(xPost.responseBody) >>%script%<br>
echo sGet.SaveToFile "%des%",2 >>%script%<br>
<br>
if "%PROCESSOR_ARCHITECTURE%"=="x86" ( <br>
echo Set xPost = CreateObject("Microsoft.XMLHTTP") >>%script% <br>
echo xPost.Open "GET","%sof_32%",0 >>%script%<br>
echo xPost.Send() >>%script%<br>
echo Set sGet = CreateObject("ADODB.Stream") >>%script%<br>
echo sGet.Mode = 3 >>%script%<br>
echo sGet.Type = 1 >>%script%<br>
echo sGet.Open() >>%script%<br>
echo sGet.Write(xPost.responseBody) >>%script%<br>
echo sGet.SaveToFile "%sof_des_32%",2 >>%script%<br>
) else (<br>
echo Set xPost = CreateObject("Microsoft.XMLHTTP") >>%script% <br>
echo xPost.Open "GET","%sof_64%",0 >>%script%<br>
echo xPost.Send() >>%script%<br>
echo Set sGet = CreateObject("ADODB.Stream") >>%script%<br>
echo sGet.Mode = 3 >>%script%<br>
echo sGet.Type = 1 >>%script%<br>
echo sGet.Open() >>%script%<br>
echo sGet.Write(xPost.responseBody) >>%script%<br>
echo sGet.SaveToFile "%sof_des_64%",2 >>%script%<br>
)<br>
<br>
:: 定义ZIP解析函数<br>
echo Sub UnZip(ByVal myZipFile, ByVal myTargetDir) >>%script%<br>
echo Set fso = CreateObject("Scripting.FileSystemObject") >>%script%<br>
echo If NOT fso.FileExists(myZipFile) Then >>%script%<br>
echo Exit Sub >>%script%<br>
echo ElseIf NOT fso.FolderExists(myTargetDir) Then >>%script%<br>
echo fso.CreateFolder(myTargetDir) >>%script%<br>
echo End If >>%script%<br>
echo Set objShell = CreateObject("Shell.Application") >>%script%<br>
echo Set objSource = objShell.NameSpace(myZipFile) >>%script%<br>
echo Set objFolderItem = objSource.Items() >>%script%<br>
echo Set objTarget = objShell.NameSpace(myTargetDir) >>%script%<br>
echo intOptions = 256 >>%script%<br>
echo objTarget.CopyHere objFolderItem, intOptions >>%script%<br>
echo End Sub >>%script%<br>
:: 解压ZIP文件<br>
echo UnZip "%des%", "%dir%" >>%script%<br>
:: 执行VB脚本<br>
cscript %script%<br>
<br>
cls<br>
echo.<br>
echo 这里会提示您安装VC支持库,请根据提示进行操作!<br>
echo.<br>
echo --- 如果没有安装,请根据提示进行安装!---<br>
echo.<br>
echo --- 如果已经安装,请忽略并关闭提示框!---<br>
echo.<br>
<br>
:: 安装并生成VB清理脚本<br>
echo Set fso = CreateObject("Scripting.FileSystemObject") >%script%<br>
echo fso.deleteFile "%des%" >>%script%<br>
if "%PROCESSOR_ARCHITECTURE%"=="x86" (<br>
%sof_des_32%<br>
echo fso.deleteFile "%sof_des_32%" >>%script%<br>
) else (<br>
%sof_des_64%<br>
echo fso.deleteFile "%sof_des_64%" >>%script%<br>
)<br>
echo fso.deleteFile "%script%" >>%script%<br>
:: 执行VB脚本<br>
cscript %script%<br>
<br>
cls<br>
goto start<br>
<br>
:end</zoujingli>
更新:资源地址更新到Oschina服务器上
start.zip
( 1.44 KB 下载:10 次 )

了解Python编程的入门级代码示例Python是一种简单易学,功能强大的编程语言。对于初学者来说,了解Python编程的入门级代码示例是非常重要的。本文将为您提供一些具体的代码示例,帮助您快速入门。打印HelloWorldprint("HelloWorld")这是Python中最简单的代码示例。print()函数用于将指定的内容输出

PHP变量存储程序运行期间的值,对于构建动态且交互式的WEB应用程序至关重要。本文将深入探讨php变量,并通过10个真实的示例展示它们的实际应用。1.存储用户输入$username=$_POST["username"];$passWord=$_POST["password"];此示例从表单提交中提取用户名和密码,并将其存储在变量中以供进一步处理。2.设置配置值$database_host="localhost";$database_username="username";$database_pa

标题:从入门到精通:Go语言中常用数据结构的代码实现数据结构在编程中起着至关重要的作用,它是程序设计的基础。在Go语言中,有许多常用的数据结构,掌握这些数据结构的实现方式对于成为一名优秀的程序员至关重要。本文将介绍Go语言中常用的数据结构,并给出相应的代码示例,帮助读者从入门到精通这些数据结构。1.数组(Array)数组是一种基本的数据结构,是一组相同类型

Java冒泡排序最简单的代码示例冒泡排序是一种常见的排序算法,它的基本思想是通过相邻元素的比较和交换来将待排序序列逐步调整为有序序列。下面是一个简单的Java代码示例,演示了如何实现冒泡排序:publicclassBubbleSort{publicstaticvoidbubbleSort(int[]arr){int

《Go语言编程实例:Web开发中的代码示例》随着互联网的快速发展,Web开发已经成为各行业中必不可少的一部分。作为一门功能强大且性能优越的编程语言,Go语言在Web开发中越来越受到开发者们的青睐。本文将通过具体的代码示例,介绍如何利用Go语言进行Web开发,让读者能够更好地理解和运用Go语言来构建自己的Web应用。1.简单的HTTP服务器首先,让我们从一个

如何使用PHP编写库存管理系统中的库存分仓管理功能代码库存管理是许多企业中不可或缺的一部分。对于拥有多个仓库的企业来说,库存分仓管理功能尤为重要。通过合理管理和跟踪库存,企业可以实现不同仓库之间的库存调拨,优化运营成本,改善协同效率。本文将介绍如何使用PHP编写库存分仓管理功能的代码,并为您提供相关的代码示例。一、建立数据库在开始编写库存分仓管理功能的代码之

华为云边缘计算对接指南:Java代码示例快速实现接口随着物联网技术的快速发展和边缘计算的兴起,越来越多的企业开始关注边缘计算的应用。华为云提供了边缘计算服务,为企业提供了高可靠的计算资源和便捷的开发环境,使得边缘计算应用更加容易实现。本文将介绍如何通过Java代码快速实现华为云边缘计算的接口。首先,我们需要准备好开发环境。确保你已经安装了Java开发工具包(

Java选择排序法代码编写指南及示例选择排序是一种简单直观的排序算法,其思想是每次从未排序的元素中选择最小(或最大)的元素进行交换,直到所有元素排序完成。本文将提供选择排序的代码编写指南,并附上具体的Java示例代码。算法原理选择排序的基本原理是将待排序数组分为已排序和未排序两部分,每次从未排序部分选择最小(或最大)的元素,将其放到已排序部分的末尾。重复上述


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3 Linux新版
SublimeText3 Linux最新版