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

[经验分享] 在IIS搭建基于CodeIgniter的PHP网站

[复制链接]

尚未签到

发表于 2015-11-15 02:52:28 | 显示全部楼层 |阅读模式
配置IIS下PHP环境:
下面步骤以php安装在D:/Program Files/php目录为例
1
)复制php安装目录下php.ini到C:/WINDOWS/;
2)再复制php5ts.dll和libmysql.dll到WINDOWS/system32/中;

注:这两步很重要,我一开始以为这属于安装php的步骤,而我的机器已装有php,所以我就直接跳过了这两步操作,结果一运行看到的页面是一片空白。
3)添加一个php后缀:

打开IIS,点击"Web服务扩展"-->"添加一个新的Web服务扩展",在"扩展名"中输入"php",点击"添加",指向"D:/Program Files/php/php5isapi.dll" ,把"设置扩展状态为运行"勾上,点击"确定"。
4)添加ISAPI筛选器:

右键要配置的网站-->"属性"-->选择"ISAPI筛选器"-->"添加", "筛选器名称"中输入"php" ,可执行文件为"D:/Program Files/php/php5isapi.dll",点击"确定"。
5)添加扩展名映射:

选择"主目录"-->点击"配置"-->"添加", 可执行文件路径为"D:/Program Files/php/php5isapi.dll",扩展名为".php"-->"确定"。
6)添加默认内容页:

再选择"文档"-->点击"添加",输入"index.php"-->"确定",并且上移到最顶,点击"应用"-->"确定"。

重启IIS服务。

相关问题解决方案:
1
在IIS下配置PHP高版本5.28/5.2.9可能出现错误信息:"the specified module could not be found":

这是因为IIS应用程序作php映射时发现在可执行文件路径两边有双引号,应该将"D:/Program Files/php/php5isapi.dll"手动改成D:/Progra~1/php/php5isapi.dll(将Windows路径换为DOS路径),重启IIS,问题解决!
2)
页面出现"……failed to open stream……Failed opening required……"错误信息:

从网上了解到这个问题是目录权限问题导致的,我的网站根目录在E:/shop下。于是我在shop目录下建立一个www目录,再将www目录作为网站根目录。分别给shop和www目录分配Everyone读权限。重启IIS服务,刷新页面,问题解决!
问题关键,网站根目录的上级目录的权限要和网站根目录的权限一样
3)
页面出现"Internal Server Error"错误信息:

关于这个问题,网上有人提出:"检查PHP网站目录下是否有.htaccess文件存在,此文件会干扰程序的正常运行,如果有此文件建议删除或改名"。这个做法是不可取的,因为.htaccess文件可以做大量范围的事情。包括:设置默认首页文件、自定义错误页面、重定向页面、实现PR劫持、屏蔽特定的用户IP地址、停止目录表、文件夹密码保护、变更文件扩展名、防盗链等等。

下面是我的网站下.htaccess文件的内容:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f #不是文件或不存在就进行RewriteRule
RewriteCond %{REQUEST_FILENAME} !-d
#不是目录或不存在
RewriteCond $1 !^(index/.php|images|robots/.txt|css|js) [nocase] #nocase(
忽略大小写)
RewriteRule ^(.*)$ index.php/$1 [L]
注:我的index.php的同级目录下还有css和js文件夹,所以加到了过滤条件中。

在.htaccess文件中定义了url重写规则,因此想到可能是未开启mod_rewrite模块造成的。摸索出以下两种解决方案:

a)开启Apache的mod_rewrite模块;

打开apache的配置文件httpd.conf :
找到#LoadModule rewrite_module modules/mod_rewrite.so,去掉#号。
找到
<Directory "Apache的文档根目录">

Options Indexes FollowSymLinks
AllowOverride None
Order Allow,Deny
Allow from all

</Directory>
AllowOverride None改为AllowOverride All
注:当AllowOverrid设置为None时,.htaccess 文件将被完全忽略,所以要改为All。

b)在.htaccess 文件重写规则处加上IfModule指令(它是根据指定的模块是否启用而决定是否生效的指令),如下:

<IfModule mod_rewrite.c>

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond $1 !^(index/.php|images|robots/.txt|css|js) [nocase]
RewriteRule ^(.*)$ index.php/$1 [L]

</IfModule>

如果你确定不会用到Apacheurl重写功能,也可以注释或者直接删掉这几行
最后别忘了重启Apache!

4将CodeIgniter的URL中index.php隐藏
     以Apache作为Web服务器,需开启mod_rewrite模块的支持;以IIS作为Web服务器,则要额外安装ISAPI_Rewrite扩展。
     Apache下解决方法

1)开启Apache的mod_rewrite模块(同上)
2)编写.htaccess文件,放在index.php同级目录下

RewriteEngine On
RewriteCond $1 !^(index/.php|images|robots/.txt) [nocase]
RewriteRule ^(.*)$ index.php/$1 [L]

3) 修改application/config中的config.php文件:
改$config['index_page']="index.php"为$config['index_page']="";
IIS下解决方法
1)安装ISAPI_Rewrite 3.1,下载Lite版(精简版)

Lite版的缺点是不支持分站,一个IIS只能运行一个Global级的httpd.conf
下载地址:http://www.helicontech.com/download/isapi_rewrite/ISAPI_Rewrite3_0060_Lite.msi

2)配置URL重写规则(对应Apache下.htaccess文件中的重写规则)

httpd.conf文件内容:
# Helicon ISAPI_Rewrite configuration file
# Version 3.1.0.60
#括号中I表示忽略大小写
RewriteRule (index/.php|images|robots/.txt)/(.*) $0 [I,L]
RewriteRule ^(.*)$ index.php/$1 [I,L]

             版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 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-139313-1-1.html 上篇帖子: 解决wordpress在IIS下伪静态后子目录无法访问的问题 下篇帖子: Window2003 64位IIS 连接ACCESS 报错“Microsoft.Jet.OLEDB.4.0”
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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