我是靠谱客的博主 听话萝莉,最近开发中收集的这篇文章主要介绍php环境有哪些方法,windows环境下搭建PHP环境的几种常用方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前言1

2

3

4

58/28/2014 9:20 PM 40116224 php-5.3.29-nts-win32-VC9-x86.msi

8/15/2014 8:02 PM 17034827 php-5.3.29-nts-Win32-VC9-x86.zip

8/15/2014 8:02 PM 20869838 php-5.3.29-src.zip

8/28/2014 9:20 PM 40239104 php-5.3.29-win32-VC9-x86.msi

8/15/2014 8:02 PM 17182832 php-5.3.29-Win32-VC9-x86.zip

.msi是安装版,src.zip是源码包。我们都不使用,其他2个版本的区别是:

php-5.3.29-nts-Win32-VC9-x86.zip ,nts为Non Thread Safe非线程安全的版本

php-5.3.29-Win32-VC9-x86.zip,这个为线程安全的版本

同时PHP还有其他的版本,即x64的版本,但是x64版本是实验性质的,所以可以无视,直接使用x86版。至于Thead Safe(线程安全)/Non Thead Safe(非线程安全)的区别我也不清楚,但是FastCGI是单线程执行的,因而不需要线程安全版本,去掉线程安全的防护后可以提高执行效率;而ISAPI方式则是多线程模式,所以需要采用线程安全版本。

另外,VC9是指Microsoft Visual C++ 9.0 32位是安装 Visual C++库的运行时组件,使用户能够在计算机上运行使用Visual C++开发的应用程序。必须安装了之后才能正常运行。可以在 微软常用运行库合集 下载版本进行安装。注意,由于我们选用的是x86的php,所以只能安装32位的vc包。

nginx+php方案

nginx安装

在 https://nginx.org/en/download.html 下载Stable version版本。下载好之后直接解压至D:nginx目录下,用 管理员权限 打开cmd,切换到nginx解压目录下,输入命令 start nginx.exe 或者 nginx.exe ,回车后会出现一个黑色的弹窗一闪而过。直接访问http://localhost/,如果能正常访问,就表示nginx访问正常了。

常见nginx操作:

1

2

3

4

5start nginx.exe ## 启动服务

nginx.exe -s stop ## 快速停止服务

nginx.exe -s quit ## 优雅的 停止服务

nginx.exe -s reload ## 重新加载 配置文件,这命令可以不用停止nginx

nginx.exe -s reopen ## 重新打开日志文件

nginx配置服务

在https://github.com/kohsuke/winsw/releases下载winSW,将 WinSW.NET4.exe 复制到 D:nginx 目录中,并将名字修改为 nginxservice.exe ,新建一个空的 nginxservice.xml 文件(名字要与nginxservice.exe 名字前缀保持一致,但后缀是xml) ,其内容:

1

2

3

4

5

6

7

8

9

10

nginx

nginx

nginx

D:nginx

roll

D:nginxnginx.exe

D:nginxnginx.exe -s stop

这里有3处必须修改: 、 、 ,然后用管理员权限打开cmd,运行nginxservice.exe install,然后运行net start nginx即可。

配置php

在php的目录下可以找到php.ini-development文件,复制一份并将文件名修改为php.ini。然后修改配置文件内容:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32short_open_tag=On

post_max_size=200M

disable_functions=exec,system,passthru,popen,pclose,shell_exec,proc_open,dl,chmod,escapeshellarg,escapeshellcmd,sh2_exec,proc_terminate,proc_close

extension_dir = "D:phpext"

cgi.force_redirect = 1

cgi.fix_pathinfo=1

upload_tmp_dir="D:phptemp"

upload_max_filesize=200M

extension=php_bz2.dll

extension=php_curl.dll

extension=php_gd2.dll

extension=php_mbstring.dll

extension=php_mysql.dll

extension=php_mysqli.dll

extension=php_openssl.dll

extension=php_pdo_mysql.dll

extension=php_pdo_odbc.dll

extension=php_pdo_pgsql.dll

extension=php_pdo_sqlite.dll

extension=php_pgsql.dll

extension=php_sqlite.dll

extension=php_memcache.dll

date.timezone=Asia/Shanghai

session.save_path="D:phptemp"

[Zend.loader]

zend_loader.enable=1

zend_loader.disable_licensing=0

zend_loader.obfuscation_level_support=3

zend_loader.license_path=

zend_extension="extZendLoader.dll"

命令行下输入如下命令启动php,不报错表示启动成功。

1D:/web/php>php-cgi.exe -b 127.0.0.1:9000 -c D:/web/php/php.ini

然后在nginx的配置文件server配置块中,加上以下规则:

1

2

3

4

5

6location ~ .php$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

在D:/nginx/html下新建一个phpinfo.php,加入<?php phpinfo();?>内容后保存后,重启nginx之后,访问http://localhost/phpinfo.php能看到php信息表示安装成功。

配置php-cgi为服务

由于php-cgi.exe会自动退出,而xxfpm是php-cgi.exe进程管理工具,解决windows环境下php-cgi自动死掉问题,下载地址为https://github.com/78/xxfpm ,而winserv.exe是命令调用工具,可以让他符合注册为windows系统服务标准的程序,通过它来调用xxfpm。

1

2

3

4

5

6

7

8

9

10

11

12

13@echo off

if not ""%1"" == ""INSTALL"" goto remove

"C:/nginx/phpwinserv.exe" install "nginxPHP-CGI" -start auto "C:/nginx/phpphp-cgi.exe" -b 127.0.0.1:9000 -c "C:/nginx/phpphp.ini"

net start nginxPHP-CGI > NUL

goto end

:remove

net stop nginxPHP-CGI > NUL

"C:/nginx/phpwinserv.exe" uninstall "nginxPHP-CGI"

:end

exit

直接copy上面代码,改名install.bat,执行即可。当然上面的目录路径要修改成你的。这步操作完,php-cgi.exe会随winserv.exe的启动而启动,但还没完,因为这时候的php-cgi.exe很脆弱,500个请求就会down掉。

在【运行】里输入regedit.exe,找到HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesnginxPHP-CGI,即刚才注册的服务键值,把CommandLine的值修改为:C:nginxphpxxfpm.exe "C:/nginx/php/php-cgi.exe -c C:/nginx/php/php.ini" -n 5 -i 127.0.0.1 -p 9000,注意修改成自己的目录。上面的命令就是通过xxfpm.exe去管理php-cgi.exe进程,-n 5是打开5个进程,可以自行修改。

附上所有工具包、bat文件:百度网盘

注意,winserv.exe不能删除,所以此文件需要放置在常用路径。注册完服务之后,效果图如下:

68a706e848ce92d7d710f897f5f0fd3f.png

脚本启动脚本方法

使用服务的方法,运行比较麻烦。并且运行的时间也比较久,基于此,可以直接使用cmd来运行,但是就运行在前台,有一个黑黑的运行框,我们可以使用 RunHiddenConsole.zip 使进程运行在后台,就清爽很多了。下载好工具之后,放置到nginx的安装目录下,将以下内容保存为start.bat:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33REM REM是bat文件的注释类似于php的//

REM 设置不输出命令

@ECHO off

REM 设置Nginx和php-cgi的目录

set php_home=E:/php

set nginx_home=E:/nginx

rem 重启PHP FastCGI

SET status=1

(TASKLIST|FIND /I "php-cgi.exe"||SET status=0) 2>nul 1>nul

IF %status% EQU 1 (

echo PHP FastCGI已经启动过了...

) ELSE (

%nginx_home%/RunHiddenConsole.exe %php_home%/php-cgi.exe -b 127.0.0.1:9000 -c %php_home%/php.ini

echo PHP FastCGI启动成功~

)

rem 重启nginx

echo,

SET status=1

(TASKLIST|FIND /I "nginx.exe"||SET status=0) 2>nul 1>nul

IF %status% EQU 1 (

echo Nginx已经启动过了...

) ELSE (

%nginx_home%/RunHiddenConsole.exe %nginx_home%/nginx.exe -p %nginx_home%

echo Nginx启动成功~

)

echo,

echo 按任意键退出界面(程序依然在运行)

pause>nul

exit

将以下内容保存为stop.bat:

1

2

3

4

5

6

7

8@ECHO off

ECHO Stopping nginx...

REM 结束进程 /F 强制终止 /IM 指定的进程

TASKKILL /F /IM nginx.exe

ECHO Stopping PHP FastCGI...

TASKKILL /F /IM php-cgi.exe

REM 关闭窗口

EXIT

在windows环境下面配置多版本的PHP,其实就是下载多个php包,然后运行php-cgi.exe,然后绑定到不同的端口上面即可实现。

IIS + PHP 方案

此方案用得比较普遍。首先安装IIS组件,此步略。网上有很多方法的。

全手工方案

跟上述nginx+PHP包一样,下载php包,配置php.ini,此步请参考上面的文章。

打开IIS管理器,选择服务器节点

c8f16fb387c62aa695df439b0d29a147.png

打开“处理程序映射”,

3bae349c1d4b59e1e23cd6864e743e3e.png

“添加模块映射”,

a4e00fc0ae83c90fb228fac30681a20e.png

请求路径:*.php

模块:FastCgiModule

可执行文件(可选):d:phpphp-cgi.exe

名称:php-fastcgi

edf195dd8cdd671fee5c1fd1755587a8.png

点“是”保存。

5fee56144332a7c869a52c5f7cc7af38.png

双击“FastCGI设置”,

010989317929102f24c426ff7ac9a69e.png

选中路径,点击“编辑”,

d06d5996a2c69c60e96e77d500305463.png

点击“添加”,

Name:PHP_FCGI_MAX_REQUESTS

Value:10000

最后,“确定”即可。

通过phpManager配置

我们先把php下载到机器上,然后只需要解压即可,不需要去修改Php.ini的配置。

再继续安装phpManager之前,必须安装.net 3.5,安装方法如下:

be500087c455bdee21a468560c72eba5.png

再双击安装phpManager即可。安装完后,会在IIS 中多出来一个图标,如图所示:

be77bcbb1fa767ca8eaaf4bac97c2bf6.png

打开之后,如果没有配置PHP,会有一个黄色的警告。如下:

f229a81c8888d21ce3326dcf5be167b7.png

这时可以点击注册新 PHP 版本,按浏览按钮,选择php-cgi.exe文件即可:

c692569347f4a162fe146c11f5967a60.png

只需要这一步,PHP Manager就帮我们生成了php.ini配置文件、在“处理程序映射”中自动添加了FastCgiModule模块的映射、“FastCgi设置“中也己生成,并且自动开启了几个常用模块。

web平台安装程序

b32d5896dced802a1addc81042e3a8a1.png

双击打开之后 ,搜索PHP即可。

e7729b2766e76b9b9588a78c173d132d.png

由于此库在国外,下载比较慢,也有可以加载不了这个安装程序,所以在这个方法行通的时候,可以使用phpManager方法来配置,也是很快的,毕竟php.ini的配置都不需要去修改了。

第三方组件

第三方组件也有很多方法,直接集成了一键部署的功能。想省事的,可以直接下载拿来安装。

个人看法,在windows环境下面配置PHP,如果没有特殊需求,还是使用IIS+phpManger配置。

参考链接

最后

以上就是听话萝莉为你收集整理的php环境有哪些方法,windows环境下搭建PHP环境的几种常用方法的全部内容,希望文章能够帮你解决php环境有哪些方法,windows环境下搭建PHP环境的几种常用方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(28)

评论列表共有 0 条评论

立即
投稿
返回
顶部