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

[经验分享] IIS+MSSQL+PHP的配置方法

[复制链接]

尚未签到

发表于 2018-12-10 09:33:46 | 显示全部楼层 |阅读模式
前段时间做完业务系统的二次开发,休息了一个星期后终于要开始新项目了。感受完ASP开发的紊乱后,决定在新项目使用支持OOP的PHP5。为了更好的与业务系统进行数据互换,数据库决定继续沿用MSSQL。鉴于LAMP的盛行,网上的大部分的开发环境配置工具都是APACHE+MYSQL+PHP策略。而我们要用的是IIS+MSSQL+PHP的策略,也就意味着要自己手动配置开发环境了。
具体方法:
1、首先在www.php.net下载php压缩包程序(不要下安装版),解压缩到C:\PHP(按需要自己决定路径)。

2、压缩包里有两个PHP.ini的文件,分别为PHP.ini-dist和PHP.ini-recommended,按照网上的说法
PHP.ini-dist  一般程序开发用
PHP.ini-recommended  线上服务用
具体有什么区别我也没深究,这里我们就选用官方“推荐”的PHP.ini-recommended,将其更名为PHP.ini后放到windows目录下。windows目录是php首先搜索路径。

3、修改php.ini的相关配置:(配置方法为网上所找,具体的参数说明还是参照文件说明,这里仅作参考,也欢迎高手指正。)
(1)查找:extension_dir = "./"改为:extension_dir = "C:\PHP\ext\"
(2)找到"safe_mode=off"改为"safe_mode=on"
象一些能执行系统命令的函数shell_exec()``被禁止,其它的一些执行函数如:exec(), system(), passthru(),popen()将被限制只能执行safe_mode_exec_dir指定目录下的程序。如果你实在是要执行一些命令或程序,找到以下:
safe_mode_exec_dir =
指定要执行的程序的路径,如:
safe_mode_exec_dir = C:\PHP\
然后把要用的程序拷到C:\PHP\目录下,这样,象上面的被限制的函数还能执行该目录里的程序
(3)找到"display_errors=on"改为"display_errors=off"
一般php在没有连接到数据库或者其他情况下会有提示错误,一般错误信息中会包含php脚本当前的路径信息或者查询的SQL语句等信息,这类信息提供给***后,是不安全的,所以一般服务器建议禁止错误提示
display_errors = Off  (本人是使用on,方便开发时候的调试)
log_errors = On
同时也要设置错误日志存放的目录 找到下面这行
;error_log = filename
去掉前面的;注释,把filename改为指定文件
error_log = D:/usr/php_error.log
(4)找到"disable_functions="改为:"disable_functions=phpinfo,system,exec,passthru,shell_exec,popen,is_dir".
我们觉得不希望执行包括system()等在内的能够执行命令的php函数,或者能够查看php信息的phpinfo()等函数,那么我们就可以禁止它们:
(5)查找:magic_quotes_gpc 如果是Off的话改成On 打开magic_quotes_gpc来防止SQL注入。
(6)查找:register_globals (register_globals = Off 修改成register_globals = On)
PHP中提交的变量,包括使用POST或者GET提交的变量,都将自动注册为全局变量,能够直接访问,这是对服务器非常不安全的,所以我们不能让它注册为全局变量,就把注册全局变量选项关闭:
(7)查找:open_basedir 后面增加 /www/ /*说明:www为网站程序所放文件*/
这个选项可以禁止指定目录之外的文件操作,还能有效地消除本地文件或者是远程文件被include()等函数的调用***。但本人试过在调用session_start()时报错,说无C:\windows\temp写入权限,和这个选项有关,因此本人建议开发者将这个选项注释掉。
(8)expose_php设为off ,这样php不会在http文件头中泄露信息。
我们为了防止***获取服务器中php版本的信息,可以关闭该信息斜路在http头中
(9)设置“allow_url_fopen”“off” 这个选项可以禁止远程文件功能
(10)查找字符串“; windows Extensions”,将下列各行行首的分号(;)去掉,根据你网站的需要你可以打开更多
;extension=php_dbase.dll  可选
;extension=php_mcrypt.dll
;extension=php_gd2.dll      此项用以支持GD库的,一般需要,必选
;extension=php_ldap.dll   可选
;extension=php_mbstring.dll 此项不选则使用PHPMyAdmin会提示错误,必选
;extension=php_mssql.dll   此项用以支持MSSQL数据库,可选
;extension=php_mysql.dll   此项用以支持MySQL数据库,可选
(11)php目录和ext目录下的相关dll复制到C:\windows\system32,(包括:php_mbstring.dllphp_mcrypt.dllphp_gd2.dllphp_dbase.dllphp_mysqli.dllphp_mysql.dlllibmysql.dll等)如果你不太要哪些明白,最简单的办法就是全部复制。
(12)修改 short_open_tag = Off short_open_tag = On PHP开启短标记支持

4、配置IIS
IIS的网站配置方法就不再详细说明,这里只介绍PHP相关的部分。
(1)打开IIS,点击网站“属性”--->“主目录”,看到有个“配置”的按钮,点击,如图


在“应用程序扩展”添加C:\PHP\php5isapi.dll,扩展名.php,限制为GET,POST,如图



然后看回主程序窗口的“web服务扩展”,添加一个新的web服务扩展,扩展名为PHP,添加文件C:\PHP\php5isapi.dll,如图


这样IIS的配置工作就完成了。

5、在注册表注入
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ MSSQLServer\Client\ConnectTo]
新建字符串:"DSQUERY"="DBNETLIB"


完成以上5个步骤后,IIS+PHP+MSSQL的配置工作算完成了,大家可以运行phpinfo()和连接数据库测试下。





运维网声明 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-649676-1-1.html 上篇帖子: MCSE 2003学习笔记 九 通过IIS来发布一个WEB和FTP以及MAIL 下篇帖子: iis 404错误从定向完美方案
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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