Articles of PHP

PHP 5.3.10中的错误,如何在没有apt的情况下升级?

我有几个运行Ubuntu软件包发行版(PHP 5.3.10)的最新版本的Ubuntu软件包。 但是, PHP版本中存在一个错误,导致我的应用程序中断 。 鉴于在Ubuntu软件包回购中可用的版本已经被破坏,我还没有find任何时间来包升级,我需要find一个替代scheme。 我不是一个非常有经验的系统pipe理员,所以我自己编译软件包不太舒服。 有没有其他的软件包仓库,我可以得到PHP 5.3.11 +(最好PHP 5.3.16)?

删除,然后通过yum重新安装php-common。 现在没有虚拟主机?

使用yum我想安装php-gd库,但是有一个与php-common相关的问题阻止我安装php-gd 。 所以经过一些挖掘,我发现这篇文章 。 我遵循指示,并删除了php-common 。 然后我重新安装了php-common 。 之后,我可以毫无问题地安装php-gd 。 但是,我试图加载我的网站,我发现虚拟主机文件不被parsing,只有默认网站出现。 即使我呱呱叫PHP安装,我不认为这会搞砸虚拟主机。 还是会呢? 谢谢。

Apache-vhost文件权限使用www-data组无法正常工作

我正在用ftp访问来设置一个虚拟主机。 我有一个FTP用户ftpuser ,它被chrooted到它的主目录,然后我设置虚拟主机使其指向/home/ftpuser/ 。 我已经将ftpuser添加到www-data组,我也通过运行返回ftpuser: ftpuser www-data groups ftpuser来确保。 然后我上传了一个wordpress网站,在整个源码目录中运行了chown -R ftpuser:www-data ,为.php文件设置了文件权限为664,目录设置为775。 不幸的是,这个设置不起作用,实际上Apache对这些文件没有权限。 它只获得执行和写权限,当我设置权限666(文件)和777(目录)。 似乎www数据组没有被授予任何权限(实际上它没有使用组权限)。 我该如何解决这个问题? 这里有什么问题? 我确定apache使用www-data,因为我查看了它的configuration,而且我也运行ps aux | grep apache ps aux | grep apache 。 PS的ftpuser将通过vsftpd访问,我需要编辑的东西,以确保新的文件将具有WWW数据组? (umask是022)

脚本第二次加载后输出乱码

在一台运行FreeBSD 8.3-RELEASE-p3 , Apache 2.2.22从端口运行的服务器上, PHP version 5.4.6从端口运行,输出在脚本的第二次加载时出现乱码。 有问题的行为是今天才被发现的,但是我们怀疑它是从最近的一个端口更新开始的。 这是一个示例脚本: <?php // index.php print 'top of index.php<br>'; require 'blah.php'; print '<br>after require'; ?> <?php // blah.php print 'blah'; ?> 在文件被修改后的第一次,这是输出: top of index.php<br> blah <br>after require 第二个(和任何后续的调用)给同一个脚本给这样的随机垃圾输出ö或àœ~cept-Encodin , ðš~~垃圾。 有时它是文件名块。 在Apache错误日志中,我们看到段错误和PHP错误,没有定义函数“\ x0”,指向上面index.php中的第1行。 显然, print是一个定义的function! 如果保存该文件(导致ctime改变),则下一次加载将再次显示期望的输出,但是随后的加载再次出现乱码。 重新启动服务器即可完成此操作,除非有时在发生扰乱之前可以获得3-4个负载。 我怀疑gzip或zlib有一些其他压缩或操作码caching等问题。 但是,我们的php.ini与另一台服务器完全相同,它们的设置和版本完全相同。 如果有人能指出我可能的原因,或进一步诊断问题的有效方法,我会很感激。 我已经检查了php.ini设置,设置了一个最小样本,并validationzlib是closures的 – 没有骰子。

将IIS 7.5站点从主机名redirect到IP

所以这是问题。 我在IIS中有一个站点正在从站点的主机名redirect到它的IP地址。 问题是,我甚至没有为网站设置redirect。 但是当我分析页面加载时所经过的头文件时,我清楚地看到了“302 Temporary Redirect”(302临时redirect)。 什么可能导致这个? 我想也许这是在我的应用程序的DB(这是一个PHP / MySQL应用程序)的东西,但我已经排除了。 我也认为这可能是一个重写规则,所以我也删除了所有的重写规则。

是否可以通过WHM(HostDime)在CentOS 4.9上将php5.2升级到php5.3,

他们告诉我,他们不支持使用这种types的configuration,但在某个时候我们已经从他们那里运行了…我们已经和他们合作了8年多了。 事情是,我们需要升级到php5.3而不失去对php4的支持。 不知道该怎么做。 在hostdime的家伙已经表示,他们不会帮助它。 但是,我知道有可能以某种方式(可能重新编译Apache再次?)。

反向代理WordPress与Lighttpd

我正在AWS上部署应用程序和Wordpress安装。 我有一个EC2下的Apache下build立的WordPress,我的应用程序在Lighttpd下,我想通过应用程序节点反向代理WordPress。 这工作正常,我只是在Lighttpd中设置反向代理,如下所示: $HTTP["url"] =~ "^/blog" { proxy.server = ( "/blog" => ( "blog" => ( "host" => "123.456.789.123", "port" => 80 )) ) } url.rewrite-once = ( "^(.*?)$" => "/index.php/$1" ) 但是,这个问题是在重写。 当我启用重写时,它会在反向代理之前捕获它,并在应用程序服务器index.php由到index.php 。 我需要它不会重写,如果它要去博客。 我尝试了各种正则expression式匹配和其他configuration,但是我一直没有能够支持重写和代理。 如何才能做到这一点?

nginx干净的URL路由器/重写

即时通讯与nginxconfiguration相对简单的重写规则/路由器有困难。 我想要做的是,如果请求目录或文件'主机/我/请求/path[/ [index.php]]'不存在,重写为'主机/我/请求/ path.php' 目前的重写工作如下: host host/ host/my/request/path 但不会为: host/my/request/path/ 这是configuration的重写部分: location / { try_files $uri/ $uri $uri.php; } 错误日志将报告: Access forbidden by rule, request: "GET /my/request/path/ HTTP/1.0" 嗯,有没有更好的方法来解决这个问题或摆脱尾随斜线? 编辑,规则更精细: host[/] > host/index.php host/index[/] > host/index.php host/my/path[/] > if /path/index.php exists: host/my/path/index.php else host/my/path.php

Windows Server 2008 – 设置DNS和Web服务器(IIS)来托pipe个人网站?

好的,我有一个服务器,(Windows Server 2008 R2更准确),我已经安装了PHP,MySQL,phpMyAdmin,用于虚拟主机的目的。 我在内部设置了一个静态IP地址。 我已经安装了angular色DNS和Web服务器(IIS)angular色。 我现在把我的前视区域设置为我select的域名。 我使用从whatismyip.org发现的IP地址将名称服务器设置为ns1.domain.co.uk。 但是,当我键入我的IP地址时,超时出错(超时错误)。 难道我做错了什么? 我错过了什么吗? 我也看到,大多数网站有多个名称服务器,这显然是镜像IP地址,所有redirect到一个IP地址。 此外,我可以使用IP地址192.168.0.8在本地连接,但是,我想把我的网站在线/在互联网上生活。 谁能帮我这个? – 问候

fastcgicaching如何cachinglogin的用户,并为每个用户定制

目前,我正在使用fastcgi_cache来caching非login用户,并使用(如果+ fastcgi_no_cache + fastcgi_cache_bypass)将login用户直接传递到PHP-FPM的后端。 这个工作足够好,但是当PHP-FPM开始达到500+ req / s时,缓慢/加载开始。 所以我在想的是为login用户创build一个caching,每个用户都有它自己的caching文件,这可能吗? 如果是的话,请给我提供一些关于这方面的提示。 我已经看了很多,但没有任何帮助。 运行mysql和memcached和apc的自定义php cms的网站 cat /etc/nginx/nginx.comf user username username; worker_processes 8; worker_rlimit_nofile 20480; pid /var/run/nginx.pid; events { worker_connections 10240; use epoll; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr – $remote_user [$time_local] ' '"$request" $status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log off; error_log /var/log/nginx/error.log […]