小编Rob*_*ijn的帖子

Nginx和/或php5-fpm会记住符号链接的根目录

我的nginx站点根指向符号链接.如果我改变符号链接(也就是部署新版本的网站),那么旧版本的php脚本会一直显示出来.闻起来像缓存或臭虫.

首先它看起来像Nginx正在缓存符号链接的目录,但重新加载/重新启动/杀死并启动nginx没有解决它,所以我重新启动php5-fpm - 这解决了我的问题.

但我不希望在部署后重新启动nginx和/或php5-fpm - 我想知道为什么会有这样的缓存(或错误),以及为什么它无法正常工作.

有用的信息:

  • 操作系统:Ubuntu 13.10(GNU/Linux 3.8.0-19-通用x86_64)
  • Nginx:通过ppa:nginx/stable
  • PHP:通过ppa:ondrej/php5(php5-fpm)

Nginx站点配置:

root /home/rob/sandbox/deploy/public/;
index index.php index.html index.htm;
location / {
    try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    include fastcgi_params;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_pass php;
}
Run Code Online (Sandbox Code Playgroud)

Nginx服务器配置(部分,默认为休息):

http {
    sendfile off;
    upstream php {
        server unix:/var/run/php5-fpm.sock;
    }
}
Run Code Online (Sandbox Code Playgroud)

树/ for/home/rob/sandbox:

??? deploy -> web2
??? web1
?   ??? public
?       ??? index.php (echo ONE)
??? web2
    ??? public
        ??? …
Run Code Online (Sandbox Code Playgroud)

php caching nginx

24
推荐指数
2
解决办法
7989
查看次数

SoapServer,handle()上的错误 - 未设置过程

所以错误是:

PHP Fatal error: Procedure 'sup:set_availability' not present in XMLSoapServer.php

我在开发环境(MAMP)上收到此错误.

这是由无效的XML字符串引起的,其中'sup'命名空间未定义:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<SOAP-ENV:Envelope xmlns:SOAPSDK1="http://www.w3.org/2001/XMLSchema" 
    xmlns:SOAPSDK2="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:SOAPSDK3="http://schemas.xmlsoap.org/soap/encoding/" 
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Body>
        <sup:set_availability>
            <SetAvailability>
                ...
            </SetAvailability>
        </sup:set_availability>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Run Code Online (Sandbox Code Playgroud)

(这是一个外部请求,所以我不能只是去纠正来源 - 我能做到,但至少不能在短时间内通知.)

问题是我有两个处理相同请求的服务器.没有错误.所以我的任务是找出原因:)

一些细节:

  • 服务器1:php 5.3.2
  • 服务器2:php 5.4
  • 开发:php 5.4

到目前为止我检查过的事情:

  • 代码是相同的svn-checkout
  • 没有隐藏的开发或仅限生产设置
  • apache配置是一样的
  • 禁用wsdl缓存,清除缓存的wsdl
  • php.ini设置是相同的,libxml2除外:

服务器1的版本为2.6.26,服务器2的版本为2.7.7 - 请求的工作方式就像一个魅力我的开发环境有lixml2版本2.8.0 - 并且确实抛出了致命的错误.

我的猜测是(或者是)libxml2导致错误 - 但是我找不到关于这个主题的任何资源 - 我也没有成功将我的本地libxml2版本降级到2.6或2.7.

那么......对此有何看法?

php fault soapserver

7
推荐指数
1
解决办法
1452
查看次数

标签 统计

php ×2

caching ×1

fault ×1

nginx ×1

soapserver ×1