Articles of PHP

使用crontab删除由apache用户创build的tmp文件夹文件

目前,我已经设置了这样一个用户可以从我的网站下载zip文件,并将其存储在/tmp/zip_file_dir/ 。 PHP脚本首先使用ftp_get()从我的CDN下载它们,然后将它们放在该文件夹中,如/tmp/zip_file_dir/random_hash_folder/file_here.zip 。 然后,我只需使用readfile()为用户启动下载。 这一切工作正常。 不过,我后来用cronjob清除这个文件夹(脚本删除readfile()后的下载,但是如果用户取消下载脚本,文件不会被删除,因此cronjob的要点清理这些)。 file_here.zip文件拥有所有者apache的权限-rw-r–r– file_here.zip 。 random_hash_folder中的每个random_hash_folder具有所有者apache的权限drwxr-xr-x 。 cronjob只是扫描zip_file_dir,并使用rmdir()和unlink()删除文件。 cronjob由用户通过sudo访问服务器来运行(即比apache用户更多的权限和能力)。 但是,当我试图删除文件时,我总是得到PHP“Permission denied”通知。 我已经尝试添加运行cron作业的sudo用户到apache以及我的一些Google研究中其他地方提到的nobody组,但这并没有给我带来任何好运。 任何想法如何让这个cronjob删除这些文件? 编辑:我正在使用RHEL。

我正在使用mod_rewrite,并使用重写规则,有没有办法让我得到的URL在地址栏服务器端看到?

我可以重build实际的URL后重写规则,但是有没有办法让我获得URL预重写规则? 另外,当我在IIS 7.5中运行php,并在web.config中重写规则时,如何在我的php中获得预重写URL?

我可以安装JAVA在同一个Linux或unix服务器上的PHP已经安装和托pipe网站没有任何问题?

我需要在已安装PHP并托pipe网站的服务器上安装Java。 我需要在同一台服务器上的Javavalidation我的XML文件的Schematron业务规则validation,如果我在同一台服务器上安装Java会产生任何问题吗?

WordPress发布时很慢

我有一个超过219k的post的Wordpress网站,每当我发布一些我的CPU / MySQL使用率达到100%。 我真的不知道为什么,因为我的整个网站整天使用率保持在6%,而且只有一个新post出现。 是的,我使用W3超级caching,但问题是在WP – pipe理本身! 我已经使用mysqltuner来优化MySQL …但是,就像我已经说过的,只有在发布新post时才会出现问题。 我在亚马逊AWS上使用两个云托pipe博客。 MySQL云是m1.medium ,Web Server是m1.xlarge 。 下面是我的CPU的graphics,正如你所看到的,我同时在两个云上都有尖峰…这些尖峰发生在我发布一个新post的时候。 绿线是MySQL , 蓝线是Web服务器 。 在这里你可以看到graphics: http : //i.stack.imgur.com/PReQP.png 如果没有人能够帮助我解决这个问题,那么我想要一些东西来“检查”代码… WordPress的整个过程是如此丑陋以至于我无法理解新post是如何工作的。 我想debugging查询/function或类似的东西。 谢谢!

是否有可能运行在Virtualbox实例之外的PHP文件?

我使用Vagrant和Puppet重新创build我的实时VPS,我想在本地testing我的PHP文件。 我有OSX所以在开发过程中,我使用的Apache服务器,但我想在virtualbox上使用相同的PHP文件,而不是复制它们。

适当的linux权限的图像上传,以允许删除和重新上传

我应该设置什么样的权限,以及如何允许apache覆盖上传的图像,删除它们并重新上传它们,以及允许将基础文件夹的权限传递给新上传的文件(如果这是正确的方法)? 我的图片直接是,例如:/ images / subset1 / / images / subset2 / / images / subset3 / 相当标准,图像上传到每个子集文件夹。

无法从浏览器访问LocalHost

我已经通过使用以下命令在centos 6.3上安装了apache2&php 5.3x: yum install httpd yum install php 现在我试图从我的本地机器浏览器访问使用以下的URL的PHP​​页面: Http://LocalIpOfServer/info.php 我不能从浏览器访问我的上面的PHP页面,当我检查Apache日志,它不显示任何命中,虽然我连接到本地服务器..但我可以看到一些文本,当我从中央的命令行访问它: lynx > Http://localip/info.php 我无法理解为什么我可以访问这个网页,即使安装了PHP和Apache也工作..

使用IP地址发布testing网站迁移

我正在将几个网站迁移到新的服务器上。 虽然数据传输本身是正常的 – 我遇到了问题在新的硬件设置testing网站。 通常,这是在做任何DNS更改之前完成的,并且可以通过直接访问IP地址来完成。 然而,我当前的问题在于我的新服务器(或者全部)如何在使用PHP $ _SERVER ['DOCUMENT_ROOT']的同时处理拉CSS(和其他)文件。 位置是正确的(使用当然的IP地址),但由于某些原因的CSS文件没有加载。 当我尝试直接访问css文件(使用IP作为根),我得到403 Forbidden错误。 我也修改了我的本地Windows主机文件,以识别映射到站点IP地址的testing地址。 尝试使用IP地址时,这是常见的吗? 有没有办法可以testing? 更新 看看error_log,我看到几个文件回滚的错误: 客户端被服务器configuration拒绝 其次是实际的文件名称。 发现问题(*) 我发现这个问题与我的.htaccess文件有关,尽pipe不太清楚为什么。 这是我以前的服务器上使用的相同的设置。 AuthType Basic AuthName "Protected Area" AuthUserFile /var/www/vhosts/site.com/.htpasswd Require valid-user order deny,allow deny from all allow from … (list of different ip addresses) Satisfy Any

从脚本更改php的自动附加文件

我正在使用php config auto-append-file追加我需要在特定域的所有页面上执行的代码。 但我的问题是,有其他域共享相同的php.ini文件,所以我想知道是否有一种方法来指定一个特定的域。 我已经尝试使用ini_set()设置configuration,但没有做出改变, phpinfo()证实这失败了。 我也尝试通过php_value内部.htaccess文件,但返回505内部服务器错误,我不知道为什么。 任何想法,我怎么能做到这一点? 提前致谢 PS:我主要是想附加在所有托pipe的域名上的文件,除了一个。 所以我想是通过php.ini设置它,然后重置它为我不想要的域,因为它会快得多。

CentOS 5上的PHP 5.4 – GD不工作

我安装了PHP 5.4: rpm -qa | grep php php-common-5.4.6-1.el5.remi php-5.4.6-1.el5.remi php-cli-5.4.6-1.el5.remi 这是我的php-m输出: php -m PHP Warning: PHP Startup: curl: Unable to initialize module Module compiled with module API=20090626, debug=0, thread-safety=0 PHP compiled with module API=20060613, debug=0, thread-safety=0 These options need to match in Unknown on line 0 PHP Warning: PHP Startup: fileinfo: Unable to initialize module […]