关于iis构建php web服务的问题!!!
,apachephp模块式与apache结合即PHPIniDir "E:\phpsite\php"(部设置phpini位置) LoadModule php5_module "E:/phpsite/php/php5apache2_2dll" 二,用IIS整合php两种式:ISAPI(exe执行文件phpexephp-cgiexe)与CGI(dll态链接库)模式两种式我都看phpinfo页面使用ISAPI模式读取环境变量所通环境变量PHPRC设置phpini路径找使用CGI必文件拷系统文件 三,配置文件(PHP 3 php3ini自 PHP 4 起 phpini) PHP 启读取于服务器模块版本 PHP仅 web 服务器启读取于 CGI CLI 版本每调用都读取 phpini 搜索路径(按顺序): SAPI 模块所指定位置(Apache 2 PHPIniDir 指令CGI CLI -c 命令 行选项NSAPI php_ini 参数THTTPD PHP_INI_PATH 环境变量) HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath(Windows 注册表位置) PHPRC 环境变量 前工作目录(于 CLI) web 服务器目录(于 SAPI 模块)或 PHP 所目录(Windows 其情况) Windows 目录(C:\windows 或 C:\winnt)或 --with-config-file-path 编译选项指定位置我Server2003+php4环境遇见问题解决前面写PATH环境变量候添加PHPRC指向x:\php4\phpini重新启即实行招安装zendphp加速器安装zend候指定phpini路径指定所使用服务器IISApache起本质注册表做修改我知道修改哪位置所我面操作效情况安装Zend终于功解决问题 四IISPHPISAPIFastCGI比较 (2009-8-2) 1、CGI(通用网关接口/Common Gateway Interface)般执行程序例EXE文件WEB服务器各自占据着同进程,且般CGI程序能处理用户请求用 户请求数量非量占用系统资源内存、CPU间等造效能低 2、ISAPI(Internet Server Application Program Interface)微软提供套面向WEB服务API接口能实现CGI提供全部功能并基础进行扩展提供滤器应用程序接 口ISAPI应用数DLL态库形式使用用户请求执行处理完用户请求马消失继续驻留内存等待处理别 用户输入外,ISAPIDLL应用程序WEB服务器处于同进程效率要显著高于CGI 3、FastCGI伸缩架构CGI放扩展其主要行CGI解释器进程保持内存并获较高性能传统CGI解释器反复加载 CGI性能低主要原CGI解释器保持内存并接受FastCGI进程管理器调度则提供良性能、伸缩性等 ISAPI 模式运行 PHP 种式缺点稳定性 PHP 错候Apache进程死掉 FastCGI 模式运行 PHP 优点: FastCGI 模式运行 PHP 几主要处首先 PHP 错候搞垮 Apache PHP 自进程掉( FastCGI 立即重新启新 PHP 进程代替掉进程) 其FastCGI 模式运行 PHP 比 ISAPI 模式性能更 同运行 PHP5 PHP4 FastCGI 模式些缺点:说完处说说缺点用 FastCGI 模式更适合产环境服务器 于发用机器说太合适使用 Zend Studio 调试程序 由于FastCGI 认 PHP 进程超页面返 500 错误
web服务器在哪,看你是使用什么web服务器了
比如,你可以使用apache,也可以使用iis
你安装了什么,web服务器就是什么
web服务器根目录在哪里呢,这也要看你的 设置
比如你安装了iis作为web服务器,那么iis安装好后,会生成一个默认网站,他的根目录默认是在C盘中,那么,web服务器根目录就在C盘中
当然,你可以修改这个默认网站的根目录,也可以删除这个网站再重新建立一个网站,更可以不删除,就例外建立一个网站,建立网站的时候,有一个选项是选择你要建立的网站的物理路径,你选择在哪里,web根目录就在哪里(比如你选择在F盘,那就在F盘里)
当然,如果使用apache作为web服务器,设置方法都差不多,只是,apache没有设置窗口,他是用记事本修改一个配置文件
作者:2gua
链接:https://zhuanlanzhihucom/p/19904737
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
1 PHP是为Web而生的,天然与HTML、JavaScript有亲近感,也就是原生味儿十足。即使是PHP与HTML代码混杂,从某种角度而言,也能帮助初学者直观地了解Web技术机理,坏事有时候也是好事。另一方面,开源PHP的C风格、Unix/Linux范儿让其在Apache、Nginx等Web应用服务器上表现优异。总之,PHP与Web是浑然天成的结合方式。
2 要掌握PHP,我建议从备受诟病的“代码凌乱”编程风格 -- 或许是从PHP与HTML混合编程开始,待直观了解Web开发技术之后,再考虑代码组织和结构的重构,这样有助于自己以更加原生的方式掌握Web的秘密。那么,什么是更加原生的方式呢?随手举个例子:典型的404状态码。
用PHP的实现(404php、404html):
<php
header("HTTP/11 404 Not Found");
include("404html");
exit;
>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
</head>
<body>
<p>404页面。</p>
</body>
</html>
再看看如http://ASPNET MVC中的实现:
public ActionResult Details(int id)
{
return HttpNotFound();
}
虽然封装得很好,但是,跟PHP方式比较就知道,http://ASPNET MVC中的实现确实比较抽象不够直观,而且是在控制器里直接定义和跳转的。在PHP中,显而易见,一下就明白了代码中header的含义:HTTP-Version、Status-Code、Reason-Phrase。
顺带说说Rails中的处理方式,抽象程度也很高:
render :template => '', :status => 404
3 与PHP类似的还有JSP,但JSP往往需要与JEE其他技术模块相配合使用,体系足够庞大,需要有长期准备。其他如http://ASPNET MVC、Rails等框架的抽象度较高,也不建议作为首选。
4 不得不提Nodejs,Nodejs是目前很火的技术,号称“全栈”的希望所在,常拿来跟PHP争论比较:什么并发、线程、进程等等。在这里无意评论孰优孰劣,但至少PHP可以让你多掌握一门技术,而不止是JavaScript。此外,PHP的大型业务的成熟应用案例可是比比皆是吖。
5 那么,是不是该一直坚持指哪打哪的“代码凌乱”方式呢?当然不应该。PHP提供的OOP特性足够强大,在技能与理解程度达到一定高度时,完全可以以OOP的方式来组织代码。在PHP领域,各种框架非常多,比如Laravel、CI、FuelPHP、Yii、Symfony、Zend Framework等等,届时随便选一个都可以进行规范化开发。“代码凌乱”关键不在于工具本身,而在于人自己!要知道用Java也能写出烂代码。
6 PHP的资料非常丰富。
7 最后,有一个稍稍题外话的看法,早前我还觉得在RESTful方式不断普及下,由于RESTful Web Services使用标准的 HTTP 方法(GET/PUT/POST/DELETE)来抽象Web服务能力,服务端的重点将移至MC,而服务端视图模版的应用会减少,客户端的支撑需求会越来越多。比如各种前端库、框架将得到快速推进,越来越多的需求处理会前置到前端来处理。但现在我感觉这种状态考虑得太过理想了,就像数据频繁大量更迭及处理的场景,更适合服务端(如模版引擎)完成;再具体地,又如大数据量的分页,如果都在浏览器中实现,性能就一定会有很大问题。此外,频繁Ajax调用、客户端缓存机制的缺失,也将引起种种问题,再进一步来看,单页面应用(SPA)也就并非适合每一个业务场景,服务端视图模版还是有比较多的适用领域的。
PHP是一种脚本语言,它需要PHP解释器来分析运行PHP文件。当把PHP做为CGI服务Web请求时,它需要被嵌入到某种Web服务器里,最常 见的是集成到Apache或IIS里,这就是说,在使用PHP前,你需要安装Apache或IIS,并且正确的配置它们和PHP集成的参数。虽然这种配置 已经很规范,文档非常丰富,但我们还是经常在安装Apache和PHP集成时遇到问题,而且,有时候我们只想测试一个简单的PHP特征,不想就为此安装、 启动Apache服务。
但据官方文档上说,这个内置的Web服务器只是提供开发测试使用,不推荐使用中生产环境中。因为这个服务器接受处理请求时顺序执行的,不能并发处理。
这个内置的web服务器使用起来非常的方便,你只需要执行下面的命令:
1
$ php -S localhost:8000
然后就可以访问了。这样启动后,默认的web服务目录是执行命令的当前目录,如果不想使用当前目录,你需要使用 -t 参数来指定。
例 #1 启动Web服务器
1
2
$ cd ~/public_html
$ php -S localhost:8000
终端输出信息:
1
2
3
4
PHP 540 Development Server started at Thu Jul 21 10:43:28 2011
Listening on localhost:8000
Document root is /home/me/public_html
Press Ctrl-C to quit
当请求了 http://localhost:8000/ 和 http://localhost:8000/myscripthtml 地址后,终端输出类似如下的信息:
1
2
3
4
5
6
7
8
9
PHP 540 Development Server started at Thu Jul 21 10:43:28 2011
Listening on localhost:8000
Document root is /home/me/public_html
Press Ctrl-C to quit
[Thu Jul 21 10:48:48 2011] ::1:39144 GET /faviconico - Request read
[Thu Jul 21 10:48:50 2011] ::1:39146 GET / - Request read
[Thu Jul 21 10:48:50 2011] ::1:39147 GET /faviconico - Request read
[Thu Jul 21 10:48:52 2011] ::1:39148 GET /myscripthtml - Request read
[Thu Jul 21 10:48:52 2011] ::1:39149 GET /faviconico - Request read
例 #2 启动web服务器时指定文档的根目录
1
2
$ cd ~/public_html
$ php -S localhost:8000 -t foo/
终端显示信息:
1
2
3
4
PHP 540 Development Server started at Thu Jul 21 10:50:26 2011
Listening on localhost:8000
Document root is /home/me/public_html/foo
Press Ctrl-C to quit
如果你在启动命令行后面附加一个php脚本文件,那这个文件将会被当成一个“路由器”脚本。这个脚本将负责所有的HTTP请求,如果这个脚本执行时返回FALSE,则被请求的资源会正常的返回。如果不是FALSE,浏览里显示的将会是这个脚本产生的内容。
例 #3 使用路由器脚本
在这个例子中,对的请求会返回相应的,但对HTML文件的请求会显示“Welcome to PHP”:
1
2
3
4
5
6
7
8
<php
// routerphp
if (preg_match('/\(:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"])) {
return false; // serve the requested resource as-is
} else {
echo "<p>Welcome to PHP</p>";
}
>
执行:
1
$ php -S localhost:8000 routerphp
例 #4 判断是否是在使用内置web服务器
通过程序判断来调整同一个PHP路由器脚本在内置Web服务器中和在生产服务器中的不同行为:
1
2
3
4
5
6
7
<php
// routerphp
if (php_sapi_name() == 'cli-server') {
/ route static assets and return false /
}
/ go on with normal indexphp operations /
>
执行:
1
$ php -S localhost:8000 routerphp
这个内置的web服务器能识别一些标准的MIME类型资源,它们的扩展有:css, gif, htm, html, jpe, jpeg, jpg, js, png, svg, and txt。对htm 和 svg 扩展到支持是在PHP 544之后才支持的。
WAMP、LAMP里,A是Apache,P是PHP,PHP在Apache下一般是以服务器模块方式安装,这些模块在Apache体系结构里属于可选功能层,Apache用apr_proc_create()函数为每个模块创建一个子进程,每个进程的内存空间独立,可以防止互相干扰。
WNMP、LNMP里的N是Nginx,Nginx主要通过FastCGI接口调用PHP之类的外部程序。
FastCGI是一个编程接口,可以将HTTP服务器和脚本解析服务器分开。Apache、Nginx、Lighttpd都实现了FastCGI接口。
如果想找个实现FastCGI接口的例子,推荐看Nginx的源码(ngx_http_fastcgi_modulec)。
Apache源码里跟FastCGI接口有关的大致是这几个文件:
fcgistarterc
fcgi_protocolh
mod_proxy_fcgic
更多内容可以搜“Apache源码分析”、“Nginx源码分析”、“FastCGI”。
强大,稳定,安全,成熟,而且开源,有很多成熟的系统。案例:facebook
PHP几乎支持所有的操作系统平台及数据库系统。
速度快, 效率高
PHP是一种强大的CGI脚本语言,语法混合了C、Java、Perl和PHP式的新语法,执行网页速度比CGI、Perl和ASP更快,而且内嵌Zend加速引擎,性能稳定快速,占用系统资源少,代码执行速度快。PHP消耗相当少的系统资源。随着版本的升级,php运行速度更加快速。
移植性好拓展性强,无论是mac ,win,linux,都支持php,php主要运行在web服务器上,支持php典型的就是apche,iis 当然apache最佳。
成本还低。 PHP可以在UNIX、Linux等众多不同的操作系统中架设基于PHP的Web服务器。采用Linux+Apache+PHP+MySQL这种开源免费的框架结构可以为网站经营者节省很大一笔开支
更新快
模块化
支持面向对象 面向对象编程(OOP)是当前的软件开发趋势,PHP对OOP提供了良好的支持。可以使用OOP的思想来进行PHP的高级编程,对于提高PHP编程能力和规划好Web开发构架都非常有意义。
功能强大:PHP在Web项目开发过程中具有极其强大的功能,而且实现相对简单,
可操纵多种主流与非主流的数据库,例如:MySQL、Access、SQL Server、Oracle、DB2等,其中,PHP与MySQL是现在绝佳的组合,可以跨平台运行。
可与轻量级目录访问协议进行信息交换。
可与多种协议进行通信,包括IMAP、POP3、SMTP、SOAP和DNS等。
选择性也很广。
PHP是最早一个成熟的流行的专为Web开发设计的语言,一直也是Web开发中效率最高的工具。而且还在不段改进中。因此,全球大部分网站都采用了PHP技术。因为开发简单,尤其在创业企业中盛行。
PHP的缺点:
1、运行效率低。因为PHP是解释型运行速度比有C,C#,Java慢几十倍,实际网站综合性能差三倍。但解释型带来编码、调试、部署都非常方便,对中小网站来说PHP都是极佳的选择。但如果是像Facebook这样的巨型网站,需要30万台服务器,那么用高效的语言可能只要10万台服务器,这就多消耗了数亿美元的硬件和维护费用。Facebook最终自行开发了PHP编译器,让PHP运行速度翻了数倍。
2、不支持面向对象。当前流行的大型程序,都是面向对象方式开发的。而PHP比较简单、比较松散,开发大型程序会稍显力不从心。对于有复杂逻辑的程序,通常会选择Java或者C#来开发。
其余情况下来说,PHP依然是目前最好的选择。最新的PHP7性能提升了一倍,同时增强了对面向对象的支持。做到了与时俱进。
1、PHP语言安全,语言强大且稳定,社区有很多,不懂得基本上都能找到答案
2、PHP语言支持跨平台,支持不同的操作系统
3、PHP有很好的可移植性和可扩展性
4、学习成本和开发成本低,周期短,效率高
5、整个系统需要apache、Mysql搭配,都是免费开源,并且还有许多集成的软件包可用,如xampp、phpstudy等
1、良好的安全性PHP是开源软件,所有PHP的源代码每个人都可以看得到,代码在许多工程师手中进行了检测,同时它与Apache编绎在一起的方式也可以让它具有灵活的安全设定,PHP具有了公认的安全性能。开源造就了强大,稳定,成熟的系统。
2、跨平台特性PHP几乎支持所有的操作系统平台及数据库系统,并广为流行。
3、执行速度快,效率高PHP是一种强大的CGI脚本语言,语法混合了C、Java、Perl和PHP式的新语法,执行网页速度比CGI、Perl和ASP更快,而且内嵌Zend加速引擎,性能稳定快速,占用系统资源少,代码执行速度快。PHP消耗相当少的系统资源。的源代码:所有的PHP源代码事实上都可以得到。
4、很好的移植性和扩展性强PHP具有很好的开放性和可扩展性,PHP可以运行在任何服务器上(不管是windows还是Linux)属于自由软件,其源代码完全公开,任何程序员为PHP扩展附加功能都非常容易。在很多网站上都可以下载到最新版本的PHP。目前,PHP主要是基于Web服务器运行的,支持PHP脚本运行的服务器有多种,其中最有代表性的为Apache和IIS。
5、降低网站开发成本PHP不受平台束缚,可以在UNIX、Linux等众多不同的操作系统中架设基于PHP的Web服务器。采用Linux+Apache+PHP+MySQL这种开源免费的框架结构可以为网站经营者节省很大一笔开支6支持面向对象面向对象编程(OOP)是当前的软件开发趋势,PHP对OOP提供了良好的支持。可以使用OOP的思想来进行PHP的高级编程,对于提高PHP编程能力和规划好Web开发构架都非常有意义。7功能强大PHP在Web项目开发过程中具有极其强大的功能,而且实现相对简单,主要表现在如下几点:可操纵多种主流与非主流的数据库,例如:MySQL、Access、SQLServer、Oracle、DB2等,其中,PHP与MySQL是现在绝佳的组合,可以跨平台运行。可与轻量级目录访问协议进行信息交换。可与多种协议进行通信,包括IMAP、POP3、SMTP、SOAP和DNS等。使用基于POSIX和Perl的正则表达式库解析复杂字符串。可以实现对XML文档的有效管理及创建和调用Web服务等操作。8可选择性PHP可以采用面向过程和面向对象两种开发模式,并向下兼容,开发人员可以从所开发网站的规模和日后维护等多角度考虑,选择所开发网站应采取的模式。PHP进行Web开发的过程中使用最多的是MySQL数据库。PHP50以上版本中不仅提供了早期MySQL数据库操纵函数,而且提供了MySQLi扩展技术对MySQL数据库的操纵,这样开发人员可以从稳定性和执行效率等方面考虑操纵MySQL数据库的方式。9版本更新速度快与数年才更新一次的ASP相比,PHP的更新速度要快得多,因为PHP几乎每年更新一次。10模板化实现程序逻辑与用户界面的分离。11应用范围广目前在互联网有很多网站的开发都是通过PHP语言来完成的,例如,搜狐、网易和百度等,在这些知名网站的创作开发中都应用到了PHP语言。
0条评论