Articles of PHP

MediaWiki内部错误

多年来,我一直在我的公司运行一个mediawiki服务器。 最近为了解决我在上传PDF时遇到的问题,我已经把我的Gentoo盒子上的所有软件(Mediawiki 1.18.1,PHP 5.4.0,PostgreSQL 9.1.3) 现在某些页面(收到大量使用的两个类别页面)返回相同的PHP错误。 警告:1377行/var/www/localhost/htdocs/includes/db/Database.php中的非法string偏移“LIMIT” 然后有5或6个关于这个错误的投诉。 然后是线路: 警告:在第177行的/var/www/localhost/htdocs/includes/resourceloader/ResourceLoaderWikiModule.php中为foreach()提供的无效参数 然后说整个事情是一个mediawiki内部错误。 然后它告诉我,最初的例外: 原始exception:发生exception'DBQueryError'消息'发生数据库错误。 你升级后忘了运行maintenance / update.php吗? 请参阅: http : //www.mediawiki.org/wiki/Manual :Upgrading#Run_the_update_script查询:SELECT COUNT(*)AS页,COUNT((CASE WHEN page_namespace = 14 THEN 1 ELSE NULL END))AS subcats,COUNT(( CASE WHEN page_namespace = 6 THEN 1 ELSE NULL END))AS文件FROM“categorylinks”,“page”WHERE cl_to ='Item_Groups'AND(page_id = cl_from)LOCK IN SHARE MODE function:Category :: refreshCounts 错误:1错误:在“LOCK”或其附近出现语法错误 LINE 1:… […]

Windows Server 2008命令行问题上的多个PHP版本

我正在运行服务器2008年,并安装了多个版本的PHP。 它看起来像最初的版本是5.2.14。 然后还有2个版本,安装5.2.17和5.3.10。 他们在这个目录结构中: C:\program files\php – 5.2.14 C:\program files\php\v5.2 – 5.2.17 C:\program files\php\v5.3 – 5.3.10 在IIS中,我已经在PHPpipe理器中设置了PHP版本以使用5.3.10。 一切通过iis工作得很好。 我遇到的问题是5.3.10通过命令行工作。 我有多个使用PHP的任务运行: start a program: "C:\Program Files\PHP\php.exe" -fc:\file.php 这运行良好,并使用PHP 5.2.14。 当我尝试运行一个任务: start a program "C:\Program Files\PHP\v5.3\php.exe" -fc:\file.php 我可以让PHP工作,但似乎我有问题连接到本地数据库。 有没有办法使PHP的最新版本的命令行的默认版本还是我错过了一些文件或ini设置让MySQL正常工作? 理由是有一些function,我需要使用PHP 5.3 +

Mediawikimath扩展它从命令行,但不是从PHP工作

我已经从旧的服务器(LINUX)将Mediawiki移动到新的服务器(LINUX)。 一旦我移动math函数不工作。 所以我要求IT团队安装相关的软件和软件包。 当我试图在命令行运行它产生的mathPNG的。 但同时它不能在PHP中工作。 下面的命令在命令行中执行: texvc /apps/xray/data/apache_xray/docs/xray-wiki/images/tmp \ /apps/xray/data/apache_xray/docs/xray-wiki/math "\alpha^2+\beta^2=1" LocalSettings.php中 $wgMathPath = "{$wgUploadPath}/math" $wgMathDirectory = "/apps/xray/data/apache_xray/docs/xray-wiki/images/math" $wgTmpDirectory = "/apps/xray/data/apache_xray/docs/xray-wiki/images/tmp"

如何在PHP / Memcache应用程序上实现DNScaching

在一个非常高负载的Ubuntu / PHP Web服务器中,我发现PHP行: $ memcache->连接( “int-aws_ec2.memcached.myapp.net”,11211); 有时需要〜5秒。 使用ip地址replaceurl会将服务器负载从~20减less到0 我的问题是 – 哪些是影响DNScaching的设置? 它在服务器级还是memcache库? 我怎样才能改变它? 附加信息:Ubuntu 10.04 lucid PHP:5.3.2-1ubuntu4.10 Apache / 2.2.14(Ubuntu)Amazon EC2 Celada的评论更多信息: memcache服务器的DNS处理由scalr(我用来pipe理云资源的平台)完成。 他们有一个位于实例和他们自己的DNS服务器上的客户端。 /etc/nsswitch.conf – hosts:files dns /etc/resolv.conf:nameserver 172.16.0.23 domain ec2.internal search ec2.internal 该域不在hosts.conf要检查如果我运行nscd我用/etc/init.d/nscd停止,并收到“没有这样的文件”,所以我想我不运行nscd。 谢谢 !

有主机问题,任何人都可以推荐一个解决scheme或其他主机选项?

我有一个PHP / MySQL的Web应用程序,每月大约有60万次点击。 它在过去几个月里一直运行良好,但最近服务器正在崩溃。 记忆崩溃之间的时间更为罕见,但现在在过去的两天里已经坠毁了两次。 运行时,运行速度非常快,我不能经常让网站停止运行。 有没有人有任何想法如何解决我的问题,或有任何build议在另一个Web主机,可能会解决这个问题。 我的服务器设置:非托pipeVPS(512MB专用内存)它运行CentOS,Apache2和PHP 5.2。 我只使用PHP和MySQL运行Web应用程序。 我受欢迎的应用程序是使用cakePHP。 我在这里主持其他网站,但他们没有得到很多的点击。 我需要有自动备份。

在CentosBox上请求第三方(SOAP,Youtube API间歇性失败)

我们的新网站(LAMP)在1and1的专用Centos 6盒子上运行了一个月左右的事件。 从昨晚开始间歇性地(大约10分钟),服务器有问题加载外部第三方资源。 例如,对于我们在第三方使用托pipe数据的search,我们通过SOAP进行访问,并且我们有几个地方可以引入YouTube API供稿。 我硬编码的YouTube的东西,这样就不再是一个问题,但库存search仍然有时轰炸。 当我们检查资源 – 即使在这些“中断”之一,服务器似乎是非常良好的形状,另外,该网站本身没有问题或延迟响应。 我已经联系了1and1,他们确认服务器看起来不错,不能解释中断的原因,除了这是一个“networking问题”。 此外,每当我尝试通过sftp或通过我们的mysql客户端连接时,它会挂起。 我可以安全地认为这是一个networking问题 – 即坏路由器或什么的? 网站是http://www.rocelec.com 提前致谢

Web平台安装程序PHP更新

我已经安装了Microsoft Web Platform Installer v3.0的PHP版本。 在这种情况下,它是5.3.10版本,从那时起版本5.4.0出来了。 我如何使用Microsoft Web Platform Installer来更新PHP的版本? 我似乎无法find任何文件或推荐程序。 这是在Windows Server 2008 R2与IIS 7.5。

将public_html上的文件夹放在共享主机环境中

在我的本地环境中,以下设置在我的index.php文件中工作: $system_path = '../../ci/system/'; $application_folder = '../../ci/application'; 我的文件夹结构如下所示: -ci —system —application -public_html —site —-index.php 这适用于我的本地环境,但是当我上传我的文件时,我收到一条错误消息: Your system folder path does not appear to be set correctly. Please open the following file and correct this: index.php 我尝试了以下内容: $system_path = dirname(__FILE__).'../../ci/system/'; $application_folder = dirname(__FILE__).'../../ci/application';

如何防止htaccess提示通过ajax间接访问文件的身份validation?

首先我的术语可能是错误的,但是当我听到“直接访问”时,我认为有人意味着任何人都已经从url中读取文件的权限。 我对“直接进入”是什么意思的理解是正确的? 我使用htaccess来防止直接访问以下目录(http目录是DocumentRoot /var/www/public_html ) <Directory /var/www/public_html/indirect_access/> AuthType Basic AuthName "Restricted Access" AuthUserFile /passwords/me Require user me </Directory> 我有两个文件 /var/www/public_html/indirect_access/indirect.php <?php echo 'hi'; ?> /var/www/public_html/direct.php <?php include('indirect_access/indirect.php'); ?> 当有人去www.mysite.com/direct.php,浏览器打印“嗨”。 当有人去www.mysite.com/indirect_access/indirect.php他们被提示input用户名和密码。 但是当我改变/var/www/public_html/direct.php的内容来包含一个AJAX请求 $.ajax({ url: "indirect_access/indirect.php", type: "GET", dataType: 'html', success: function(data){ $("body").prepend(data); }, }); 然后我尝试访问www.mysite.com/direct.php,提示input用户名/密码。 是否有可能阻止htpasswd提示通过ajax间接访问文件的身份validation?

使用PHP5.2 + IIS7.5访问networking共享

我正在使用PHP 5.2与IIS7.5。 我有一个networking共享NAS是用户名和密码保护。 我无法禁用或更改NAS上的身份validation信息。 我需要能够通过PHP访问该networking共享。 我做了以下几点: 在用户名和密码与NAS相匹配的Windows中创build新用户。 创build使用相同的身份validation信息的IIS应用程序池。 使用相同的authentication信息,在打开模拟的php应用程序目录内创build一个web.config文件。 identity impersonate =“true”password =“ThePass”userName =“TheUser”/> 在IIS中的应用程序身份validation中启用ASP.NET模拟。 这似乎并没有在php这个简单的代码行: $dir = opendir("\\\\someservername\\somesharename"); 警告:opendir(\ someservername \ somesharename)[function.opendir]:未能打开dir:第7行的C:\ websites \ site \ forum \ testing.php没有错误 所以,我决定用ASP.NETtestingconfiguration。 string[] diretories = System.IO.Directory.GetDirectories("\\\\someservername\\somesharename"); asp.nettesting工作完美。 再往下走兔子洞,我跑了phpinfo()并检查了用户名信息。 在phpinfo的“环境”部分,我find了“USERNAME”项。 它的价值是“用户”,正如我所预期的那样。 一切都指向正确configuration的系统,直到我尝试了: echo get_current_user(); 哪个回来了,“IUSR”。 那肯定不是我所期望的。 这个问题可以很容易地交叉发布到stackoverflow,但我认为这是一个configuration问题。 那么,如何在世界上获得PHP + IIS7.5从外部networking共享读取?