Articles of PHP的

如何在我的PHP应用程序中显示Web根目录以外的图像?

我有PHP使用Apache服务器,Linux的Web应用程序。 出于某种安全原因,我将文档和图像保存在Web根目录之外。 如何在用户login时显示这些图像。

如何从PHP文件重新启动Linux

我在我的linux系统上有一个用户brftv,我有运行nginx的www-data。 从terminal我可以让我的brftv用户运行 sudo /sbin/reboot 并且它工作正常,因为我将以下内容添加到我的/ etc / sudoers文件的“#user特权规范”部分中: brftv ALL=NOPASSWD: /sbin/halt, /sbin/reboot, /sbin/poweroff www-data ALL=NOPASSWD: /sbin/halt, /sbin/reboot, /sbin/poweroff 但是,当我的PHP文件运行下面的代码,没有任何反应 exec('nohup sudo -u brftv /sbin/reboot'); 我添加了www数据行到上面的etc / sudoers以防万一有必要的时候运行上面的exec()(尽pipe我运行它为-u brftv,但是我不是Linux专家,只是认为最好是安全的以防万一)。 运行这个exec()的php文件属于www-data,而chmod是777,因此所有这些文件都应该有权执行。 我已经尝试通过浏览器运行php文件(将由用户www数据运行),并从terminal$ php myFile.php 。 ——————-更新—————– 我做到了 sudo chmod us /sbin/reboot 这允许我的系统上的所有用户运行重新启动cmd没有密码。 它的工作,但我宁愿不把它打开,所以与/ etc / sudoers的其他解决scheme会更好,如果有人会提示我的问题是什么… 我跟着这个啧啧http://linux.byexamples.com/archives/315/how-to-shutdown-and-reboot-without-sudo-password/第二个例子几乎是我得到的上面没有工作为了我..

如何设置一个PHP守护进程?

我将在php中编写我的第一个守护进程,我有几个非常基本的问题,我需要帮助。 需要在我的Linux服务器上安装哪些软件包,以及是否需要启用PHP中的任何内容? 到目前为止,我已经得到了这个 – http://pear.php.net/package/System_Daemon/download 我在服务器上保存我的守护进程文件? 我有一些需要包含在守护进程中的文件,这些文件包含通过IMAP收集电子邮件和附件的类和函数。 所有这些文件都在我的Web公共目录中,我如何将这些文件包含在我的守护进程中? 我认为这是我需要开始的一切。 非常感谢!

使用PHP 5.3.x进行安全删除

有人知道一个好的PHP解决scheme删除或更好地从Linux系统擦除文件? 场景:文件被encryption并保存,当请求下载文件被复制到临时文件夹并被解密时。 这已经在工作了。 但是如何在发送给用户之后从临时位置删除文件呢? 在我看来,我有以下select: 通过“fopen”打开文件,并写入0,1(认为很慢) 将文件保存到Memcache而不是硬盘(可能是我的主机的问题) 在命令行或cronjob上使用somd 3rd pary工具(可能是安装问题) 目标:从硬盘上删除文件,无法恢复(擦除/覆盖)

Godaddy主机上的CakePHP控制台

我一直在努力让我的CakePHP网站在Godaddy“网格托pipe”帐户上工作。 我的蛋糕应用程序安装在帐户的子目录中,可以通过子域访问。 我不得不调整我的.htaccess文件来使这个工作,现在我需要让CakePHP控制台在这个环境中工作。 我在Amazon EC2服务上托pipe的Ubuntu服务器上安装了相同的蛋糕应用程序。 基本上一个简单的Ubuntu LAMP安装程序。 CakePHP控制台在此环境中按预期工作。 当我尝试在Godaddy上运行控制台时,我收到以下消息: CakePHP控制台:此文件加载不正确,无法继续。请确保/ cake / console在您的系统path中,并检查手册是否正确使用此命令( http://manual.cakephp.org/)。 ) 我已经开始在cake / console / cake.php中添加一些debugging代码来了解发生了什么。 在godaddy网站上,当我在第183行回显print_r($this->args) ,发现数组是空的。 当我在我的Ubuntu EC2实例上这样做时,我得到这个: Array ( [0] => /var/www/www.directory.sdcweb.org/htdocs/cake/console/cake.php ) 它看起来像godaddy的命令行PHP不通过bash shell命令行参数。 有没有人有一些build议,我可能会得到CakePHP控制台上Godaddy的工作? 调用Cake shell的bash脚本包含以下内容 LIB=${0/%cake/} APP=`pwd` exec php -q ${LIB}cake.php -working "${APP}" "$@" exit; 我在想,修改这个脚本可能会解决这个问题。

file_put_contents不创buildtxt文件

我目前有一个PHP脚本,当浏览器浏览器浏览到网页时正在运行。 我想要做的是编写一个文本文件,当脚本运行存储一个variables。 该文件夹的所有者是Apache,但每个人都已经阅读写,严格的testing目的。 (我认为这可能是一个权限问题)在服务器上启用SELINUX,当我从控制台运行脚本时,它会创build文本文件,并且在正确的目录中。 file_put_contents("My working file location", $myString); 我使用这一行来尝试编写和创build文本文件,我知道我的文件位置工作,因为我可以运行它,并在离线模式下创build它,IE通过控制台运行它。 问题是我试图写的variables是通过HTTP Post填充的,当我通过浏览器运行脚本,或者当Apache运行脚本时,它不会写入或创build文件。 我需要做什么来允许访问写/改变语法来获得这个脚本来写这个文本文件?

PHP is_writable()函数对于可写目录总是返回false

我正在尝试在使用yum安装Apache 2.4.6和PHP 5.4.16的Red Hat 7 Amazon EC2实例(ami-8cff51fb)中安装基于PHP的软件包。 安装失败,因为它表示一个特定的目录需要由具有0755或0775权限的Web服务器写入。 有问题的目录具有root:apache权限的0775权限root:apache所有权。 我已经validation了httpd进程正在由apache用户运行,并且apache用户是apache组的成员。 如果我编辑/etc/passwd临时给apache用户一个loginshell然后su到那个帐户,我可以使用touch命令在目录内以apache用户的方式手动创build文件。 我查看了安装程序脚本的源代码,发现它失败了,因为PHP的is_writable()函数正在为有问题的目录返回false。 我创build了一个单独的testingPHP脚本来隔离和validation我看到的行为: <?php $dir = '/var/www/html/limesurvey/tmp'; if (is_writable($dir)) { echo $dir, ' is writable'; } else { echo $dir, ' is NOT writable'; } ?> 这将输出NOT可写消息。 如果我将$dir改为/tmp那么它正确地输出那个/tmp是可写的。 如果我将目录权限更改为0777和/或将所有权更改为apache:apache则PHP仍然报告该目录不可写。 我甚至尝试创build一个具有相同权限和所有权的/test目录,我的testing脚本仍然报告它不可写。 我真的无法解释这种行为,所以任何想法都会受到欢迎! 提前致谢。 下面给出了/var/www/html/limesurvey的目录列表。 根据Lime Survey的安装说明 , tmp和upload目录拥有0775权限。 test.php是我上面提到的testing脚本。 [ec2-user@ip-xx-xx-xxx limesurvey]$ pwd /var/www/html/limesurvey [ec2-user@ip-xx-xx-xxx limesurvey]$ ls […]

在Sh / Bash和php中parsingconfiguration参数的最佳/最简单的方法

我得到了每个PHP项目(大约25!),一些sh脚本,可以帮助我进行部署,回购同步,数据库导出/导出等常规任务。 sh脚本对于我pipe理的所有项目都是相同的,所以必须有一个configuration文件来存储依赖项目的不同参数: # example conf, the sintaxys only needs to be able to have comments and be easy to edit. host=www.host.com administrator_email=guill@company.com password=xxx 我只需要find一个干净的方式,从sh脚本中读取(parsing)这个configuration文件,同时也可以从我的PHP脚本中读取相同的参数。 无需使用XML。 你知道这个好的解决scheme吗? 吉列尔莫

停止打印php错误信息到浏览器

我使用PHP 5.3,CentOS 6.2,httpd 2.2.15,NetBeans 7.0.1(通过ftp远程运行)。 我想停止向浏览器打印错误消息,这足以打印到httpd的error_log。 我认为做try / catch我会决定如何处理错误,但它仍然打印到error_log和浏览器。 function smic_gettext($phrase){ try{ $tr_text = $this->language_array[$phrase]; } catch(Exception $e){ error_log("Couldn't find any entry in the translation file for ".$phrase.". ".$e); return $phrase; } return $tr_text; } 我应该如何configuration才能阻止这种行为? 我曾尝试在php.ini中设置display_errors = Off和display_errors = 0。 没有区别(我没有重启httpd)。

在Ubuntu 16.04 Xenial和apache上安装php 5.3或5.4

我想在Ubuntu 16.04 Xenial和Apache上安装php 5.3或5.4。 一个教程指出我使用PPA,但他们没有帮助我需要什么。 我知道PHP 5.3和4已经过时,但我需要这个项目,这可能吗? 如果是的话,请教我如何在一步一步的程序与Apache2。