目录结构如下
然后php.ini/httpd.conf/my.ini都是使用相对路径来指定
panel.bat
----------------------------------------代码------------
@echo off
::apche+mysql+php相对目录控制面板,需要放到与它们相同的分区下
::-----使用本工具需要设置的参数--------
:: 查看html代码的浏览器, 请修改成自己的路径
set viewHtml=D:\Program Files\Mozilla Firefox\firefox.exe
::-----设置---结束--部分--------
set bat=%~f0
set batDir=%~dp0
CD "%batDir%"
if not exist "%viewHtml%" echo 查看html的浏览器不存在:%viewHtml%,需要打开本bat设置 & pause & GOTO :EOF
if not exist "%batDir%apache" echo apache服务器的目录不是:%batDir%apache,请移动到此路径下 & pause & GOTO :EOF
if not exist "%batDir%mysql" echo mysql服务器的目录不是:%batDir%mysql,请移动到此路径下 & pause & GOTO :EOF
if not exist "%batDir%apache\php\php.exe" echo php的目录不是:%batDir%apache\php,请移动到此路径下 & pause & GOTO :EOF
:ch
set ch=exit
cls
echo 网站服务控制面板
echo.
echo 序号 对应任务
echo.
echo 1 启动apache服务
echo 2 启动mysql服务
echo 3 停止mysql服务
echo 4 打开php.ini
echo 5 打开httpd.conf
echo 6 检查http.conf配置
echo 7 拖入php文件以命令行模式运行
echo 其它 退出
echo.
echo 请输入上面序号字符后,回车即可完成操作的选择
echo.
set /p ch=
:eof_ch
cls
set /a ch*=1
call :callLabel%ch%
IF %ERRORLEVEL% LEQ 0 goto ch
echo.
echo 本程序即将退出...稍息自动关闭窗口
ping 127.0.0.1 -n 2 >nul
GOTO :EOF & exit
::启动apapche
:callLabel1
::新窗口中启动的apache
start "apache服务窗口" /D "%batDir%apache" bin\httpd.exe
:eof_callLabel1
goto ch
GOTO :EOF
::eof_启动apapche
::启动mysql
:callLabel2
start "mysql服务" /D "%batDir%mysql" bin\mysqld.exe --standalone
:eof_callLabel2
goto ch
GOTO :EOF
::eof_启动mysql
::停止mysql
:callLabel3
echo 停止mysql服务需要输入密码
echo 密码是 qidizi 请输入
cd "%batDir%mysql"
bin\mysqladmin -u stopUser shutdown -p -h 127.0.0.1
echo.
echo 如果提示密码/用户错误,有可能是mysql用户数据库中没有user叫stopUser,密码是qidizi,且权限有shutdowm的用户,host是127.0.0.1,请添加再试
echo.
echo 稍候自动返回主菜单...
ping 127.0.0.1 -n 6 >nul
:eof_callLabel3
goto ch
goto :EOF
::eof_停止mysql
::打开php配置文件
:callLabel4
start "php配置文件" /MIN /D "%batDir%Apache\php" php.ini
:eof_callLabel4
goto ch
GOTO :EOF
::eof_打开php配置文件
::打开httpconf
:callLabel5
start "apache配置文件" /MIN /D "%batDir%Apache\conf" httpd.conf
:eof_callLabel5
goto ch
goto :EOF
::eof_打开httpconf
::检测httpconf配置
:callLabel6
echo 检测中...
cd "%batDir%apache"
echo 下面是检测结果^<br^/^> > "%TEMP%\php.cli.out.html"
echo 如果出现如^\xdd^\xed类似错误提示,请使用php的urldecode^(%%dd%%ed^)来转成汉字^<br^/^>^<br^/^> >> "%TEMP%\php.cli.out.html"
echo ^<textarea style^="width:100%%;height:500px;" wrap^="off"^> >> "%TEMP%\php.cli.out.html"
bin\httpd.exe -X -M -S -L -t >> "%TEMP%\php.cli.out.html"
echo ^<^/textarea^> >> "%TEMP%\php.cli.out.html"
"%viewHtml%" "%TEMP%\php.cli.out.html"
:eof_callLabel6
goto ch
goto :EOF
::eof_检测httpconf配置
::在命令行模式下运行php
:callLabel7
:: php的可运行文件路径,需要设置成自己的路径
set phpBin=php\php.exe
echo 请拖入以命令行模式运行的php后回车运行
echo 直接回车返回主菜单
echo.
set s=
set /p s=
if "%s%" == "" goto ch
set s=%s:"=%
if "%s%" == "" goto ch
if not exist "%s%" (
echo 文件 %s% 不存在,稍候自动返回主菜单
ping 127.0.0.1 -n 5 >nul
goto ch
)
echo 如果此php需要参数请在这里输入[需要按照浏览器规范编码]
echo 如果不明参数存放方式,请在php中使用phpinfo^(^)方法来查看
echo.
echo 如例:
echo.
echo 需要传入一个参数,输入如下
echo "参数值被双引号引起"
echo.
echo 需要仿照xx.php^?id^=1^&b^=ddd,输入如下
echo "id=id值&val=val值&cn=urlencode(中文需要编码)"
echo.
echo 需要多组参数,输入如下
echo "参数组1" "参数组2" "参数组3" "参数组N"
echo.
echo 如果不需要参数,请直接回车
set /p get=
set getC=%get% ""
set getC=%getC: =%
set getC=%getC:"=%
if not "%getC%" == "" (
set get=^-^- %get%
) else (
set get=
)
set outTxt="%TEMP%\php.cli.out.html"
echo php开始解析中...
echo 运行时所在目录:"%batDir%apache" >%outTxt%
echo ^<br^/^>^<br ^/^> >>%outTxt%
echo 运行时指令串如下 >>%outTxt%
echo ^<br^/^>^<br ^/^> >>%outTxt%
echo %phpBin% -d display_errors=On -d display_startup_errors=On -d log_errors=Off -d track_errors=On -f "%s%" %get% >>%outTxt%
echo ^<br^/^>^<br ^/^> >>%outTxt%
echo ^<br^/^>^<br ^/^> >>%outTxt%
cd "%batDir%apache"
title php命令行模式运行
%phpBin% -d display_errors=On -d display_startup_errors=On -d log_errors=Off -d track_errors=On -f "%s%" %get% >>"%outTxt%" 2>&1
"%viewHtml%" "%outTxt%"
:eof_callLabel7
goto ch
goto :EOF
::eof_在命令行模式下运行php
--------------------------------------------------------------------------------------
如此配置后,整个web服务与代码完全可以放到u盘中使用了.
mysql/php/apache都是使用的是zip免安装官方版本.