Articles of PHP

最佳做法与memcache / php – 多个memcache节点

所以我正在开发一个Web应用程序,这个应用程序必须为可扩展性而构build。 它将频繁的MySQL查询存储到caching中。 我几乎build立了所有的东西,并且准备好了,但我关心的是如何处理数据caching的最佳实践。 我已经和几个人谈过了,其中一个人build议将所有的memcache节点上的每个键/值分开。 意思是如果我存储这个例子:'somekey','这是值' 它会被拆分,让3个memcache服务器。 这是更好的方法吗? 或者是更多的memcachebuild立在1对1的关系上? 例如。 在服务器A上存储值,直到它发生故障 – 到服务器B并在那里存储。 这是我目前对我所做的研究以及与memcache合作的经验。 有人可以请指出我在这个正确的方向,让我知道哪种方式是最好的,或者如果我完全有这种混合起来。 谢谢

如何使一个PHP的crontab沉默

我在Cpanel中设置了一个crontab来运行每分钟。 这工作很好,但我不想每分钟都收到一封电子邮件。 我有第二个cron选项卡,每天运行。 我想要这个标签的回应。 有没有办法告诉crontab无声或只有电子邮件的错误? 我有: * * * * * php /home/public_html/folder/file.php 2>&1 我添加了最后一位2>&1因为我认为它会让它保持沉默。 从Cpanel Docs: 你可以让cron每次运行一个命令发送一封邮件。 如果你不想为单个cron作业发送邮件,你可以像下面这样将命令的输出redirect到/ dev / null:mycommand> / dev / null 2>&1

将url转换为子网域?

我有这个url http://www.example.com/user.php?user=solomon 我想将其转换成 http://solomon.example.com 我怎样才能做到这一点!! 谢谢 :)) ps即时通讯使用plesk

使用rsync从php脚本内部从本地上传文件到远程服务器,而无需input密码

我已经设置了一个公钥来自动为我的用户在远程服务器上login。 所以这是从cli运行没有任何问题: rsync -r -a -v -e "ssh -l user" –delete ~/local/file 111.111.11.111:~/remote/; 但是,当我尝试从PHP脚本(在本地服务器的网页上)运行相同的操作时: $c='rsync -r -a -v -e –log-file=FILE "ssh -l user" –delete ~/local/file 111.111.11.111:~/remote/'; //exec($c,$data); passthru($c,$data); print_r($data); 这是我收到的: 2011/01/23 19:18:29 [6401] rsync: connection unexpectedly closed (0 bytes received so far) [sender] 2011/01/23 19:18:29 [6401] rsync error: unexplained error (code 255) at io.c(601) [sender=3.0.7] […]

MySQL:标题和客户端库次要版本不匹配

我尝试使用PHP连接到数据库时出现此错误: mysql_connect(): Headers and client library minor version mismatch. Headers:50147 Library:50501 而这个警告在phpmyadmin中: Your PHP MySQL library version 5.5.1-m2 differs from your MySQL server version 5.1.54. This may cause unpredictable behavior. 安装软件包: Percona的 – 服务器 – 客户端51-5.1.54-rel12.5.188.rhel5.x86_64 Percona的-SQL共享COMPAT-5.1.43-2.x86_64 Percona的 – 服务器 – 服务器51-5.1.54-rel12.5.188.rhel5.x86_64 Percona的释放,0.0-1.x86_64 PHP版本: PHP 5.3.3 MySQL: mysql Ver 14.14 Distrib 5.1.54 操作系统: Amazon AMI […]

RegEx匹配url格式

我试图想出一个正则expression式来匹配这种格式的任何域: example.com 但不是这样的: subdomain.example.com 目前,它只需要覆盖主要顶级域名(com,net,org),但我希望能够处理其他(如co.uk,com.br等)的灵活性。 到目前为止,我已经得到了这个,但它肯定需要一些工作: ^[^w].*\.[az]{3}.*$ 正则expression式忍者可以帮我吗? 编辑:正则expression式将在PHP中使用,并且由于脚本的设置,从来没有一个协议在string的开始匹配。 我不得不深入脚本以获得更多关于这是为什么的细节,但我相信它只是从PHP $ _SERVERvariables中获取主机名。 编辑2:也许这将涵盖任何东西,除了一段时间,直到匹配的.xyz或.xyz.ab或.xyz.abc ^[^.]+(\.[^.]{3}|\.[^.]{2,3}\.[^.]{2,3}).*$ 编辑3:我已经得到了接近完成的模式: updated below (PHP需要/和/在开始和结束)任何人都可以在执行中打洞? 它似乎按预期工作。 编辑4:这是我目前在哪里: updated below它几乎匹配我想要的,虽然它需要/在文件path的开头,所以example.com不匹配,而example.com/test。 我不能匹配example.com,没有匹配“www.example.com”中的“.exa”。 编辑5:好吧,我们有一个赢家:/ /^[^.]+((\.[^.\/]{1,3}\b){1,2}).*$/ 火柴: example.com example.co.uk example.com/test.php?a=b example.co.uk/test.php?a=b 123.com 1234.com www.123.com(匹配所有域名短于4个字符的url) 不符: www.example.com www.example.co.uk www.example.com/test.php?a=b www.example.co.uk/test.php?a=b test.example.com/test.php?a=b test.example.co.uk/test.php?a=b www.1234.com

Ubuntu PHP5 / Apache2 – 显示500错误而不是错误信息

以下脚本不会向浏览器输出错误消息。 相反,它会导致HTTP错误500响应。 <?php error_reporting(E_ALL); ini_set('display_errors', 'On'); phpinfo(); echo "test" asdf // This should error ?> 想法? 这是在ubuntu上安装一个基本的php5 / apache2。 httpd.conf是空白的,没有.htaccess文件。 error.log文件显示错误消息: 语法错误,意外的T_STRING,期待','或';' 哪个是对的。

MySQL不会出现在PHPInfo中

所以我在我的Linux机器上安装了mysql,我可以使用命令行login到它,我可以创build一个数据库,表,所有这一切 我做了一个phpinfo()脚本并运行它,但似乎没有认识到MySQL已安装,我错过了一个步骤? 信息页返回所有其他信息,这似乎是正确的, 任何build议,将有助于感谢!

奇怪的htaccess问题和PHP拒绝内部请求

我已经添加了 Order Deny,Allow Deny from all allow from *my ip* 到我的htaccess文件,但现在当我使用像getimagesize函数,我尝试从服务器上的本地文件检索数据时出现错误。 错误:[function.getimagesize]:未能打开stream:达到redirect限制 当我删除htaccess中的行它的作品。 我也尝试添加“允许从本地主机”和“允许从127.0.0.1”,但无济于事。

Apache:如何切换到CGI / FastCGI服务器API?

我已经在我的Apache上安装了mod_fastcgi,并将LoadModule放到我的httpd.conf文件中。 当我做一个phpinfo(),mod_fastcgi在加载模块部分,但服务器API仍然显示为Apache 2.0。 请让我知道如何改变这一点。