


windows-server - php+iis6.0+mysql+windows server 2003 总是导致应用地址池奔溃停止运行?
先描述一下大前提:
服务器使用的是 windows server 2003 + iis6 + mysql + php[isapi模式] 进行配置的,并且站点上有13个虚拟站点,其中 4个站点为纯PHP脚本站点,其他是asp或者 asp.net 站点,所以服务器并不是那么纯净。
现在问题是,
在这4个PHP站点中,一个是dzx!2.5搭建的社区系统(A),一个是使用jishigou搭建的微博平台(B),一个是使用ucenter搭建的用户中心(C),最后一个位自己写的程序(D)。
以上A、B、C、D创建站点时,均自有程序应用地址池分别对应为:A1,B1,C1,D1;
在流量和IP均为发生大变动的情况下,站点A的A1应用地址池总是无故假死,但其他站点B、C、D都可正常访问,需要手动回收和释放当前A1,甚至都无法正常启动World Wide Web Publishing Service服务。登录服务器上看,总会弹出这个提示(如下图):
以上错误信息均在php + iis + isapi模式下运行;
倘若,更换php的运行模式为fastcgi,则不会出现以上情况,但是fastcgi的线程数总会提示满,于是需要开启更大的线程以此解决。
最后,站点A使用的dzx!2.5为原生系统,前端并未修改,修改的为后台。
回复内容:
先描述一下大前提:
服务器使用的是 windows server 2003 + iis6 + mysql + php[isapi模式] 进行配置的,并且站点上有13个虚拟站点,其中 4个站点为纯PHP脚本站点,其他是asp或者 asp.net 站点,所以服务器并不是那么纯净。
现在问题是,
在这4个PHP站点中,一个是dzx!2.5搭建的社区系统(A),一个是使用jishigou搭建的微博平台(B),一个是使用ucenter搭建的用户中心(C),最后一个位自己写的程序(D)。
以上A、B、C、D创建站点时,均自有程序应用地址池分别对应为:A1,B1,C1,D1;
在流量和IP均为发生大变动的情况下,站点A的A1应用地址池总是无故假死,但其他站点B、C、D都可正常访问,需要手动回收和释放当前A1,甚至都无法正常启动World Wide Web Publishing Service服务。登录服务器上看,总会弹出这个提示(如下图):
以上错误信息均在php + iis + isapi模式下运行;
倘若,更换php的运行模式为fastcgi,则不会出现以上情况,但是fastcgi的线程数总会提示满,于是需要开启更大的线程以此解决。
最后,站点A使用的dzx!2.5为原生系统,前端并未修改,修改的为后台。
不建议用isapi方式,建议使用 http://www.iis.net/download/FastCGI
C:\WINDOWS\system32\inetsrv\fcgiext.ini内容仅供参考
<code>[Types] php=PHP [PHP] ExePath=D:\php\php-cgi.exe InstanceMaxRequests=10000 EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000 </code>
php.ini中几个关键点仅供参考
<code>output_buffering = On cgi.force_redirect = 0 cgi.fix_pathinfo = 1 fastcgi.impersonate = 1 </code>
php.ini中的安全考虑
<code>disable_functions = system,passthru,shell_exec,exec,popen,proc_open enable_dl = Off </code>
php.ini中尽量设置独立的临时目录等
<code>upload_tmp_dir = "d:/tmp/uploadtemp/" session.save_path = "d:/tmp/sessiondata/" date.timezone = "Etc/GMT-8" ; GMT+8 mbstring.language = Neutral ; Set default language to Neutral(UTF-8) (default) mbstring.internal_encoding = UTF-8 ; Set internal encoding to UTF-8 </code>
建议在windows平台使用线程安全的php,建议所有php站点使用同一个程序应用池。
如果有可能,别在windows平台跑php。

TomakePHPapplicationsfaster,followthesesteps:1)UseOpcodeCachinglikeOPcachetostoreprecompiledscriptbytecode.2)MinimizeDatabaseQueriesbyusingquerycachingandefficientindexing.3)LeveragePHP7 Featuresforbettercodeefficiency.4)ImplementCachingStrategiessuc

ToimprovePHPapplicationspeed,followthesesteps:1)EnableopcodecachingwithAPCutoreducescriptexecutiontime.2)ImplementdatabasequerycachingusingPDOtominimizedatabasehits.3)UseHTTP/2tomultiplexrequestsandreduceconnectionoverhead.4)Limitsessionusagebyclosin

Dependency injection (DI) significantly improves the testability of PHP code by explicitly transitive dependencies. 1) DI decoupling classes and specific implementations make testing and maintenance more flexible. 2) Among the three types, the constructor injects explicit expression dependencies to keep the state consistent. 3) Use DI containers to manage complex dependencies to improve code quality and development efficiency.

DatabasequeryoptimizationinPHPinvolvesseveralstrategiestoenhanceperformance.1)Selectonlynecessarycolumnstoreducedatatransfer.2)Useindexingtospeedupdataretrieval.3)Implementquerycachingtostoreresultsoffrequentqueries.4)Utilizepreparedstatementsforeffi

PHPisusedforsendingemailsduetoitsbuilt-inmail()functionandsupportivelibrarieslikePHPMailerandSwiftMailer.1)Usethemail()functionforbasicemails,butithaslimitations.2)EmployPHPMailerforadvancedfeatureslikeHTMLemailsandattachments.3)Improvedeliverability

PHP performance bottlenecks can be solved through the following steps: 1) Use Xdebug or Blackfire for performance analysis to find out the problem; 2) Optimize database queries and use caches, such as APCu; 3) Use efficient functions such as array_filter to optimize array operations; 4) Configure OPcache for bytecode cache; 5) Optimize the front-end, such as reducing HTTP requests and optimizing pictures; 6) Continuously monitor and optimize performance. Through these methods, the performance of PHP applications can be significantly improved.

DependencyInjection(DI)inPHPisadesignpatternthatmanagesandreducesclassdependencies,enhancingcodemodularity,testability,andmaintainability.Itallowspassingdependencieslikedatabaseconnectionstoclassesasparameters,facilitatingeasiertestingandscalability.

CachingimprovesPHPperformancebystoringresultsofcomputationsorqueriesforquickretrieval,reducingserverloadandenhancingresponsetimes.Effectivestrategiesinclude:1)Opcodecaching,whichstorescompiledPHPscriptsinmemorytoskipcompilation;2)DatacachingusingMemc


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SublimeText3 Chinese version
Chinese version, very easy to use

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.
