Windows下搭建多版本PHP开发环境

安装PHP

通过scoop安装

# 添加库
scoop bucket add main
## 由于默认从git上下载库,可能下载不下来,这里把github的库导入到gitee,引用第三方库的方式
scoop bucket add main https://gitee.com/wk-zys/Main.git

# 安装,可以并存多个不同版本的php
scoop install php71 php81

# 切换php环境,注意切换后可能不生效或者其他路径错误,需要重启下终端窗口
scoop reset php74
scoop reset php81

运行php-cgi

# -c 参数需要指定配置文件的实际路径
php-cgi.exe -b 127.0.0.1:9000 -c ./php.ini -c ./extensions.ini

直接运行php-cgi中途可能会遇到异常退出

可以使用进程管理来管理php-cgi进程,如:xxfpm

进程管理器 xxfpm

安装

git clone https://github.com/78/xxfpm
# 把./xxfpm/bin 目录加入环境变量

使用

xxfpm -h
# -n, --number  number of processes to keep
# -i, --ip      ip address to bind
# -p, --port    port to bind, default is 8000
# -u, --user    start processes using specified linux user
# -g, --group   start processes using specified linux group
# -r, --root    change root direcotry for the processes
# -h, --help    output usage information and exit
# -v, --version output version information and exit

# 创建5个php-cgi进程
xxfpm ./php-cgi.exe -n 5 -p 9000

# 给 php-cgi.exe 加参数
xxfpm "./php-cgi.exe -c ./php.ini" -n 5 -i 127.0.0.1 -p 9000

如何维护进程:

Windows上使用CreateProcess创建进程,使用WaitForSingleObject等待进程结束;Linux上使用fork和execl创建进程,使用waitpid等待进程结束。Linux的版本多了在创建子进程的时候可以设置进程限制,能够以受限用户方式来运行。

当进程管理器被关闭的时候,它所创建的所有子进程也必须被关闭。 Windows上使用JobObject这个东西来把子进程与管理器的进程产生关联。 Linux上通过捕捉关闭信号,然后给所有子进程发送SIGTERM来结束子进程。

-- by xxfpm: 写了一个小巧的FastCGI进程管理器 | Xiaoxia[PG]

简单的启动脚本

run-php-cgi.bat

@echo off

echo Check php-cgi
netstat -aon|findstr "9081"
tasklist /fi "imagename eq php-cgi.exe"

echo Start php-cgi for php81...
set fpm-cmd="C:\Users\Zbuzhi\scoop\apps\php81\current\php-cgi.exe -c C:\Users\Zbuzhi\scoop\apps\php81\current\cli\php.ini -c C:\Users\Zbuzhi\scoop\apps\php81\current\cli\conf.d\extensions.ini"
xxfpm %fpm-cmd% -n 3 -i 127.0.0.1 -p 9081

echo.

echo Finish
for /l %%i in (5,-1,0) do (
@REM cls
@REM echo.
@REM echo.
@REM echo.
echo. Close after %%i seconds
ping 127.1 -n 2 >nul
)

echo Finish
echo ^

pause
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇