GVKun编程网logo

Apache – 406不可接受的PHP问题(apache不能解析php)

11

以上就是给各位分享Apache–406不可接受的PHP问题,其中也会对apache不能解析php进行解释,同时本文还将给你拓展40.Apache和PHP结合Apache默认虚拟主机、406Spring

以上就是给各位分享Apache – 406不可接受的PHP问题,其中也会对apache不能解析php进行解释,同时本文还将给你拓展40.Apache和PHP结合 Apache默认虚拟主机、406 Spring MVC Json,根据请求“接受”标头不可接受、406不可接受的错误GET参数问题?、Android HTTP / 1.1中的GET请求的身份验证406不可接受等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

Apache – 406不可接受的PHP问题(apache不能解析php)

Apache – 406不可接受的PHP问题(apache不能解析php)

我正在debugging一个flash网站,请求一个名为upload.PHP的PHP文件将一些图像上传到服务器。

这个问题,我debugging它与萤火虫对该页面的要求是抛出一个406不可接受的状态代码,并没有保存图像。

发布数据:

替代文字http://img.zgserver.com/PHP/rum_post_info.JPG

无论如何PHP都不能写在文档根目录之外

mod_rewrite,我想检测一个文件是否存在于另一个目录并检索

提交表单后,标记<script>切出<textarea>字段

如何远程访问PHPmyadmin

无法获取.htaccess在本地主机上工作

该网站在登台服务器上运行良好,但在生产服务器上,图像上传失败。 我只能假设改变到Apacheconfiguration/ PHP必须完成,但我不知道该怎么做。

upload.PHP代码:

替代文字http://img.zgserver.com/PHP/rum_upload_code.JPG

任何帮助或指导将受到欢迎,在此先感谢帮助。

att Sherlack

用SetEnv重写

即使使用L标志,mod_rewrite也会循环

除了Apache中的几个页面之外,如何强制重写HTTPS?

如何增加Apache中的最大并发连接数?

找出在Windows中运行Apache的用户?

406 Not Acceptable错误意味着服务器想要发送一个响应,这个响应的类型没有在客户端发送的accept头文件中(在本例中是Flash); 它与您的文件无法上传无关。

你的代码看起来很好,所以这可能是你的PHP配置的问题。 确保upload_max_filesize文件中的upload_max_filesize和post_max_size已经被充分配置。

除了其他答案(post_max_size它可能是,因此我的问题的图像大小), 这个博客条目概述了一个406与Flash文件上传,显然是由mod_security引起的不寻常的原因。

这很可能是你的post_max_size的一个问题。

在PHP.ini中将以下内容更改为符合您需要的数字:

memory_limit = 0M post_max_size = 0M upload_max_filesize = 0M

如果这不起作用,那么您将需要在Apache中的.htaccess文件中做类似的更改。

问题是Suhosin PHP强化模块。 一些变量值的长度限制被超过。 被编辑的文件是/etc/PHP.d/suhosin.ini,并且记录到/ var / log /中。

文件由我的主机管理员编辑后,问题已解决。

感谢所有的支持!

就我而言,只需要改变标题(如Johannes Gorset所说)即可:

"Accept":"text/html"

禁用mod_security不是一个选项。

我正在发送一个多部分/表单,并收到这个恼人的错误。 改变“接受头”解决了​​我的问题。

40.Apache和PHP结合 Apache默认虚拟主机

40.Apache和PHP结合 Apache默认虚拟主机

11.14/11.15 Apache和PHP结合

11.16/11.17 Apache默认虚拟主机

 

 

 

 

11.14/11.15 Apache和PHP结合:

 

 

~~ONE

配置httpd支持php,步骤如下:

(我们虽然知道Apache调用了php作为他的模块,但我们还没做实验,还不知道他能不能解析php。所以我们要编辑http的配置文件)

httpd主配置文件/usr/local/apache2.4/conf/httpd.conf

vim /usr/local/apache2.4/conf/httpd.conf //修改以下4个地方

实例1. ServerName 开启Apache不显示提示

实例2. Require all denied 防止403

实例3. AddType application/x-httpd-php .php 解析PHP。要增加这一行

实例4. DirectoryIndex index.html index.php 增加索引页。后面要加index.php

/usr/local/apache2.4/bin/apachectl -t 测试,修改过配置文件完语法是否对

/usr/local/apache2.4/bin/apachectl graceful 重新加载配置文件,不会重启服务

/usr/local/apache2.4/bin/apachectl start 启动服务

 

netstat -lntp (这两个阿铭没说怎么用)

curl localhost

 

~~TWO

验证apache支持不支持解析php,步骤如下:

实例5.

vim /usr/local/apache2.4/htodcs/1.php 增加如下内容

我们在访问的时候是访问的这个目录下的文件 /htodcs

<?php

phpinfo();

?>

 

~~THREE

如果遇到php不能解析的情况,要检查Apache的配置文件:

1. /usr/local/apache2.4/bin/apachectl -M 查看有没有加载php模块。

2. ls /usr/local/apache2.4/modules/libphp5.so 如果没有加载我们要看一看这个模块,有没有这个文件

3. vim /usr/local/apache2.4/conf/httpd.conf 如果有.so这个文件,就看一下配置文件。有没有加载或被注释php模块

LoadModule php5_module modules/libphp5.so

#LoadModule php7_module modules/libphp7.so

4. vim /usr/local/apache2.4/conf/httpd.conf 还要检查配置文件,有没有加载AddType

AddType application/x-compress .Z

AddType application/x-gzip .gz .tgz

AddType application/x-httpd-php .php 我们自己配置进去的这个(注意.php前面要加空格,根据前两行写)

5. vim /usr/local/apache2.4/conf/httpd.conf 还要检查有没有加载index.php (索引页)

<IfModule dir_module>

DirectoryIndex index.html index.php 我们在后面加进去的

 

curl localhost/test.php (这个阿铭没说上面用)

 

 

 

实例:

1.

[root@localhost ~]# /usr/local/apache2.4/bin/apachectl start
开启Apache的时候会有提示

AH00558: httpd: Could not reliably determine the server''s fully qualified domain name, using localhost.localdomain. Set the ''ServerName'' directive globally to suppress this message

[root@localhost  ~]# vi /usr/local/apache2.4/conf/httpd.conf viApache的配置文件。

# ServerName gives the name and port that the server uses to identify itself.

# This can often be determined automatically, but we recommend you specify

# it explicitly to prevent problems during startup.

#

# If your host doesn''t have a registered DNS name, enter its IP address here.

#

ServerName www.example.com:80 搜索 ServerName,并把前面的注释去掉。再启动Apache就不会有提示了

 

[root@localhost  ~]# vi /usr/local/apache2/conf/httpd.conf viApache配置文件。

LoadModule php5_module modules/libphp5.so

#LoadModule php7_module modules/libphp7.so 把php7注释地掉,我们用php5。不然会有冲突

 

2.

我们先用浏览器访问以下我们的IP,其实并不通

网页访问不了。

这种情况下,我们用cmd ping一下IP,是通的

ping 192.168.30.133 是通的。

然后,在telnet80端口。需要打开telnet

步骤为,打开控制面案>程序>程序和功能>打开或关闭Windows功能>

找到 Telnet客户端,前面打上勾,点确定

以上,Windows打开Telnet完成

我们再回到cmd上,telent80端口,结果是不通。是因为在我们linux上并没有打开80端口

[root@localhost  ~]# iptables -nvL 看一下 iptables规则。也并没有发现80端口

我们先临时给他加上80端口

[root@localhost  ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT -j 为来源客户端全部打开,也可以-s指定来源客户

此时,我们在浏览器上IP就通了

It works!

此时,我们再回到cmd上。再次ping 80端口。显示以下画面,为通

telenet 192.168.30.133 80 通了

 

为防止浏览器出现403或测试为403,我们要在配置文件里,配置一下 Require all denied

[root@localhost ~]# vi /usr/local/apache2.4/conf/httpd.conf

<Directory />

AllowOverride none

Require all denied 把这一行,denied改为granted

并检查下面Require all granted是不是也是为 granted

#

# Controls who can get stuff from this server.

#

Require all granted

[root@localhost  ~]# /usr/local/apache2.4/bin/apachectl -t 配置完配置文件要-t检查一下

Syntax OK

[root@localhost  ~]# /usr/local/apache2.4/bin/apachectl graceful 在graceful重新加载

 

 

3.

[root@localhost  ~]# vim /usr/local/apache2.4/conf/httpd.conf 修改配置文件

搜索 AddType

#

# If the AddEncoding directives above are commented-out, then you

# probably should define those extensions to indicate media types:

#

AddType application/x-compress .Z

AddType application/x-gzip .gz .tgz 找到这两行,这有两个,一个.Z一个.tgz的。不要加错了

增加 AddType application/x-httpd-php .php (注意空格)

 

 

4.

 

[root@localhost  ~]# vim /usr/local/apache2.4/conf/httpd.conf

搜索 Index

[root@localhost  ~]# /usr/local/apache2.4/bin/apachectl -t 修改完配置文件要 -t

Syntax OK

[root@localhost  ~]# /usr/local/apache2.4/bin/apachectl graceful 修改完配置文件要 graceful

 

 

5.

[root@localhost ~]# vi /usr/local/apache2.4/htdocs/1.php

<?php

phpinfo(); 函数,可以把PHP的相关信息打印出来

?>

我们在浏览器上输入 192.168.30.133/1.php

这个界面出来,就代表php就支持解析

[root@localhost ~]# curl localhost/1.php
 

<?php

phpinfo(); 

?>

 

 

 

 

 

 

 

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

 

 

 

11.16/11.17 Apache默认虚拟主机

 

 

 

 

1. 可理解为,一台服务器可以访问多个网站,每个网站都是一个虚拟主机

概念:域名(主机名)、DNS、解析域名、hosts

 

2. 我们在linux上设置了hosts,可以让他访问到1.php,是因为在apa配置文件里DocumentRoot定义了网站的根目录在哪里

DocumentRoot "/usr/local/apache2.4/htdocs"

他的域名就是配置文件里上面定义的ServerName www.example.com:80,这个ServerName可有用任何域名去访问他。而这个就是Apache的默认主机,也就是说任何一个域名,只要是指定到这个IP,都会指向到这个站点,这个站点就是默认虚拟主机

3. 同样windows上也是可以的,他的位置在 C:\Windows\System 32\drivers\etc\hosts

在里面写上192.168.30.133 www.123.com

我们在访问www.123.com的时候就会访问到192.168.30.133

4. 任何一个域名解析到这台机器,都可以访问的虚拟主机就是默认虚拟主机。

如果我们对Apache的这个配置文件没有做任何的修改,仅仅只是使用的是httpd.cong,他实际上就是我们主配置文件里面定义的ServerName和DocumentRoot。如果我们觉得不好管理,不想让域名执行到这来,因为一个配置文件里面只能配置一个ServerName。我们要打开一个虚拟主机配置文件:

~4.1 vim /usr/local/apache2.4/conf/httpd.conf 搜索httpd-vhost,去掉#。代表以上的ServerName DocumentRoot就不能用啦。

~4.2 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 这个就是虚拟主机配置文件。改为如下

<VirtualHost *:80> 每一个VirtualHost都代表一个主机

ServerAdmin admin@aminglinux.com 这个是定义管理员的邮箱,要不要都行

DocumentRoot "/data/wwwroot/abc.com" 网站根目录。只能写一个

ServerName abc.com 访问他的域名是什么。可支持alias

ServerAlias www.abc.com www.123.com 可写多个别名。意思是abc.com能访问,这些别名也可以访问

ErrorLog "logs/abc.com-error_log" 错误日志

CustomLog "logs/abc.com-access_log" common 访问日志

</VirtualHost>

 

<VirtualHost *:80>

DocumentRoot "/data/wwwroot/111.com"

ServerName 111.com

ErrorLog "logs/111.com-error_log"

CustomLog "logs/111.com-access_log" common

</VirtualHost>

~4.3 修改完要创建相应的目录

mkdir /data/wwwroot

mkdir /data/wwwroot/abc.com

mkdir /data/wwwroot/111.com

~4.3 在两个站点根目录下创建.php

vim /data/wwwroot/abc.com/index.php

vim /data/wwwroot/111.com/index.php

~4.4 修改服务是否正确以及重新加载

/usr/local/apache2.4/bin/apachectl –t

/usr/local/apache2.4/bin/apachectl graceful

~4.5 curl -x 测试

curl -x192.168.30.133:80 www.abc.com 测试我们配置的这个域名访问这个IP的结果,是不是我们之前设置的结果

 

总结:

1. 如果我们没有设置的域名段,访问过来,他就会走第一个我们设置的虚拟主机

2. 我们一旦打开了这个虚拟主机配置(也就是我们注释掉的httpd-vhost),我们之前配置的SurverName DocumentRoot都会失效

3. 每一个VirtualHost都代表一个站点,都是一个虚拟主机。在虚拟主机里有一个比较特殊的,就是默认虚拟主机。就是无论任何的域名解析到这个IP上,都会去访问这个默认虚拟主机

 

 

 

实例:

[root@localhost  ~]# vim /usr/local/apache2/conf/httpd.conf

# Virtual hosts

Include conf/extra/httpd-vhosts.conf

[root@localhost  ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>

DocumentRoot "/data/wwwroot/abc.com"

ServerName abc.com

ServerAlias www.abc.com www.123.com

ErrorLog "logs/abc.com-error_log"

CustomLog "logs/abc.com-access_log" common

</VirtualHost>

 

<VirtualHost *:80>

DocumentRoot "/data/wwwroot/111.com"

ServerName 111.com

ServerAlias www.example.com

ErrorLog "111.com-error_log"

CustomLog "111.com-access_log" common

</VirtualHost>

[root@localhost  ~]# mkdir /data/wwwroot

[root@localhost  ~]# mkdir /data/wwwroot/abc.com

[root@localhost  ~]# mkdir /data/wwwroot/111.com

[root@localhost  ~]# vim /data/wwwroot/abc.com/index.php

[root@localhost ~]# vim /data/wwwroot/111.com/index.php

[root@localhost  ~]# /usr/local/apache2.4/bin/apachectl -t

Syntax OK

[root@localhost ~]# /usr/local/apache2.4/bin/apachectl graceful

[root@localhost  ~]# curl -x192.168.30.133:80 www.abc.com

[root@localhost  ~]# curl -x192.168.30.133:80 www.abc.cn

[root@localhost ~]# curl -x192.168.30.133:80 www.example.cn

[root@localhost  ~]# curl -x192.168.30.133:80 www.example.com

[root@localhost  ~]# curl -x192.168.30.133:80 111.com

 

406 Spring MVC Json,根据请求“接受”标头不可接受

406 Spring MVC Json,根据请求“接受”标头不可接受

如何解决406 Spring MVC Json,根据请求“接受”标头不可接受?

将以下jar添加到Spring 4.1。*所需的pom.xml文件中。

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.4.1</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.4.1.1</version>
</dependency>

解决方法

在我的pom.xml中有以下详细信息

    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-core-asl</artifactId>
        <version>1.9.13</version>
    </dependency>

    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.9.13</version>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.1.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tiles</groupId>
        <artifactId>tiles-extras</artifactId>
        <version>3.0.5</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tiles</groupId>
        <artifactId>tiles-core</artifactId>
        <version>3.0.5</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring-framework.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>4.1.1.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>com.googlecode.json-simple</groupId>
        <artifactId>json-simple</artifactId>
        <version>1.1</version>
    </dependency>
application-config.xml:

<context:component-scan base-package="com.test" />
<mvc:annotation-driven />
<!-- <mvc:default-servlet-handler /> -->
<mvc:resources mapping="/resources/**" location="/resources/" />

JSP页面:

 <form:form method="POST" action="/QuickBooks-UX/syncAccounts">
        <input type="submit" value="Sync Account"/>
 </form:form>

控制器:

@Controller
@RequestMapping("/")
public class QuickBooksController {
    @RequestMapping(value = "/quickBooks",method = RequestMethod.GET)
    public String qucikBooks(ModelMap model) {
        logger.info("Welcome to QuickBooks controller");
        model.addAttribute("message","Hello Spring MVC Framework!");
        return "quickBooks";
    }
    @RequestMapping(value ="/syncAccounts",method = RequestMethod.POST)
    public @ResponseBody List<SyncData> syncAccounts(@ModelAttribute("syncData")SyncData syncData,ModelMap model,BindingResult result) {
          List<SyncData> syncDataList = new ArrayList<SyncData>();
          try {

                DefaultHttpClient httpClient = new DefaultHttpClient();
                HttpGet getRequest = new HttpGet(
                    "http://localhost:8292/qbsyncdata/getAccounts");
                getRequest.addHeader("accept","application/json");

                HttpResponse response = httpClient.execute(getRequest);
                if (response.getStatusLine().getStatusCode() != 200) {
                    throw new RuntimeException("Failed : HTTP error code : "
                       + response.getStatusLine().getStatusCode());
                }
                BufferedReader br = new BufferedReader(
                                 new InputStreamReader((response.getEntity().getContent())));                   
                while ((output = br.readLine()) != null) {
                    JSONParser jsonParser = new JSONParser();
                    JSONArray jsonArray = (JSONArray)jsonParser.parse(output);
                    for (Object object : jsonArray) {
                        JSONObject jsonObject = (JSONObject)object;
                        syncData = new SyncData();
                        syncData.setAccountName(jsonObject.get("accountName")==null?"":jsonObject.get("accountName").toString());
                        syncData.setAccountType(jsonObject.get("accountType")==null?"":jsonObject.get("accountType").toString());
                        syncData.setAccountSubType(jsonObject.get("accountSubType")==null?"":jsonObject.get("accountSubType").toString());
                        syncData.setActive(jsonObject.get("active")==null?"":jsonObject.get("active").toString());
                        syncDataList.add(syncData);
                    }                   
                    model.addAttribute("syncData",output);
                }
                httpClient.getConnectionManager().shutdown();
              } catch (Exception e) {
                e.printStackTrace();
              } 
            }
         return syncDataList;
    }
}

我正在以以下方式调用我的网址:

http://lt-50k7sy1:8080/QuickBooks-UX/quickBooks

单击按钮后,它返回url,因为 http://lt-50k7sy1:8080/QuickBooks-UX/syncAccounts它返回406,描述为:

该请求标识的资源只能根据请求“接受”标头生成特性不可接受的响应

406不可接受的错误GET参数问题?

406不可接受的错误GET参数问题?

任何人都可以告诉我为什么下面的URL返回一个406错误:

http://img.zgserver.com/apache/remote-upload.PHPurl=httpben-major.co.ukhostingbm-equipmentaxe-2.jpg&item_id=2

删除?url=参数似乎使一切正常:

http://kolek.to/functions/remote-upload.PHP?item_id=2

为了便于参考, remote-upload.PHP的内容如下:

<?PHP require_once(''../models/api.PHP''); $request_url = urldecode($_REQUEST[''url'']); $item_id = $_REQUEST[''item_id'']; echo $item_id; ?>

在弹性beanstalk上configurationapache

使用.htaccess重写GET查询string

Amazon Elastic beanstalk:使用Nginx / apache将子域转发到子文件夹

Apache将追踪斜杠附加到我的重写规则

如何使用htacces从wwwredirect到https www?

使用HTTP_HOST来标识以前的主机名称

使用参数redirect到主页url

Htaccess维护模式允许某些目录

apache在htaccess中接受的variables

.htaccess仅针对特定目录重写条件结尾斜杠

我认为这是由于你的服务器的安全过滤器(我看到在Apache的响应头)。

在你的情况是默认打开的Apache mod_security 。 尽管可以通过在服务器上运行以下命令来诊断问题(关闭过滤器可以解决问题):

SecFilterEngine off

但是,这样做只是为了检查问题是否是安全过滤器,我劝阻离开过滤器关闭(注入和垃圾邮件攻击的危险)。

如果您发现问题的原因,请尝试将您的请求列入白名单: 这里您可以找到该指南, 这里是主要网站。

总结

以上是小编为你收集整理的406不可接受的错误GET参数问题?全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

Android HTTP / 1.1中的GET请求的身份验证406不可接受

Android HTTP / 1.1中的GET请求的身份验证406不可接受

我试过但是在向一个heroku URL示例“ https://xxxx-xxxxx.herokuapp.com/xxxxxx/xxxxxxxx”发出GET请求似乎有问题

我知道一般的方法是

HttpClient客户端= factory.getHttpClient(); //或任何获取客户端实例的方法
凭据凭证=新的UsernamePasswordCredentials(用户名,密码);
client.getState().setCredentials(AuthScope.ANY,credentials);

我知道getState()不适用于3.x版本.

我不知道Chrome的“高级REST客户端”是如何处理它的,它给了我弹出窗口并询问用户名和密码,我输入了凭证,它起作用,从那时起它工作正常.我认为它可能在本地存储了凭证,但事实并非如此.我检查了所有的cookie和缓存.我删除了扩展名并清除了数据,但仍然有效.

然后我尝试使用WizTools的另一个REST客户端(适用于Mac).在授权部分,有3个选项. 1.)Basic,2.)Digest和3.)Preemptive,我使用给定的凭证进行了一些排列和组合,但是它一直给出相同的响应,即

“HTTP / 1.1 406不可接受”

我不明白问题是什么?

谢谢,

解决方法

我不知道,如果它为什么不起作用,但我使用 URLConnecton使用了提到的身份验证,它的工作原理.我得到了答复.是的BTW我必须将“Accept”类型指定为“Application / Json”

关于Apache – 406不可接受的PHP问题apache不能解析php的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于40.Apache和PHP结合 Apache默认虚拟主机、406 Spring MVC Json,根据请求“接受”标头不可接受、406不可接受的错误GET参数问题?、Android HTTP / 1.1中的GET请求的身份验证406不可接受的相关信息,请在本站寻找。

本文标签: