设为首页 收藏本站
查看: 660|回复: 0

[经验分享] 服务器环境搭建系列 II

[复制链接]

尚未签到

发表于 2017-4-10 10:25:08 | 显示全部楼层 |阅读模式
  场景



需要在客户服务器上进行项目部署实施:



  • 客户提供的服务器只有Windows平台;
  • 客户可提供的二级域名有限,或无法提供二级域名;

  • 服务器所在网络监管很严格,一般只开放80服务端口(如需开放其他端口则需要较长审批流程),无法通过VPN或FTP方式进行后期系统维护;



客户服务器环境为:


  • Windows
    2003

  • IIS
    6.0(.Net Frameworks 2.0+)



项目部署环境要求:


  • PHP
    5.3.13
  • MySQL
  • 微博(记事狗)
  • 论坛(Discuz!)



解决方案


1.准备工作





    A. 通过Google搜索解决方案(得出参考文献如后面所列)。


  • 2种可选方案 - ISAPI和FastCGI;
  • 最终选择FastCGI - 由于文章中指出“ISAPI方式稳定性不佳,经常会导致整个Web Server
    Crash,所以微软特别针对IIS开发了FastCGI模组(IIS7已内建),据说效能及稳定性都有较大改善
    ”。

   
B. 在本地搭建模拟部署实施环境 - IIS上搭建项目部署所需环境准备工作如下:


  • 下载 PHP 包( 使用 php-5.3.13-Win32-VC9-x86.zip 线程安全版 ) -
    最好安装于非系统盘,与项目系统处于同一文件夹且需是英文目录路径(暂时不考虑IO问题)。
  • 下载 FastCGI for IIS 包并安装 - 默认安装于 %windir%\system32\inetsrv
    目录下,包含fcgiext.dll、fcgiext.ini、fcgiconfig.js等几个文件。





2.模拟环境搭建




    按照参考文章中所列,逐步修改相关配置。开始确实摸不着头脑,实际上这几个 ini
配置文件中对于其中配置条目都有相关说明,比如php.ini中对默认使用什么值、建议在Windows平台上打开或关闭配置项等,fcgiext.ini
中非常详细地举例说明了多种php处理方式。






2.1 PHP.ini
相关配置变更





1. 首先开启『扩展目录』配置项






然后修改 PHP.ini 配置文件中如下3个配置项(IIS 的辅助配置):


cgi.force_redirect = 0 cgi.fix_pathinfo=1 fastcgi.impersonate = 1





2. 同时,需要开启MySQL相关配置(在如下图所示配置节)



具体应该只开启 MySQL 对应动态链接库配置项









3. 需开启下面设置项,以避免 Discuz! 出现 PHP 不能进行 script 解释的问题。






4. 部署时需打开 log 相关选项(如下图所示的 ini 配置节)



如下图需打开『显示启动时错误信息』选项,一般按照 PHP.ini 文件配置相应说明进行对应修改即可。






 进入实际生产环境时需关闭 log 并开启文件 log






5. PHP 按照上述配置后可以先放置 phpinfo.php 检查 PHP运行环境是否
OK,如果提示有自动区域设置(Locale)问题,可以通过修改下图所示配置项完成:



记得删除 phpinfo.php




2.2 fcgiext.ini 配置文件变更




修改 fcgiext.ini 配置文件 - 指定fcigext.dll需要处理的IIS站点及相关配置






一般需指定
fcgiext.dll 对应处理的 IIS 站点编号(如下图所示),避免客户服务器环境多系统间影响。






并在[Types]
中进行设定,其中:

php:823433=PHP ;小写php为指定处理.php后缀的url请求,冒号后面数字标识对应IIS站点编号,等号右边的大写PHP表示对应的具体处理节[PHP]


[PHP]节中定义对应用于FAST
CGI方式的PHP环境,这个方括号[PHP]内的PHP可以自定义,只需与[Types]中描述对应即可。




此外,须将下面两个时间设长些,因Discuz!中对 UCenter
的处理时间相当长(登录大概要10多秒钟):

RequestTimeout=50
ActivityTimeout=90





2.3
IIS 相关配置变更


这一步骤主要参考《IIS6+PHP5 (FastCGI) 安裝攻略》文章相关内容

假设PHP安装路径在
C:\PHP5,但从客户服务器环境及系统更新维护角度讲不建议这样做。







C:\PHP5 目錄增加 IIS_WPG 群組的讀取及執行權限。
(沒加這個就會跑出
FastCGI Error)


5.
加入系統環境變數 (讓 extension 及 php.ini 能順利被找到)。
Path=C:\PHP5;
PHPRC=C:\PHP5

6.
開啟 IIS 管理員,如下圖設定。

7.
增加預設首頁 index.php

8.
檢查網頁服務延伸。
(正常的話應該會有這一項,若沒有請自行加入
C:\WINDOWS\system32\inetsrv\fcgiext.dll)







主要需注意:

A.
PHP.exe所在目录的可执行权限设定 - 需注意保障客户服务器安全,除非必要不要开启 IIS_WPG
系统默认用户组除了文件夹浏览、读取、执行权限外其他任何权限,特别不能为了简单直接开启系统的
Everyone 权限。


B.
尽量不使用fcgiext.js进行配置,而是直接修改fcgiext.ini配置文件 -
因为客户服务器有时会出于安全考虑关闭了本地cscript脚本的执行服务。







存在(遗留)问题


1. PHP 的文件 log 好像不能启动;


2. PHP 相关优化配置工作没有进行 - 数据库缓存设置、进程内存使用大小限制、上传文件限制等;




3. fcgiext 相关优化配置工作没有进行;




4. 未进行压力测试,需进一步对系统瓶颈进行考察 - 通过Google搜索或压力测试




建议


1. 最好将
Discuz! 和 微博(记事狗)分别放置于不同的应用程序池 -
如BBS和Weibo,以避免同一个w3wp.exe进程内执行的相互影响。

2.
最好将各站点除.php外地其他所有对应处理扩展都删除。

3. 将 IIS
相关优化整理出来。







参考



  • IIS6+PHP5 (FastCGI) 安裝攻略 -  http://blog.linym.net/archives/264
  • IIS6+PHP5(ISAPI)安装攻略 -  http://blog.linym.net/archives/240
  • PHP 配置相关链接






工具




  • PHP
    -  http://windows.php.net/download/

  • FastCGI for
    IIS - http://www.iis.net/download/FastCGI









运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-362785-1-1.html 上篇帖子: 利用 QQWry.Dat 实现 IP 地址高效检索(PHP) 下篇帖子: 搭建php环境 虚拟目录的两种配置方法vhost rewrite
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表