Articles of PHP

我的服务器发送垃圾邮件

我有一个从godaddy.com安装CentOS + MySQL的专用服务器。 最近我有一些非常奇怪的问题:我安装了一个PHP应用程序,它有一个线程查询MySQL数据库的电子邮件地址,然后通过sendmail命令发送电子邮件。 后来我停止了该线程,删除了程序源文件,并重新启动了我的服务器。 但是,我的服务器仍然发送了大量的电子邮件,现在就像垃圾邮件服务器一样工作。 在尝试打开我的网站时,我也看到了MySQL错误,这个错误有几次像“连接太多”。 我的看法是,有些东西在慢慢消耗掉MySQL连接,但从不断开,所以最终所有的连接都被占用了,我的网站也停止了运行。 以下是我所做的: 我在服务器上检查了我的cron作业,但没有发现任何与此问题有关的事情 我检查了/ var / log / maillog,发现了以下典型的片段: Mar 30 18:25:57 ip-<my-server-ip> master[2501]: process 8739 exited, status 0 Mar 30 18:34:40 ip-<my-server-ip> postfix/pickup[7556]: D44BCF280BE: uid=48 from=<apache> Mar 30 18:34:40 ip-<my-server-ip> postfix/cleanup[9426]: D44BCF280BE: message-id=<20110330223440.D44BCF280BE@ip-<my-server-ip>.ip.secureserver.net> Mar 30 18:34:40 ip-<my-server-ip> postfix/qmgr[29799]: D44BCF280BE: from=<apache@ip-<my-server-ip>.ip.secureserver.net>, size=1661, nrcpt=1 (queue active) Mar 30 18:34:40 […]

如何在Ubuntu上创build虚拟主机?

我想在Ubuntu上创build虚拟主机。 我使用的是Ubuntu和Apache服务器。 例如,我有两个这样的文件: /var/www/project1/index.php /var/www/project2/index.php 我希望当我在浏览器中使用project1.dev时 ,它应该指向/var/www/project1/index.php 和 如果我在浏览器中使用project2.dev ,那么它应该指向/var/www/project2/index.php 我已经尝试了一些文章,但有很多的信息,我无法运行它。 我是Ubuntu的新手,有人能告诉我确切的观点和命令吗? 谢谢

需要帮助启动lighttpd

今天我在我的CentOS 5.6机器上安装了lighttpd,试图取代httpd。 我做的事情: yum install lighttpd nano /etc/lighttpd/lighttpd.conf 我将文档根目录设置为我的文件 service lighttpd start – [root @ forums〜]#启动lighttpd:2011-05-20 18:52:34:(network.c.203)socket失败:协议不支持地址族 启动lighttpd:2011-05-20 18:52:34:(network.c.203)套接字失败:协议不支持地址族 我怎样才能解决这个问题? 我真的想为我的论坛尝试lighttpd,但我不能让它开始。 有人能帮助我吗?

phpMyAdmin文件不能被读取

每当我尝试上传文件导入到phpMyAdmin我得到以下错误: 文件无法读取 phpMyAdmin是我在我的服务器上运行的唯一的PHP脚本,因此我的PHPconfiguration文件是相当香草,除了以下更改: upload_tmp_dir = /tmp upload_max_filesize = 10M post_max_size = 50M memory_limit = 64M 我想导入的文件是4MB,正好在10MB的上传大小和50MB的文件大小(也是UTF-8)。 设置upload_tmp_dir实际上解决了我以前遇到的问题(phpMyAdmin在抱怨我甚至没有指定文件),或者至less将错误更改为我现在正在获取的内容。 / tmp的权限是777。 问题是什么? 该文件来自hostmonster上的cpanel安装我正在迁移到我自己的vps。 我已经尝试从cpanel备份实用程序获取sql文件,并从他们的安装phpMyAdmin(无压缩和gzipped)。 我不相信这些文件是损坏的。 额外信息:我正在运行CentOS 5.6,phpMyAdmin 3.4.2,mysql 5.1.52和php 5.2.16。

在CentOS 5.4上将PHP从5.1升级到5.2

我正在尝试在CentOS 5.4上将php 5.1升级到5.2 我用: yum upgrade php 结果是这样(查看最后一部分): [root@mail httpd]# yum update php Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * addons: mirror.raystedman.net * base: mirrors.serveraxis.net * centosplus: mirrors.tummy.com * contrib: mirror.raystedman.net * extras: mirror.raystedman.net * updates: mirrors.netdna.com Setting up Update Process Resolving Dependencies –> Running transaction check –> Processing Dependency: php = […]

检查PHP hack脚本

我在朋友的networking服务器上find了一些已经被黑客加载的PHP脚本。 实际的代码被隐藏使用几层encryption如下。 他们有一个巨大的string分配给一个variables$str 。 然后他们使用下面这行来解密string并运行代码eval(gzinflate(str_rot13(base64_decode($str)))); 他们不能运行代码,因为有一个.htaccess文件阻止从该文件夹执行脚本,这是一个临时性的修复。 不过,我对这个脚本的解密内容感到好奇。 我想看看它在做什么,因为这可能会提供有关系统中可能存在的漏洞的线索。 我怎样才能安全地做到这一点,而不暴露系统的预期攻击? 我可以安全地把这个在运行在pc上的linux echo(gzinflate(str_rot13(base64_decode($str))));同时改变上面的语句echo(gzinflate(str_rot13(base64_decode($str)))); ?

在httpd.conf和/或php.ini文件上的性能:通用注释?

任何人都可以validation有性能的原因排除“通用”评论从httpd.conf或php.ini? 就我个人而言,我发现告诫和相关的混乱比其他任何事情都更加分散注意力,但是我无法想象它会带来很大的性能问题,因为我不认为除了在启动时它们是被读取的。 我想标准化,只是包括真实的configuration评论和废除cruft,不能想到任何理由为什么它不应该罚款。

绑定到LDAP使用SSL保持失败 – Windows Server 2008

我们的脚本在尝试使用SSL绑定到LDAP(活动目录)时会继续失败,我很难过。 我们可以使用不安全的方法成功连接,但是我们正试图执行需要SSL的密码更改。 我们的脚本片段如下: config.php文件 // SSL $LDAPDOMAIN="dc=campus,dc=local"; $LDAPLOCALDOMAIN="campus.local"; $LDAPHOST='ldaps://localhost'; $LDAPPORT=636; $ldap = ldap_connect($LDAPHOST, $LDAPPORT) or die ('<p class="message">Error connecting'); ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3); ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0); reset.php(使用config.php) if ($ldap) { $bind = @ldap_bind($ldap,$username."@".$LDAPLOCALDOMAIN,$password); if (!($bind)) { @ldap_close($ldap); die ('<p class="message">Your password is incorrect, please try again <a href=javascript:history.back()>click here</a><br>'); } 无论我们做什么,剧本都会在reset.php中“死亡”。 当我们使用正规的LDAP时,我们至less可以沟通。 我们的config.php代码如下: $ldap = ldap_connect($LDAPHOST) […]

无法login到phpMyAdmin

安装后我无法login到phpMyAdmin。 这是我的config.inc.php文件。 我在做什么明显错误? 对不起,这是我第一次处理PHP,MySQL等。感谢您的帮助! <?php /* vim: set expandtab sw=4 ts=4 sts=4: */ /** * phpMyAdmin sample configuration, you can use it as base for * manual configuration. For easier setup you can use setup/ * * All directives are explained in Documentation.html and on phpMyAdmin * wiki <http://wiki.phpmyadmin.net>. * * @package phpMyAdmin */ /* […]

是否有可能从PHP重新加载httpd

我有一个运行在CentOS 5.5 64位LAMP服务器,并希望在新的子域名后重新加载我的httpd服务。 我有3个服务器安装到我的networking服务器,并根据每个挂载的服务器有什么资源我创build新的用户帐户,并将其添加到可用的服务器。 例如,当用户注册并需要5GB的空间时,我的PHP脚本会search我的挂载服务器,看看他们是否为新用户开放了分配插槽。 如果没有,则移动到下一个服务器,依此类推。 所以根据服务器,他们最终创build一个新的conf文件,以反映该服务器作为他们的DocumentRoot 问题是,我需要手动重新加载httpd服务后,每个子域创build一个特定的用户。 我试图find一种方法来一旦用户注册httpd服务重新加载。 目前我正在尝试这个: system("/bin/echo '/sbin/service httpd reload > /dev/null 2>&1' | /usr/bin/at now"); 我的httpd服务位于/etc/init.d/httpd