当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪win2003 IIS6,能访问html页 但是不能访问aspx页解决办法汇总       全是网上资料,放一起,方便查找。 描述下目前遇到的问题: win2003 sp2 系统。装上IIS6后,html正常访问,但是aspx页就是访问不了,日志文件也不做任何问题的记录。  万般无奈,能找到的.........
    ▪nginx虚拟主机防webshell完美版       我们先来看下nginx.conf   server  {    listen       80;    server_name  www.a.com;    index index.html index.htm index.php;    root  /data/htdocs/www.a.com/;     #limit_conn   crawler  20;        location ~ .*\..........
    ▪nginx设置上传目录无执行权限的方法       nginx上也很简单,我们使用location。。如下: 代码如下: location ~ ^/upload/.*\.(php|php5)$ { deny all; } 其中upload换为你要设置的目录名字 这条规则的含义是匹配请求连接中开头是/upload/,中间匹配.........

[1]win2003 IIS6,能访问html页 但是不能访问aspx页解决办法汇总
    来源: 互联网  发布时间: 2013-12-24

全是网上资料,放一起,方便查找。

描述下目前遇到的问题:

win2003 sp2 系统。装上IIS6后,html正常访问,但是aspx页就是访问不了,日志文件也不做任何问题的记录。 

万般无奈,能找到的办法都上了。目前只剩最后2个解决办法:

1.下载一个SP2系统iso,提取里面的 i386再装一次IIS,如果不行只能采取第二种方法了

2.换个盘重装系统。然后继续。。。

 --------------------------------------

已经解决。采用的上面第一次方法,下载wIN2003 SP2系统用这个i386重装IIS6,然后运行aspnet_regiis -i -enable ,成功!(17:43:26)
以下为网络收集的部分解决方法:
1.WEB 服务扩展里的ASP和ASP.NET是否开启

2.运行下 aspnet_regiis -i

3.重装IIS

4.重装系统

5.权限问题:

设置网站根目录权限,

设置IIS DCOM权限,

设置网站属性中的 主目录选项卡中访问权限,目录安全性中身份验证方法。

权限的用户,一般是2个:IUSR_机器名 和 NETWORK SERVICE (xp中为aspnet)

6.由于我的系统是windows2003+sp2,所以我猜想可能是由于sp2造成IIS解释asp.net 2.0时出错(因为,Html网页能打开),于是,我就在一台没有打sp2补丁的windows2003系统上进行同样的IIS设置与网站配置,结果发现aspx网页能够正常运行。这让我回想起当时在windows2003+sp2的平台下安装IIS时出现找不到iisadmin.mfl文件,后来是通过利用c:\windows\servicePackfiles\i386中的iisadmin.mfl将IIS安装完成了。是不是就是由于这个原因引起的呢?因为对于windows2003+sp2的平台利用原有的windows2003是无法安装好IIS的(找不到iiaadmin.mfl文件),于是我将windows2003系统的sp2补丁解压生成一个i386目录,然后再安装IIS,当安装IIS出现找不到iisadmin.mfl文件时,利用sp2解压后的i386目录中的iisadmin.mfl文件安装完成IIS,之后再重新利用aspnet_regiis.exe -i注册,在web服务扩展中允许asp.net 2.0,并按相同的方式进行网站的配置,结果aspx可以正常浏览了。至此,从而判断开始是由于iisadmin.mfl文件的引用不正确才造成windows2003+sp2平台的IIS中不能正常浏览aspx网页。


    
[2]nginx虚拟主机防webshell完美版
    来源: 互联网  发布时间: 2013-12-24

我们先来看下nginx.conf

  server
  {
    listen       80;
    server_name  www.a.com;
    index index.html index.htm index.php;
    root  /data/htdocs/www.a.com/;

    #limit_conn   crawler  20;   

    location ~ .*\.(php|php5)?$
    {     
      #fastcgi_pass  unix:/tmp/php-cgi.sock;
      fastcgi_pass  127.0.0.1:9000;
      fastcgi_index index.php;
      include fcgi.conf;
    }

}

  server
  {
    listen       80;
    server_name  www.b.com;
    index index.html index.htm index.php;
    root  /data/htdocs/www.b.com/;

    #limit_conn   crawler  20;   

    location ~ .*\.(php|php5)?$
    {     
      #fastcgi_pass  unix:/tmp/php-cgi.sock;
      fastcgi_pass  127.0.0.1:9000;
      fastcgi_index index.php;
      include fcgi.conf;
    }

}

nginx在80端口接受到访问请求后,会把请求转发给9000端口的php-cgi进行处理

而如果修改php.ini中open_basedir= ../../../../../ ,针对两个不同的网站,www.a.com , www.b.com都会把请求发送给9000处理,而如果先访问www.a.com那么../../../../../就会变成A网站的根目录地址,然后这时候如果你访问www.b.com,那么open_basedir仍然是A网站的根目录,但是对于B来说,又是不允许访问的,所以就造成了,第二个站点打开以后会出现no input files,那么有什么解决办法呢?

我们可以把不同的虚拟主机发送到不同的php-cgi端口进行处理,当然响应的php-fpm配置文件中的open_basedir也不同。。我们来看看怎么配置。。

首先,nginx.conf配置如下

 server
  {
    listen       80;
    server_name  www.a.com;
    index index.html index.htm index.php;
    root  /data/htdocs/www.a.com/;

    #limit_conn   crawler  20;   

    location ~ .*\.(php|php5)?$
    {     
      #fastcgi_pass  unix:/tmp/php-cgi.sock;
      fastcgi_pass  127.0.0.1:9000;
      fastcgi_index index.php;
      include fcgi.conf;
    }

}

  server
  {
    listen       80;
    server_name  www.b.com;
    index index.html index.htm index.php;
    root  /data/htdocs/www.b.com/;

    #limit_conn   crawler  20;   

    location ~ .*\.(php|php5)?$
    {     
      #fastcgi_pass  unix:/tmp/php-cgi.sock;
      fastcgi_pass  127.0.0.1:9001;
      fastcgi_index index.php;
      include fcgi.conf;
    }

}

注意:www.a.com 的请求发送到9000端口 , www.b.com的请求发送到9001端口,依次类推

nginx配置修改了,相对的,php-fpm.conf也要修改

每个站点建一个conf

 

A站点

#cp /usr/local/webserver/php/etc/php-fpm.conf /usr/local/webserver/php/etc/www.a.com.conf

#vi /usr/local/webserver/php/etc/www.a.com.conf

找到php_defines,添加

<value name="open_basedir">/data/htdocs/www.a.com:/tmp:/var/tmp</value>

 

 

 

B站点

#cp /usr/local/webserver/php/etc/php-fpm.conf /usr/local/webserver/php/etc/www.b.com.conf

#vi /usr/local/webserver/php/etc/www.b.com.conf

找到php_defines,添加

<value name="open_basedir">/data/htdocs/www.b.com:/tmp:/var/tmp</value>

 

找到listen_address,修改为

<value name="listen_address">127.0.0.1:9001</value>   注意这里的端口号

 

最后要修改php-fpm启动脚本

#vi /usr/local/webserver/php/sbin/php-fpm

注释掉原来的 #$php_fpm_BIN --fpm $php_opts,添加

$php_fpm_BIN --fpm --fpm-config /usr/local/webserver/php/etc/www.a.com.conf

$php_fpm_BIN --fpm --fpm-config /usr/local/webserver/php/etc/www.b.com.conf

启动服务

#/usr/local/webserver/php/sbin/php-fpm restart

查看端口

#netstat -tln

 

开了9000 9001分别处理两个站点请求

两个php-cgi主进程加载不同的conf文件,这样就完美解决了虚拟主机webshell能跨目录的问题

当然,启动之前记得conf里面的max_children,开启php-cgi子进程数,相应要减少一些,以免造成内存不足

文章来源:DoDo's Blog
原文地址:http://www.sectop.com/post/35.html


    
[3]nginx设置上传目录无执行权限的方法
    来源: 互联网  发布时间: 2013-12-24
nginx上也很简单,我们使用location。。如下:
代码如下:

location ~ ^/upload/.*\.(php|php5)$
{
deny all;
}

其中upload换为你要设置的目录名字

这条规则的含义是匹配请求连接中开头是/upload/,中间匹配任意字符,结尾匹配.php或者.php5的页面,最后利用deny all禁止访问,这样就防止了上传目录的脚本执行权限

    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪让代码整洁、过程清晰的BASH Shell编程技巧
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3