IIS下PHP运行环境搭建与网页服务器故障排查方法

一、对于php页面完全无法访问的情况

1、确认是php的问题还是iis等服务器的问题

判断方法,在目录下放一个静态文件,通过浏览器判断这个静态文件可否访问。若可以访问,即为php问题。

如果是IIS的问题,常见的有两种情况,一个判断的利器是telnet。

linux的telnet其实更加好用,因为默认是打开回显的。而windows,则需要用 set localecho,否则看不到输入的文字

1.1 防火墙禁止80端口

进入telnet后,输入指令,open 域名 80

如:open www.baidu.com 80

如果能连接上,会出现一个黑色屏幕,等待输入

提示所谓的无法打开到主机的连接,在端口80失败,则表示这个端口不可达。可能的原因有:DNS服务器没有这个域名(用nslookup查),远程主机没有开启或禁止连接(用ping等命令查),以及这里说的,防火墙没有打开80端口。

1.2 服务器上目标目录的权限设置不正确

这种情况下,一般会提示要求登录的对话框,不至于显示不出来页面

1.3 其他问题

假设要访问的主机是www.baidu.com ,那么,用如下命令查:

> telnet www.baidu.com 80

会出来一个黑屏幕,这个时候速度要快,因为服务器可能不会等你输入,他期待的是一个迅速的输入。(可以先在记事本里头打好,然后粘贴进去),直接telnet可能没有localecho,可能需要盲打

指令例子,括号内的字符不要输入:

GET / HTTP/1.1 (回车)

Host: www.baidu.com (回车)

(回车)

注意,在host行后有两个回车。

这个是用telnet模拟浏览器对目标主机的请求。如图:

注意,回复头的内容拥有非常丰富的信息,如200表示请求成功。500表示内部服务器错误等,具体信息可以看看相关文档。

1.4 一点点背景知识

以上的步骤涉及到浏览器发起请求的过程,介绍下或许会有帮助:

1、 你在浏览器的地址栏输入域名,并按下回车。

2、浏览器请求DNS服务器将域名转换为IP地址——注意,这一步还和你的网页服务器(IIS或者APACHE)没有任何关系。

3、浏览器向你的网页服务器请求连接——相当于我们telnet 80端口。当然, 如果你指定了端口号,他就会连接你指定的端口。但是默认端口是80,这个是rfc规定的http的端口,https端口是443,这个过程更加复杂,有密钥交换和加解密的过程,因此没办法用这种方法做trouble shooting,建议在这个阶段先搞定http的再说。

4、建立了一条连接,服务器等待浏览器发请求头,浏览器发请求头。请求头以一个空行结束。

5、请求头格式如下:

方法【空格】请求路径(不包含域名,如/a.html或者/)【空格】协议

HOST:请求的域名

例如:

GET /index.php HTTP/1.1 (回车)

Host: www.baidu.com (回车)

(回车)

请求头可能有其他信息,例如,提交的信息,不过对于我们而言,这个就够了。

方法,常用的就是get和post,一般请求网页用get,提交信息用post。

6、服务器处理并返回数据,包括头和网页体。

HTTP/1.1 200 OK

这行开头,包括了协议,以及错误代码(或成功代码),错误代码解释。

对于浏览器而言,可能会有不少信息有用,但对于我们而言,知道代码和错误代码解释就很有必要了。

信息体里头,可能会有很多别的东西,例如对这个信息的详细解释等。php的错误报告开启的时候,也会在这里头报告相关问题。

2、确认php扩展加载。

2.1isapi扩展

对于isapi扩展,在主目录的配置下:

找到php:

若没有,添加之。

2.2对于fastcgi方法

另一种加载方法是fastcgi,这种方法需要判断是fastcgi引擎问题还是php问题,判断方法是跳过fastcgi,直接用cgi方式加载php.exe。

二、php页面部分能访问的情况

简单的判断是不是这种情况的方法是,新建一个php文件,输入如下内容:

<?php phpinfo(); ?>

注意大小写和空格必须正确。正常情况下回输出一个phpinfo页面,如下图所示:

该页面非常有用。

1、判断php文件加载正确性

确认Loaded Configuration File里头加载的是不是你想要他加载的php.ini文件。有可能修改该文件错误。

2、判断mysql等扩展是否加载

很多时候可能会有这种情况,就是页面白屏,但是明显的,页面加载了一半。例如,tittle部分已经显示出来了,包括supersite、discuz等站点很可能出现这种情况。

判断方法很简单,页面上搜索mysql,要是没有如下内容就是没有加载

2.1、判断为什么没有加载

主要的两种可能性:extension_dir没有配置对和没有取消注释

2.2、第一种可能性

extension_dir没有配置对,注意要配置到ext目录下,例如:

extension_dir="E:\PHP\EXT"

记得确认该目录是不是存在

2.3、第二种可能性

extension没有取消注释。看有没有这一句以及这一句前头有没有#,若有,去掉。

[PHP_MYSQL]

extension=php_mysql.dll

2.4、其他

网上的说法要拷贝两个和mysql有关的文件到windows下,不过实际配置过程中似乎与这个无关,但以上都没有解决的情况下,可以试试。

3、trouble shooting方法

开启display_errors和display_startup_errors,在页面上会有一些错误显示出来,例如,mysql_connect未定义等。通过这些错误提示,能针对性的找到错误的来源。

(0)

相关推荐

  • IIS6、IIS7、IIS7.5取消服务器主机空间目录脚本的执行权限的方法

    网站安全中,对目录的执行权限是非常敏感的,一般来说,可以写入的目录是不能够拥有脚本的执行权限的,像DedeCMS系统,可写入的有两个目录 data.uploads,data目录主要是基本配置文件和缓存数据,uploads则是附件上传保存的目录,本篇将针对不同服务器环境来介绍如何取消 这两个目录的执行权限,当然我们也建议用户其他一些生成纯静态html的目录,拥有可写入权限的也统统去除执行权限,这样系统会更为安全. Windows下的IISIIS6.0取消服务器主机空间目录脚本的执行权限 打开IIS

  • IIS Web服务器支持高并发设置方法详解

    适用的IIS版本:IIS 7.0, IIS 7.5, IIS 8.0 适用的Windows版本:Windows Server 2008, Windows Server 2008 R2, Windows Server 2012 1.应用程序池(Application Pool)的设置: General->Queue Length设置为65535(队列长度所支持的最大值)Process Model->Idle Time-out设置为0(不让应用程序池因为没有请求而回收)Recycling->

  • windows 2003服务器安装 IIS6.0和IIS自带FTP服务器图文教程

    写这篇文章主要是帮助刚刚接触服务器或云主机的小白,绝大多数新手刚接触windows 2003服务器都是安装的IIS服务器,下面我们就2003服务器来安装IIS以及IIS自带的FTP服务器做个详细完整的图文教程. 以下步骤请远程登录服务器后再操作 1.下载IIS6.0安装包,点击下载IIS6.0安装包,比如下载到D盘 2.将这个压缩包解压 3.依次点击远程桌面左下角的 开始--控制面板--添加或删除程序 在点击 添加/删除windows组件(A) 4.在windows组件里面找到应用程序服务器,并

  • 解决IIS“服务器应用程序不可用”的方法汇总

    服务器应用程序不可用您试图在此 Web 服务器上访问的 Web 应用程序当前不可用.请点击 Web 浏览器中的"刷新"按钮重试您的请求. 管理员注意事项: 详述此特定请求失败原因的错误消息可在 Web 服务器的系统事件日志中找到.请检查此日志项以查明导致该错误发生的原因.   引起这个的原因大概是现安装了.Net Framework后装的IIS导致.Net没有在IIS里注册.   在网上找了很久都是说从.net命令行工具里运行aspnet_regIIS /i就可以了(或者在类似下面的目

  • win2008 r2 web服务器IIS的安装与基本设置

    Web服务,又称为WWW服务,是Internet上使用最为广泛的服务. Web服务采用"浏览器/服务器"模式,在客户端使用浏览器访问存放在服务器上Web网页,客户端与服务器之间采用HTTP协议传输数据. 客户端所使用的浏览器种类众多,目前最为常用的是Windows系统中自带的IE浏览器(Internet Explorer),另外像火狐(FireFox).傲游(Maxthon).360浏览器等使用的也比较多. 服务器端所使用的软件则主要是Windows平台上的IIS以及主要应用在Linu

  • nginx、Apache、IIS服务器解决 413 Request Entity Too Large问题方法汇总

    一.nginx服务器 nginx出现这个问题的原因是请求实体太长了.一般出现种情况是Post请求时Body内容Post的数据太大了,如上传大文件过大.POST数据比较多. 处理方法 在nginx.conf增加 client_max_body_size的相关设置, 这个值默认是1m,可以增加到8m以增加提高文件大小限制:当然可以设置的更大点. 复制代码 代码如下: # 在http,server或者location段修改下面的配置:# set client body size to 8M #clie

  • 阿里云云服务器Windows 2008下IIS添加网站绑定域名图文教程

    云服务器默认使用Windws 2008 中自带的IIS服务器. 1. 打开Internet 服务(IIS)管理器. 1) 启动左下角任务栏中的"服务器管理器",选择"角色"->"Web服务器IIS"->"Internet 服务(IIS)管理器"来打开IIS管理界面: 2) 选择"网站",点击右侧"添加网站": 2. 填写网站信息.在添加网站窗口中,输入您的"网站名称

  • 设置好的iis服务器怎么打开网页(图文详解)

    让自己电脑上的网页在局域网中可以访问到,就需要我们使用IIS服务器,将网页添加到服务器上的网站,那么设置好IIS服务器之后怎样在浏览器中进行访问呢?下面我们小编告诉你! 设置好iis服务器怎么打开网页 首先我们打开IIS服务器,将服务器的下拉菜单打开,然后打开网站的下拉菜单,找到我们新建的网站. 然后我们在新建的网站位置右击鼠标,选择"切换到功能视图"选项. 这样我们就进入到了IIS服务器的功能视图页面中,可以看到左侧是我们网站所在文件夹的内容,右侧是可以使用的功能,我们选择"

  • windows IIS6服务器全站301永久重定向设置方法

    如图所示: 具体操作方法: 进入绑定域名站点的IIS设置,选择站点属性--主目录--重定向到URL写入要跳转到的域名,后台加上$S$Q,如 复制代码 代码如下: http://www.jb51.net$S$Q 然后必须勾选"上面输入的准确URL"和"资源的永久重定向"两项,否则URL会出现问题.设置好后,访问http://tool.chinaz.com/pagestatus/看下返回状态是否是301,是则设置成功. 如此设置,就可以实现windows服务器全站301

  • IIS下PHP运行环境搭建与网页服务器故障排查方法

    一.对于php页面完全无法访问的情况 1.确认是php的问题还是iis等服务器的问题 判断方法,在目录下放一个静态文件,通过浏览器判断这个静态文件可否访问.若可以访问,即为php问题. 如果是IIS的问题,常见的有两种情况,一个判断的利器是telnet. linux的telnet其实更加好用,因为默认是打开回显的.而windows,则需要用 set localecho,否则看不到输入的文字 1.1 防火墙禁止80端口 进入telnet后,输入指令,open 域名 80 如:open www.ba

  • windows下的WAMP环境搭建图文教程(推荐)

    本篇文章主要是讲一下我自己安装wamp环境的一些步骤和见解,前方多图预警,慎入!!!!! PHP运行环境 : Linux下的三种安装方式:源码包安装.rpm包安装.集成环境安装(lnmp) windows安装的两种方式:单个下载安装.集成环境安装(AppServ,phpstudy,wamp) 在Windows系统上安装PHP开发环境: 所需软件分别独立安装: 安装前准备 安装Apache 安装MySQL 安装PHP 安装phpMyA 软件名称 下载地址 Apache下载 http://httpd

  • Java运行环境搭建的图文教程

    1.Java运行环境搭建,对于初学者来说,主要下载安装jdk即可,windows操作系统再配合记事本,即可进行java程序开发.后续的学习以及工作中需要使用IDE工具进行开发,常用IDE工具是eclipse.myeclipse等. 2.jdk是啥?Java Development Kit,Java开发工具包.详情见百度百科.jdk9已经发布了,但是工作中常用的是jdk1.6版本.学习的话1.6,1.7都可以.没必要去下最新的版本. 3.jdk已经以后其他用到的工具建议都去官网下载.网上各种教程可

  • CentOS 7.x下的LEMP环境搭建详细教程

    最近由于项目需求,将服务器从CentOS6升级到CentOS7,对应的PHP版本也升级到PHP5.6.我们熟悉的有LEMP环境一键安装包,但是本文我们将单独安装各个组件模块,并搭建一个完整的PHP运行平台. 我们常说的LNMP环境是指Linux/nginx/MySQL/PHP组合,而LEMP是什么呢?其实Nginx的发音是Engine-X = E,LEMP包是由Linux.nginx.MariaDB/MySQL和PHP组成的,那么看来LEMP和LNMP是一样的,而现在业内习惯性的称作LEMP.M

  • Linux下Java开发环境搭建以及第一个HelloWorld

    想在Linux进行JAVA开发吗?环境如何搭建,第一个HelloWorld如何实现,下面马上奉献: 1环境搭建     1.1 Java JDK 的安装     Java JDK 是java编译和运行的必要环境,所以首先必须安装这一软件包,方法如下:     1)下载JDK压缩包,注意看好版本是x86还是x64,windows的还是           linux,要搞清楚,我下的是jdk-7u13-linux-i586.tar.gz:     2)解压压缩包,并将解压后的目录放到/usr/li

  • 详解Hadoop 运行环境搭建过程

    一,集群搭建步骤 1.先在一台虚拟机配置jdk,hadoop 2.克隆 3.修改网络等相关配置 当我们使用虚拟机时,可能自然而然的会想上面的步骤一样先搭建一台虚拟机,做好相关配置,然后进行克隆,继而修改一些网络配置来搭建集群,但是在生产过程中是买好的服务器,不存在克隆这一说,所以在此采用的步骤是: 1.建立一台虚拟机(仅带jdk安装包) 2.克隆 3.修改网络等相关配置 4.配置第一个hadoop节点,编写集群分发脚本使其他虚拟机完成配置 二,具体搭建过程 这里使用三台虚拟机来完成集群搭建,ha

  • Android Studio 下 Flutter 开发环境搭建,Flutter,Dart 插件安装,Flutter SDK 安装,环境变量配置,开发环境检查

    I . Flutter 学习资料 Flutter 学习资料 : ① 官方文档 : https://flutter.dev/docs ② Flutter Android 开发者文档 : https://flutter.dev/docs/get-started/flutter-for/android-devs ② Flutter 插件库 : https://pub.dev/ II . Flutter 开发环境搭建 Flutter 开发环境搭建 : ① Android Studio : https:/

  • MacOS下本地golang环境搭建详细教程

    安装golang 使用homebrew安装golang.homebrew是MacOS 平台下的软件包管理工具,拥有安装.卸载.更新.查看.搜索等功能.开发者不需要关心依赖和文件路径.如果系统没有安装homebrew,终端内执行以下命令安装homebrew. /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" 安装完homebrew后执行以下命令

  • Windows下Goland的环境搭建过程详解

    1.安装包下载 进入Go官方下载界面 下载并安装,安装时注意最好不要将其安装在C盘,我这里将它安装在D盘: 2.环境变量配置 安装包会自动添加环境变量,但是默认的Go工作空间C盘,而我们一般不在C盘放自己的文件,这里以我的工作空间为例我的Go项目文件放在D盘的GoFiles文件夹中,所以这里演示重新配置: 主要是配置两个环境变量:GOROOT和GOPATH: GOROOT指GO的安装目录 GOPATH是作为编译后二进制的存放目的地和import包时的搜索路径,不要设置为GO的安装目录,我们一般用

  • Windows下Flutter+Idea环境搭建及配置

    最近正式入坑Flutter,首先从环境搭建开始,看了网上好多关于Windows环境搭建的资料,基本都是按官方文档写的,看完的感受是,还不如直接去看官方文档. 英文文档传送门:Get Started: Install on Windows 中文文档传送门:Get Started: Install on Windows 本文主要总结我实际搭建的过程,最后发现不一定按网上那些博客或者官方文档写的来也可以搭建成功. 总的来说需要的也就4样东西,找齐了配置一下就OK: (1)Flutter SDK (建议

随机推荐