使用 AutoIt3 在 Windows 下实现一个简单的 PHP-FPM

代码见真章,请勿直接用,按注释修改。

#NoTrayIcon

AutoItSetOption("MustDeclareVars", 1);限定变量必须先定义后使用,防止出错

;定义全局常量
Global Const $phpDir = "D:\Webserver\PHP53";PHP 路径
Global Const $phpFile = "php.exe";PHP 程序名
Global Const $phpExe = $phpDir & "\" & $phpFile;PHP 完整路径
Global Const $phpCgiFile = "php-cgi.exe";PHP-CGI 程序名
Global Const $phpCgiExe = $phpDir & "\" & $phpCgiFile;PHP-CGI 完整路径
Global Const $phpIniFile = "php.ini";PHP.INI 名
Global Const $phpIni = $phpDir & "\" & $phpIniFile;PHP.INI 完整路径

__onStart();运行前执行

OnAutoItExitRegister("__onExit");注册回调(退出后执行)

__main();执行主函数

Exit;退出

#comments-start
启动时运行函数
#comments-end
Func __onStart()

EndFunc ;==>__onStart

#comments-start
主函数
#comments-end
Func __main()
    If ($CmdLine[0] >= 1) Then
        __cmdMain()
        Exit
    EndIf
EndFunc ;==>__main

#comments-start
命令行主函数
#comments-end
Func __cmdMain()
    While 1
        If (__checkPhpCgiProcess() < $CmdLine[1]) Then
            __runPhpCgi($CmdLine[1] - __checkPhpCgiProcess())
        EndIf
        Sleep(10000)
    WEnd
EndFunc ;==>__cmdMain

#comments-start
退出时运行函数
#comments-end
Func __onExit()

EndFunc ;==>__onExit

#comments-start
检查 PHP-CGI 是否在运行
@return boolean 运行返回 true,否则返回 false
#comments-end
Func __checkPhpCgiState()
    Return ProcessExists($phpCgiFile)
EndFunc ;==>__checkPhpCgiState

#comments-start
检查 PHP-CGI 进程数
@return int 返回目前 PHP-CGI 进程数
#comments-end
Func __checkPhpCgiProcess()
    Local $phpCgiProcessArray = ProcessList($phpCgiFile)
    Return IsArray($phpCgiProcessArray) ? $phpCgiProcessArray[0][0] : 0;
EndFunc ;==>__checkPhpCgiProcess

#comments-start
运行 PHP-CGI
@param int $start 运行几个 PHP-CGI
#comments-end
Func __runPhpCgi($start = 3)
    Local $i = 1
    For $i = 1 To $start Step 1
        Run($phpCgiExe & " -b 127.0.0.1:9000", $phpDir, @SW_HIDE)
    Next
EndFunc ;==>__runPhpCgi

#comments-start
结束 PHP-CGI
#comments-end
Func __stopPhpCgi()
    While __checkPhpCgiState()
        __closePhpCgiProcess()
    WEnd
EndFunc ;==>__stopPhpCgi

#comments-start
结束 PHP-CGI 进程
#comments-end
Func __closePhpCgiProcess()
    ProcessClose($phpCgiFile)
EndFunc ;==>__closePhpCgiProcess
分类目录: PHP | 标签:

高一学期结束

状态

高一学期结束了,为自己的成绩做个备份,并鼓励自己不断前进!

考试语文数学英语物理化学生物政治历史地理总分班排名级排名
上学期期中94117106819186717569790164
上学期期末121121114828795766861825118
下学期期中108831126064797262677074104
下学期期末10271120686990836585752262

 

首次发表时间: | 最后更新时间: | 作者:

记忆空间恢复更新

状态

时隔近2年,记忆空间终于恢复了更新。

现在进入 WordPress 博客和 Typecho 博客并行阶段。

欢迎访问我的 Typecho 博客:http://blog.nikbobo.net/

另外,更换了主题,新的主题基于 Twenty Eleven 进行了定制修改,更好地体现博客内涵。(一大堆人来称赞我之前的主题特别像 Google,却并没有关注到内涵,现在可以关注内涵了)

首次发表时间: | 最后更新时间: | 作者:

状态

折腾了一天,成功开启全站 HTTPS,感谢腾讯云,以后本站将使用高大上的 HTTPS 为访客提供更好服务。

首次发表时间: | 最后更新时间: | 作者:

谢谢 JetBrains 公司的学生授权

今天,我收到了 JetBrains 公司的学生授权,可以免费使用 PhpStorm 一年啦!

一个月前,我突然想从文本编辑器切换到 IDE,然后满大街的找有什么好的 PHP IDE,当然是好评如潮的 PhpStorm 啦。但是这是收费的,提供了 30 天试用。前几天,30 天试用就快要过期了,突然我发现 JetBrains 公司提供了 Student License,然后就试着去申请啦。

本来我也没想到会通过的,原因有二:

  1. 我并没有 edu 注册邮箱,也没有什么国际学生证,只能采用人工审核的方式
  2. 我只有高中的学生证,以前我申请其他学生优惠的时候,即使可以人工审核,最后也往往不获得通过,或者得到一封抱歉信——我们只支持全日制大学生。

抱着试一试的态度,我上传了我们的学生证&门禁卡,这个在我们当地很多店都可以优惠,但是我之前拿这个申请其他的学生优惠好像没成功过,原因见上述。

继续阅读 →

用 CDN 后获取评论者真实 IP 的方法

今天,本站成功接入腾讯云 CDN,享受高速内容分发网络。

做网站的人都知道,对于 WordPress 而言,保存评论者真实 IP 的重要性。我们经常会遇见恶意进行大量的行为,对于直连的主机,我们可以直接通过 IP 过滤掉这些恶意评论。

而对于套了一层 CDN 或代理的网站,这些方法可能就失效了。因为 WordPress 记录的 IP 是来自 $_SERVER['REMOTE_ADDR'],而用上 CDN 后,这会变成了 CDN 节点的 IP。

那么真实的 IP 藏在哪里呢?我们该如何通过 Hack WordPress 来使 WordPress 获取到真实的评论者 IP 呢?

继续阅读 →

高二学期结束,高三来临

状态

不知不觉,高二已经过去,高三即将来临。8月1日,本人就进入了高三,也许这个网站会停更一年,甚至各种事物都不会处理,望周知。

照例留下成绩。(高二成绩退步好多)

考试语文理科数学英语物理化学生物理科综合总分班排名级排名
上学期期中111103110.5675954180504.51339
上学期期末10451935561691854331855
下学期期中96109103.5626063185493.51764
下学期期末10082100705665191473
首次发表时间: | 最后更新时间: | 作者:

状态

今天打开网站发现不能访问,查来查去才发现是腾讯云的防盗链设置错误了,如今已经恢复,各位要吸取教训,如果主站放在 CDN 上,必须保证防盗链白名单中勾选“包含空 referer”也许应该不设置防盗链,不然那些从搜索引擎而来的访客就惨了,或者通过黑名单而不是白名单来设置吧,不然会无法访问网站!

首次发表时间: | 最后更新时间: | 作者:

状态

转眼看到,记忆空间上一次更新还是 2017 年,一晃就 5 年过去了,博主也从当年的高中的青涩到了如今即将大学毕业的地步了。

今天开始,记忆空间开始尝试恢复更新了,目前会逐步将技术部分由 PHP 转向 Java,以算法方面为主。

首次发表时间: | 最后更新时间: | 作者: