php服务器用IIS好还是用Apache好,其他的服务器怎么样
发布网友
发布时间:2022-04-28 21:55
我来回答
共16个回答
懂视网
时间:2022-04-29 15:46
docker安装php容器
前言:接上一篇安装nginx容器
1. 拉取php镜像,我拉取了7.2.9版本的php
docker pull php:7.2.9-fpm
2. 创建php容器
docker run -p 9000:9000 --name php729 -v $PWD/www:/www -v $PWD/php/conf:/usr/local/etc/php -v $PWD/php/conf/conf.d:/usr/local/etc/php/conf.d -v $PWD/php/logs:/phplogs -d php:7.2.9-fpm
-v $PWD/www:/www 此处的目录和上一篇中nginx所在的www目录一样
-v $PWD/php/conf:/usr/local/etc/php 还不知道挂载这个目录有什么用,先抄别人的
3. 这样php的容器就创建完成了,接下来查看下容器ip,将其配置到nginx的*.conf文件中
docker inspect php729 |grep "IPAddress"
打开nginx中的conf文件,我这边为上一篇中的test.conf文件
location ~ .php$ {
fastcgi_pass <strong>172.0.0.1</strong>:9000; #<strong>将此处的127.0.0.1替换成你刚查出来的ip</strong>
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
完成后重新启动nginx容器,然后在页面访问测试文件,即可成功。
更多PHP相关知识,请访问PHP中文网!
热心网友
时间:2022-04-29 12:54
看你的项目,apache肯定好于iis的,但是apache和nginx之间也是有区别的。
轻量级,同样起web 服务,比apache 占用更少的内存及资源 ,抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能 ,高度模块化的设计,编写模块相对简单,社区活跃,各种高性能模块出品迅速啊
apache 相对于nginx 的优点:
rewrite ,比nginx 的rewrite 强大,模块超多,基本想到的都可以找到,少bug ,nginx 的bug 相对较多,超稳定,存在就是理由,一般来说,需要性能的web 服务,用nginx 。如果不需要性能只求稳定,那就apache 吧。后者的各种功能模块实现得比前者,例如ssl 的模块就比前者好,可配置项多。这里要注意一点,epoll(freebsd 上是 kqueue )网络IO 模型是nginx 处理性能高的根本理由,但并不是所有的情况下都是epoll 大获全胜的,如果本身提供静态服务的就只有寥寥几个文件,apache 的select 模型或许比epoll 更高性能。当然,这只是根据网络IO 模型的原理作的一个假设,真正的应用还是需要实测了再说的。
---------------------
热心网友
时间:2022-04-29 14:12
IIS与Tomcat的区别
IIS是微软公司的Web服务器。主要支持ASP语言环境.
Tomcat是Java Servlet 2.2和JavaServer Pages 1.1技术的标准实现,是基于Apache许可证下开发的SJP语言环境容器,严格得说不能算是一个WEB服务器,而是Apache服务适配器。
tomcat主要的任务不是WEB服务,而是支持JSP语言环境.
IIS就是也款WEB服务器,支持ASP语言环境
Apache与Tomcat的区别
APACHE是一个web服务器环境程序 启用他可以作为web服务器使用 不过只支持静态网页. 但asp,php,cgi,jsp等动态网页的就不行.
如果要在APACHE环境下运行jsp 的话就需要一个解释器来执行jsp网页, 而这个jsp解释器就是TOMCAT, 为什么还要JDK呢?因为jsp需要连接数据库的话就要jdk来提供连接数据库的驱程,所以要运行jsp的web服务器平台就需要APACHE+TOMCAT+JDK 整合的好处是:如果客户端请求的是静态页面,则只需要Apache服务器响应请求如果客户端请求动态页面,则是Tomcat服务器响应请求因为jsp是服务器端解释代码的,这样整合就可以减少Tomcat的服务开销 .
apache是web服务器,tomcat是应用(java)服务器,它只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展。
Apache:普通服务器,本身只支持html即普通网页,它是html容器,功能像IIS一样
tomcat:解释java程序(jsp,serverlet),它是是jsp/servlet容器,用于发布JSP及JAVA的
apache是一辆卡车,上面可以装一些东西如html等。但是不能装水,要装水必须要有容器(桶),tomcat就是一个桶(装像JAVA这样的水),而这个桶也可以不放在卡车上。
IIS与 Apache的区别
对于中小企业来说建立自己的网站,对外展示自己的页面是最平常不过的事情了。目前最流行的建立WWW服务工具就要属Apache与IIS了。那么他们之间都有什么区别呢?到底哪个工具才是最适合我们的呢?今天就来讨论下这个问题。
热心网友
时间:2022-04-29 15:47
一,在apache中php以模块的方式与apache结合的即PHPIniDir "E:\phpsite\php"(这部是设置php.ini的位置) LoadMole php5_mole "E:/phpsite/php/php5apache2_2.dll"
二,在用IIS整合php时,有两种方式:ISAPI(.exe可执行文件【php.exe,php-cgi.exe】)与CGI(.dll动态链接库)模式,这两种方式,我们都可以看到phpinfo页面,但是使用ISAPI模式,无法读取环境变量,所以通过环境变量PHPRC设置的php.ini路径无法找到。使用CGI就可以,这样就不必把好多文件拷到系统文件下。
三,配置文件(PHP 3 中是 php3.ini,自 PHP 4 起是 php.ini)在 PHP 启动时被读取。对于服务器模块版本的 PHP,仅在 web 服务器启动时读取一次。对于 CGI 和 CLI 版本,每次调用都会读取。
php.ini 的搜索路径如下(按顺序):
* 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\php.ini,重新启动即可,如果实在还是不行的,最后还有一招就是安装zend,php加速器,因为安装zend的时候,会指定php.ini的路径,也会指定所使用的服务器是IIS还是Apache,起本质是对注册表做了修改,但是我不知道修改了哪个位置,所以我在上面的操作还是无效的情况下,最后安装Zend,终于成功解决问题了。
四,IIS下PHP的ISAPI和FastCGI比较 (2009-8-2)
1、CGI(通用网关接口/Common Gateway Interface)一般是可执行程序,例如EXE文件,和WEB服务器各自占据着不同的进程,而且一般一个CGI程序只能处理一个用户请求。这样,当用 户请求数量非常多时,会大量占用系统的资源,如内存、CPU时间等,造成效能低下。
2、ISAPI(Internet Server Application Program Interface)是微软提供的一套面向WEB服务的API接口,它能实现CGI提供的全部功能,并在此基础上进行了扩展,如提供了过滤器应用程序接 口。ISAPI应用大多数以DLL动态库的形式使用,可以在被用户请求后执行,,在处理完一个用户请求后不会马上消失,而是继续驻留在内存中等待处理别的 用户输入。此外,ISAPI的DLL应用程序和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 错误
热心网友
时间:2022-04-29 17:38
如果你是使用windows系统的服务器,建议是IIS,因为这种web环境在windows下跑php是性能最好的,而且功能很多。
如果你是使用Linux服务器,比如CentOS和Ubuntu之类的,我建议是用Apache和nginx,这两个在Linux下性能最佳,本身来说Linux类服务器安全性和资源消耗都比windows低,而且安全性好。
至于Apache和nginx的选择,如果要方便配置,快速搭建,需要很多功能,可以选择Apache。如果要性能极佳,稳定性,追求速度,自身有技术的,可以选择nginx。
总得来说。
php不建议在windows服务器运行,iis也只支持windows服务器,Apache和nginx在windows都比较卡顿。所以我建议你使用Linux服务器,并根据自身要求从Apache和nginx之间选择。追问Linux跟Windows有啥区别,是专门做服务器的系统吗
追答Linux和windows都可以是专门做服务器的系统,但是就论php运行而言,在Linux下可以得到更快的速度,稳定性,和安全性。
这是一个适合不适合的问题,php适合Linux,和系统的优劣无关。如果你是.net项目,就是适合windows不适合Linux
热心网友
时间:2022-04-29 19:46
1、稳定性
稳定性是web服务器不间断运行的根本。对于一个网站来说也是尤为重要的。在正常的运载过程中,IIS的稳定性稍逊于Apache,如果保持长时间的运行而不重启的情况下,偶尔会出现500错误,甚至还有可能出现莫名的假死情况。要解决这一问题用户可以不定期的重启一下,这种情况将会有所好转。反观Apache则表现的非常稳定。
2、安全性
安全性是所有服务应用的重中之重。而且当前各种莫名的攻击大肆侵略着各种不同的服务器。早期的IIS在安全性上有所欠缺,不过随着微软公司的完善,各种补丁更新的升级,尽可能的提高了网站安全性上。Apache得益于先天的优势,一般用户都会在Linux环境下运行Apache,所以安全性自然也没得说。安全性的话,Apache和IIS可以说是旗鼓相当。
3、难易度
一款软件应用的上手难度直接影响着用户群体的大小。IIS自然不用多说,微软公司一直都是以易操作的图形化深得人心。上手操作、发布网站比较简单快捷。但是,要想精通的话还是挺困难的。APACHE则比IIS难上许多,首先一定要具备基础的计算机及互联网知识。所以说,IIS在这个环节上优势巨大。这也是这两者拉开差距的最大因素。
4、扩展性
IIS只能在windows环境下运行,拓展性可想而知,脱离的windows它将一事无成。不过运行ASP和.net非常优秀。而Apache自然无需多说,开放的源代码,拓展能力极强。支持几乎所有的语言。这个环节Apache完胜。
热心网友
时间:2022-04-29 22:11
肯定是Apache 好,
Apache 占用资源少
Apache 可以跨平台,IIS只能是Windows.
热心网友
时间:2022-04-30 00:52
如果是IIS和Apache比较的话,当然Apache比用IIS好,IIS是给微软自家用的,比如ASP或ASP.NET,对于PHP,与Apache结合很不错。不过Apache不是最好的选择,在Linux下,PHP与Nginx结合才是完美的组合。
热心网友
时间:2022-04-30 03:50
一、nginx
ngnix是反向代理服务器,它是代理,本身并不执行,是个传话筒,把用户提交的请求转发给web服务器,再把web服务器的结果转发给用户。为了提高性能,启用反向代理,实际的web服务器可以有很多台,而ngnix放在前面,可以把这些web服务器整合成一个虚拟的更强大的服务器。
二、iis
iis是微软开发的web服务器,需要收费,主要用来跑asp.net asp php,只能在windows下运行。
三、apache
apache是apache基金会的web服务器,免费,只支持静态页面,是html容器,应用范围广泛。
四、tomcat
tomcat是apache基金会的java服务器,主要用来跑jsp php python等。
热心网友
时间:2022-04-30 07:05
现在基本都差不多的,不过还是建议用apache 或者nginx。
热心网友
时间:2022-04-30 10:36
在windows下用IIS好些。
热心网友
时间:2022-04-30 14:24
不是apache和iis,是apache和nginx选一个,我换了几个公司了,每个公司都是用的nginx,搞PHP的基本都不用iis,因为iis是windows的东西,现在像样点的项目都是linux。
热心网友
时间:2022-04-30 18:29
使用asp的话就IIS
使用PHP的话就Nginx和Apache选一个。
Windows服务器就Apache
Linux服务器就nginx
热心网友
时间:2022-04-30 22:50
nginx 或 apache 好
nginx 性能好
apache 稳定
热心网友
时间:2022-05-01 03:28
WWW服务要随时运转正常,一个网站也需要一天24小时,一周七天为公众开放。所以稳定性是IIS和APACHE比较的重点。
IIS在实际使用中经常出现500错误,而且有的时候还会出现莫名其妙的假死现象。用户需要不定期的重新启动IIS服务才能保证网站的正常。
Apache在配置上比IIS要复杂,不过一经设置完毕就可以长期的工作了。大型网站都使用APACHE作为自己的WWW服务提供工具。APACHE的所有配置都保存在配置文件中,使用时完全按照配置文件中记录的信息执行。一般不会发生莫名其妙的假死情况。
小提示:在windows2003系统下使用IIS比用APACHE性能要好。
结论??APACHE稳定,IIS有时假死,前者占优。
扩展性:
扩展性是指WWW服务提供工具是否可以应用于多种场合,多种网络情况,多种操作系统。
IIS只能在微软公司的windows操作系统下使用,离开了windows他将一事无成。无法移植到其他类型的操作系统中。
APACHE是个多面手,他不仅仅应用于windows,对于unix,linux以及freebsd等多种操作系统来说他都可以胜任工作。而且不同操作系统的配置步骤基本类似,可移植性非常高。
结论??IIS只能在windows下运行,apache应用范围广。apache获胜。
安全性:
经常看到某某网站被黑客攻击或者某某网站被非法用户上传病毒的消息,对于为其他人提供服务的站点来说,安全性是最重要的。如果一个网站连自身安全都没有保证的话,谁愿意浏览和使用呢。
早期的IIS在安全性方面存在着很大的问题,如果使用默认设置的话黑客可以轻松趁虚而入。不过在IIS6中微软公司对安全方面进行了大幅改进。只要保证操作系统补丁更新及时,就可以将网站安全系数尽可能的提高。特别是IIS6与.net平台相互倚靠,使安全性几乎完美。
APACHE在安全方面一直做的不错,因为很多用户都是在linux下使用apache,所以操作系统的特点使得linux下的apache具有先天的保护伞,安全性自然没得说。
结论??IIS6以前的版本有安全隐患,IIS6和APACHE一样安全可靠。IIS6与APACHE打个平手。
开放性:
所谓开放性就是指是否开放了程序的源代码,众所周知IIS是WINDOWS系统的一部分,所以他的源代码是没有开放的。而apache则不同,最早他是为了类unix系统服务的,所以完全对外开放源代码。任何人都可以分析他的代码,发现其中的漏洞,并发布补丁来弥补该漏洞。
正因为APACHE的这种开放性,也使其安全性大大提高。
结论??IIS不开放代码,APACHE开放源代码。后者获得胜利。
难易性:
一个工具使用的难易程度直接影响其用户的多少,特别是网页发布工具。毕竟很多公司希望有自己的网站,但又不希望聘请高薪的网络管理员来维护。因此必然找上手相对容易的工具来搭建自己的站点。
IIS开起来比较简单,很容易就可能让IIS工作,对外发布网站。不过管理员很容易出现错误配置和误操作问题。不过总体说来IIS还是非常容易学的,但要学好他恐怕是件非常困难的事。
APACHE的使用比IIS要难,需要有一定计算机及网络基础的人才可以使用。他的配置也不是图形化的,需要我们通过编辑配置文件来实现。但是单从APACHE的设置上讲,只要我们严格按照帮助文件进行参数设置的话还是没有什么难度的。
结论??IIS容易安装但难精通,APACHE安装相对困难,要想精通也不是一件容易的事。IIS略占优势。
编程性:
为了让网页更加丰富多采,更加美观,互动性更好,高手为我们开发了多种组件与控件,那么这些控件在IIS或APACHE下是否正常运行呢?
APACHE下的Mod
Rewrite功能非常强大,而IIS中的ISAPI的Rewrite需要专门开发,一般初学者是不能够实现的。APACHE可以使用Subversion
WebDev以及.htaccess功能,还可以使用ForceType。另外IIS对FastCGI的支持也不是很好,所以一些CGI、PHP程序运行起来速度很慢,远不如apache。
结论??不同的环境下使用不同的组件,因为选择IIS还是APACHE由工作环境所决定,这点两者不分高下。
支持语言方面:
由于目前建立网站和论坛的语言多种多样,例如ASP,PHP,JSP等语言。那么IIS和APACHE对他们都支持吗?
IIS对ASP特别是.net运行很稳定,不过对于PHP和JSP就比较麻烦了。PHP需要经过反复配置才能在windows2003上支持。APACHE则能够很好的支持上面提到的几种语言,运行ASP,PHP,JSP都没有任何问题。
结论??APACHE支持语言比较多,IIS支持PHP和JSP时有点麻烦,需要经过一定的配置。APACHE获胜。
热心网友
时间:2022-05-01 08:23
用nginx最好了,并发要比Apache大很多,现在大部分大型网站都是用的nginx
当然用Apache也比用IIS好