apache+python+php+mysql集成环境安装包

article/2025/8/17 16:58:59

一款使用JS框架制作开源的环境集成,代码在test.js文件里
apache+python+php+mysql(mariadb)+phpmyadmin集成包
这里要用到xxjs 是基于原生js封装的一个框架 体积只有1M很小
例子下载 点击下载》》 有报毒请放行,被杀了就不能用了,下载后直接运行就可以了
代码是开源的,

硬盘坏了,文件没了,已不再更新,有bug,,不过功能够用,可以拿去改装打包新的环境包

预览图:
在这里插入图片描述
例子代码 test.js

var path = 文件.完整路径( "/" );//获取根目录完整路径
path = path.replace("\\", "\/");
path = path.replace("\\", "\/");//需要两次 路径要调对
//echo(path);	return;	替换主要是会被转义,
//该js文件为服务端js文件不能被前端js引用,服务端js相互间可以用include('/test2.js');这样来载入其他js文件
//下面的apache和php都需要你的电脑有vc15运行库 你也可以装vc运行库合集
//下载更新apache
var dapache1=function(){ var dd={//必须是.zip格式,这里是演示,,实际可以改用你配置好的apache+php地址 这样就可以不用写配置文件那块了'更新地址':'https://home.apache.org/~steffenal/VC15/binaries/httpd-2.4.43-win64-VC15.zip',//原版未改动	 '保存目录':'apache',//相对根目录 前面不用加‘/’ 后面会将下载的文件解压到该目录'描述':'正在安装更新Apache'}if(安装更新(dd)==200){//这部分可以先把apache+php配置好,这样 下边就不用写这么多了,//以下写法apache的,其他程序也这样,如nginx,mysql,redis//修改apapche配置文件var conf=string.load(path+'apache/conf/httpd.conf');conf = string.replace(conf,'SRVROOT "[^\"]+"','SRVROOT "'+path+'apache"');   //设置路径	 conf = string.replace(conf,'Listen 80','Listen 807');  //设置端口//conf = string.replace(conf,'DocumentRoot "[^\"]+"','DocumentRoot "'+path+'www"'); //修改apache网站根目录//conf = string.replace(conf,'Directory "[^\"]+"','Directory "'+path+"www"+'"');conf+= '\r\n ServerName xxjs2 ';string.save(path+'apache/conf/httpd.conf',conf);print({'code':'200','msg':'安装更新apache成功,请查看根目录'});}else{print({'code':'300','msg':'安装更新apache失败'});} 
}//下载更新php
var dphp1=function(){ var dd={'更新地址':'https://windows.php.net/downloads/releases/php-7.4.8-Win32-vc15-x64.zip', //原版未改动'保存目录':'php','描述':'正在安装更新php'}if(安装更新(dd)==200){文件.重命名("/php/php.ini-production","/php/php.ini"); //用'/'操作  '\'要转义系统.系统变量('path',path+'php');//注册系统变量 可以不注册//修改php.ini配置文件var conf=string.load("php/php.ini"); //这里前面没/conf = string.replace(conf,';extension_dir = "ext"','extension_dir = "'+path+'php/ext"');   //开启mysqli	 conf = string.replace(conf,';extension=mysqli','extension=mysqli');  //开启mysqlistring.save("php/php.ini",conf); //这里前面没/var conf2=string.load(path+'apache/conf/httpd.conf');//修改apache支持if(conf2.indexOf("LoadModule php7_module")== -1){ //判断是不是已经配置过了//配置php运行支持 如果这里配置的是FastCGI模式 请将php改成NTS版本 同时也不能用下面的写法conf2+='\r\n #开始设置PHP" ';conf2+= '\r\n LoadModule php7_module "'+path+'php/php7apache2_4.dll" ';conf2+= '\r\n <VirtualHost *:807 >';conf2+= '\r\n  ServerAdmin "php.com"';conf2+= '\r\n  DocumentRoot "'+path+'phpwww"';conf2+= '\r\n <Directory "'+path+'phpwww"> ';conf2+= '\r\n    Options Indexes FollowSymLinks	';conf2+= '\r\n    AllowOverride None	';conf2+= '\r\n    Require all granted';conf2+= '\r\n </Directory>';conf2+= '\r\n  <IfModule mime_module>\r\n     AddType application/x-httpd-php .php \r\n  </IfModule>';conf2+= '\r\nPHPIniDir "'+path+'php" '; //php路径conf2+= '\r\n </VirtualHost> ';string.save(path+'apache/conf/httpd.conf',conf2);}print({'code':'200','msg':'安装更新PHP成功,请查看根目录'});}else{print({'code':'300','msg':'安装更新PHP失败'});} 
}
//apache配置python wsgi	,你需要安装python,记的选择注册环境变量,安装请百度
var dpython=function(){ var dd={//可以到https://www.python.org/ftp/python/3.8.5/python-3.8.5-amd64.exe 下载  后打包为zip文件 '更新地址':'http://down.ccxcc.cc:803/server/python-3.8.5-amd64.zip', //原版未改动'保存目录':'pythondown',//安装完后手动删除该目录'描述':'正在安装更新python-3.8.5'}if(安装更新(dd)==200){文件.打开("/pythondown/python-3.8.5-amd64.exe");//运行安装包程序print({'code':'200','msg':'已下载完毕,正在执行手动安装,请勾选"Add Python 3.8 to PATH,点Customize installation执行安装" 安装完后,请手动删除pythondown目录'});}return;
}
//安装flask和配置wsgi 设置所需环境变量
var dpython2=function(){var dd={ //可以到https://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载 对应 wsgi模块将下载的文件后缀改为zip,解压出来,拷贝mod_wsgi.xxx.pyd 文件就是下面下载的文件'更新地址':'http://down.ccxcc.cc:803/server/mod_wsgi.cp38-win_amd64.zip', //原版未改动'保存目录':'python','描述':'正在安装更新mod_wsgi.cp38-win_amd64 for apache'}if(安装更新(dd)==200){系统.系统变量('PATH','D:/python38');//注册环境变量 此处是安装路径系统.系统变量('PYTHONPATH','D:/python38');系统.系统变量('PYTHONHOME','D:/python38');//注册环境变量 文件.打开('cmd.exe','/k pip install flask');//安装python flask框架var conf=string.load(path+'apache/conf/httpd.conf');//修改apache支持if(conf.indexOf("LoadModule wsgi_module")== -1){ //判断是不是已经配置过了conf+='\r\n #开始设置PYTHON 这里和PHP用同个域设置,本地调试请先删除httpd.conf里的php设置" ';conf+='\r\n LoadModule wsgi_module "'+path+'python/mod_wsgi.cp38-win_amd64.pyd" '; conf+='\r\n NameVirtualHost 127.0.0.1:807"';conf+='\r\n <VirtualHost *:807 >"';conf+='\r\n   ServerAdmin "python.com"';conf+='\r\n   DocumentRoot "'+path+'pywww"';conf+='\r\n <Directory "'+path+'pywww">';conf+='\r\n   Options Indexes FollowSymLinks';conf+='\r\n   AllowOverride None';conf+='\r\n   Require all granted ';conf+='\r\n </Directory>';conf+='\r\n WSGIScriptAlias / "'+path+'pywww/test.wsgi"'; conf+='\r\n </VirtualHost>';string.save(path+'apache/conf/httpd.conf',conf);}var test='';test+='import sys';test+='\r\nsys.path.insert(0, "'+path+'pywww")';test+='\r\nfrom index import app';test+='\r\napplication = app';string.save(path+'pywww/test.wsgi',test);//utf-8格式保存print({'code':'200','msg':'配置python wsgi成功,请查看根目录'});}else{print({'code':'300','msg':'配置python wsgi失败'});}}
//下载phpmyadmin
var dphpmyadmin=function(){ var dd={//https://files.phpmyadmin.net/phpMyAdmin/5.0.2/phpMyAdmin-5.0.2-all-languages.zip'更新地址':'http://down.ccxcc.cc:803/server/phpMyAdmin-5.0.2-all-languages.zip', //原版未改动'保存目录':'www/phpmyadmin', //放到www目录下'描述':'正在安装更新phpmyadmin'}if(安装更新(dd)==200){print({'code':'200','msg':'安装更新phpmyadmin成功,请查看根目录'});}else{print({'code':'300','msg':'安装更新PHP失败'});} //运行http://127.0.0.1:807/phpmyadmin 提示需要打开mysqli  //具体 打开php.ini 修改1、extension_dir=php路径/ext 2、去除extension=mysqli前面的分号 然后重启apache
}//下载mariadb
var dmariadb=function(){ var dd={//https://mariadb.org/download/'更新地址':'http://down.ccxcc.cc:803/server/mariadb-10.5.4-win32.zip', //在原版增加data/mysql 这个可以换成你自己的'保存目录':'mariadb', //放到www目录下'描述':'正在安装更新mariadb'}if(安装更新(dd)==200){var str='';str+='[mysqld]';str+='\r\ndatadir='+path+'mariadb/data';str+='\r\nport=3306';str+='\r\ninnodb_buffer_pool_size=502M';str+='\r\n[client]';str+='\r\nport=3306';str+='\r\nplugin-dir='+path+'mariadb/lib/plugin';string.save("mariadb/my.ini",str); //这里前面没/,保存后是utf-8/print({'code':'200','msg':'安装更新mariadb成功,请查看根目录'});}else{print({'code':'300','msg':'安装更新mariadb失败'});} 
}
//mariadb 数据库的启动,停止,删除 和apache的一样,参考apache
//启动服务操作
var fqidong=function(){if(!服务.是否存在("apache")){var arg=path+'apache/bin/httpd.exe -k runservice'; //这里arg 是apache服务启动参数 需要完整路径	mysql也是这样创建服务,启动参数看后面注释//apache服务的启动会偏慢点,,如果显示状态灯不准,,可以适当增加延迟时间var ok=服务创建(arg,"apache","apache","我是一个apache的描述"); //这是个单独函数 不是"服务{}"对象的if(ok){print({'code':'200','msg':'创建并启动apache服务成功'+ok});}else{print({'code':'300','msg':'创建apache服务失败'+ok});}}else{var ok=服务.启动('apache');if(ok){print({'code':'200','msg':'启动apache服务成功'+ok});}else{print({'code':'300','msg':'启动apache服务服务失败'+ok});}}return;
}
//创建服务 参数参考	 路径要对上	(这些可以百度去查询,不一定要这么用);
//memcached: memcached/memcached.exe -d runservice -l 127.0.0.1 -p 11211
//redis: redis/redis-server.exe --service-run
//mysql: mysql/bin/mysqld.exe mysql
//mariadb: mariadb/bin/mysqld.exe --defaults-file=bin/MariaDB/data/my.ini MariaDB
//nginx: nginx/nginx_xxjs.exe	//nginx 好像要自己写个服务器程序去启动,,可以用我的nginx_xxjs.exe
//下载地址:http://down.ccxcc.cc:803/server/nginx.zip 或去扒一个
//停止服务操作
var ftingzhi=function(){var ok=服务.停止('apache');if(ok){print({'code':'200','msg':'停止apache服务成功'+ok});}else{print({'code':'300','msg':'停止apache服务服务失败'+ok});} return;
}
//重启服务操作
var fchongqi=function(){var ok=服务.重启('apache');if(ok){print({'code':'200','msg':'重启apache服务成功'+ok});}else{print({'code':'300','msg':'重启apache服务失败'+ok});}return;
}
//删除服务操作
var fshanchu=function(){var ok=服务.删除('apache');if(ok){print({'code':'200','msg':'删除apache服务成功'+ok});}else{print({'code':'300','msg':'删除apache服务失败'+ok});} return;
}
//服务状态判断
var fzhuangtai=function(){var zt={}zt.color='#f00';if(服务.是否运行("apache")){zt.color='#0f0';}if(服务.是否停止("apache")){zt.color='#cc0';}  //绿色 黄色 红色return print(zt);
}//系统明细
var sys=function(){var msg='';msg+='</br>网卡信息:'+系统.网卡信息();//返回的json字符串msg+='</br>内存信息:'+系统.内存信息();// msg+='</br>cpu信息:'+系统信息.cpu信息(); //cpu使用率信息获取比较慢msg+='</br>硬盘信息:'+系统.硬盘信息(); //不读取外置盘msg+='</br>系统信息:'+系统.系统信息();return print({'code':'200','msg':msg});
}
var get=request.get;
//启动mariadb服务操作
var qd2=function(){if(!服务.是否存在("mariadb")){var arg=path+'mariadb/bin/mysqld.exe --defaults-file='+path+'mariadb/my.ini mariadb';var ok=服务创建(arg,"mariadb","mariadb","我是一个mariadb的描述"); //这是个单独函数 不是"服务{}"对象的if(ok){print({'code':'200','msg':'创建并启动mariadb服务成功,你可以再刷新下让它启动'+ok});}else{print({'code':'300','msg':'创建mariadb服务失败'+ok});}}else{var ok=服务.启动('mariadb');if(ok){print({'code':'200','msg':'启动mariadb服务成功'+ok});}else{print({'code':'300','msg':'启动mariadb服务服务失败'+ok});}}return;
}
if(get['w']=='m_st'){qd2();return;}	//注册mariadb
if(get['w']=='m_del'){ //删除 mariadb 服务,,具体参考apachevar ok=服务.删除('mariadb');return;
}
if(get['w']){switch(get['w']) {case 'a':文件.打开("/apache/conf/httpd.conf");break;case 'a1':文件.打开("notepad.exe",path+"apache/logs/error.log"); //用记事本打开break;case 'b':文件.打开("/php/php.ini");break;case 'c':文件.打开("services.msc");//打开系统服务管理器 break;case 'c1':文件.打开("Eventvwr.msc");//打开系统日志管理器 break;case 'd':系统.系统变量('path','D:/xxjs2/php');//注册系统变量break;case 'e':文件.打开("重启.bat");//重启windows系统 //也可以下面这么写 加false是不弹出命令框 测试用命令 /k dir 试下//文件.打开('cmd.exe','/c shutdown -r -f -t 1',false);break;case 'g':print(文件.输出('xxd.exe','-author'));print('<br/>'+文件.输出('cmd.exe','/c dir'));//var zz=文件.打开('cmd.exe','/c ipconfig /all > d:/1.log');print('<br/>'+文件.输出('php/php.exe','-v')); //查看php版本print('<br/>'+文件.输出('php/php.exe','D:/xxjs2/www/index.php'));	//执行php文件  这里参数地址要绝对 break;default:break;}
}if(request.post){var post=request.post; //post传值对应方法 执行对应方法if(post.st){if(eval('typeof '+ post.st +' === "function"') ){return eval(post.st+'()');}else{print({'code':'300','msg':'请求失败,没有对应方法'});} }
}return;

http://chatgpt.dhexx.cn/article/xHk9vuUq.shtml

相关文章

织梦php集成环境安装包,常用PHP运行环境一键安装包

我们知道很多站长在做网站的时候用的最多的就是开源的php&#xff0c;那么对于php的调试自然就需要有php程序运行的环境才行&#xff0c;这样我们才能测试php&#xff0c;那么我们如果买一个虚拟主机的话&#xff0c;那么对于很多新手练习php程序来讲很不划算&#xff0c;那么遇…

docker 总结

docker 容器 1.什么是容器 容器就是在隔离的环境中运行的一个进程&#xff0c;如果进程停止&#xff0c;容器就会退出。隔离的环境拥有自己的系统文件&#xff0c;ip地址&#xff0c;主机名等 kvm虚拟机&#xff0c;linux&#xff0c;系统文件 程序&#xff1a;代码&#xff0c…

NFT Insider #73:淡马锡将领投Animoca Brands新一轮1亿美元融资

引言&#xff1a;NFT Insider由WHALE社区、BeepCrypto联合出品&#xff0c;浓缩每周NFT新闻&#xff0c;为大家带来关于NFT最全面、最新鲜、最有价值的讯息。每期周报将从NFT市场数据&#xff0c;艺术新闻类&#xff0c;游戏新闻类&#xff0c;虚拟世界类&#xff0c;其他动态类…

HTC VIVE VR眼镜的介绍以及初始化设置

硬件设备介绍 使用的硬件设备&#xff1a;HTC VIVE 或 HTC VIVE Pro 1.认识一下HTC VIVE VR头盔上的主要部件&#xff1a; A 是基站(定位器) x 2(发射激光定位头显与手柄控制器) B 是同步线 C 是基站电源适配器 x2(任何电子设备都需要能源支持) E 是联接器(把头显和电脑连起…

VR系统的组成与交互技术汇总

今天给大家介绍一下VR系统的组成与当前一些VR交互技术&#xff0c;希望大家对VR有更深的理解。 一个典型的虚拟现实系统主要由计算机、输入输出设备、虚拟现实设计/浏览软件等组成。用户以计算机为核心&#xff0c;通过输入输出设备与应用软件的虚拟世界进行交互。 计算机 在…

VR眼镜连接android设备,如何将VR眼镜的屏幕投影到计算机或电视上?

文字/挪威森林 尽管VR眼镜的目的是让玩家沉浸在虚拟世界中,体验从不同角度观看视频,玩游戏或成为人生的胜利者。但是总有一些玩家希望与他人共享虚拟世界的图像,因此,我现在要提到的是“投影”功能。 今天,挪威正在编写有关如何将VR眼镜中的图像投影到计算机,电视或显示屏…

vr拍摄用的什么设备?vr全景制作方法

对于vr拍摄的作品&#xff0c;我想如今很多朋友都有所接触&#xff0c;2020年微信朋友圈最喜欢年度广告排行榜中前五名有三名都是vr全景的形式&#xff0c;很多用户都被vr全景这种沉浸式更强的展现方式所吸引&#xff0c;有趣的玩法更是使得用户能够自愿参与到广告的传播推广中…

School StartsFirstProject~UnityVR(HTCVive设备开发)

作者 : SYFStrive 质量达到99的文章分享给大家&#x1f4aa; 作者 : SYFStrive 博客首页 : HomePage &#x1f967;&#xff1a; Unity版本2019&#x1f4aa; &#x1f4dc;&#xff1a; VR虚拟现实 &#x1f4cc;&#xff1a;个人社区&#xff08;欢迎大佬们加入&#xff…

2022年全球及中国VR交互设备市场规模研究

2021年全球VR交互设备市场规模大约为 亿元&#xff08;人民币&#xff09;&#xff0c;预计2028年将达到 亿元&#xff0c;2022-2028期间年复合增长率&#xff08;CAGR&#xff09;为 %。未来几年&#xff0c;本行业具有很大不确定性&#xff0c;本文的2022-2028年的预测数据是…

vr直播是什么意思?vr直播需要什么设备?

提起直播&#xff0c;相信大家都不会陌生&#xff0c;近两年国内直播带货异常火爆&#xff0c;一个个傲人的数据无不在吸引着大众的眼光。随着技术的不断发展&#xff0c;如今我们的直播形式也得到了进一步的升级&#xff0c;越来越多的平台开始逐渐支持vr直播。那么vr直播是什…

VR+文旅景区结合VR主题乐园VR设备厂家

主题乐园介绍&#xff1a;VR主题公园主要具备三大特点&#xff1a;大空间自由行走、没有物理线材束缚、多人同场互动。主题公园不仅拥有无线空间定位&#xff0c;还有精度更加高的光学空间定位系统。【普乐蛙】VR根据市场的发展&#xff0c;设计出VR主题乐园项目。【普乐蛙】VR…

Cesium集成WebXR_连接VR设备

Cesium集成WebXR 文章目录 Cesium集成WebXR1. 需求2. 技术基础2.1 WebGL2.2 WebXR2.3 其他 3. 示例代码4. 效果图5. 参考链接 1. 需求 通过WebXR接口&#xff0c;将浏览器端连接到VR头盔&#xff0c;实现在VR头盔中浏览Cesium场景&#xff0c;并可将头盔旋转的操作同步映射为场…

一些有意思的VR设备介绍

1.计算机&#xff08;Computers&#xff09; 不久以前&#xff0c;一个VR系统需要百万美元的超级计算机&#xff1b;而如今顶级的VR系统正在使用桌面便携式计算机簇&#xff0c;极大的降低了价格和维护成本。 2.跟踪器&#xff08;Tracking&#xff09; 数据手套的使用不是太多…

Ajax简介与用法

Ajax简介 AJAX 指异步 JavaScript 及 XML&#xff08;Asynchronous JavaScript And XML&#xff09;&#xff0c;Ajax可以实现异步请求。AJAX 是一种在 2005 年由 Google 推广开来的编程模式。 Ajax语法介绍 学习使用Ajax主要就是学习XMLHttpRequest对象的方法和属性 第一个A…

ajax写法和json的知识点

1. JQuery方式来实现AJAX 1.1 $.ajax()方式来实现AJAX 语法&#xff1a;$.ajax(url,[settings]);但是我们一般这么写$.ajax({键值对});。 $.ajax()来实现ajax的案例&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"…

AJAX请求常用的几种写法

1.什么是 AJAX&#xff1f; AJAX 异步 JavaScript 和 XML&#xff08;Asynchronous JavaScript and XML&#xff09;。 简短地说&#xff0c;在不重载整个网页的情况下&#xff0c;AJAX 通过后台加载数据&#xff0c;并在网页上进行显示。 异步加载&#xff0c;局部刷新&am…

ajax的两种写法

一、原生ajax的实现 1.什么是ajax&#xff1f; ajax是异步的javas和xml&#xff08; Asynchronous JavaScript And XML&#xff09;。 通过在后台与服务器进行小量的数据交换&#xff0c;ajax可以使网页实现异步更新。就是说可以在不刷新页面的情况下&#xff0c;对页面的某…

【ajax】ajax详解,ajax是什么?

思路&#xff1a; ajax&#xff1a;&#xff08;asynchronous javascript and xml&#xff09; asynchronous 异步的 ajax是什么&#xff1f; ajax是一种用来改善用户体验的技术&#xff0c;其本质是利用浏览器提供的一个特殊的对象&#xff08;XMLHttpRequest,也可称之为ajax…

Ajax的请求写法详解

简介 是什么 Ajax全称Asynchronous JavaScript and XML&#xff0c;直译过来就是异步的javascript 和 XML。为什么是叫XML还得由于最开始用ajax实现客户端和服务器端数据通信的时候&#xff0c;传输的数据格式一般都是xml格式的数据&#xff0c;所以把它称之为异步js和xml&am…

$.ajax的标准写法

$.ajax({2 url:"http://www.microsoft.com", //请求的url地址3 dataType:"json", //返回格式为json4 async:true,//请求是否异步&#xff0c;默认为异步&#xff0c;这也是ajax重要特性5 data:{"id":"value"}, …