Articles of PHP

从PHP脚本更新PATHvariables

嗨,我想通过PHP脚本更新Path环境variables。 我使用PHP生成了一个.reg文件。 reg文件的内容看起来像 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment] 'PATH'='c:/abc/test/ImageMagick-6.7.8-Q8/convert.exe' 当我运行这个文件,在最后一步我面临一个错误popup显示 Cannot Import c:\User\qarni\downloads\13633555989_.reg: The specified file is not a registry script. You can only import binary registry files from within the registry script 我试图用setx和我的.bat文件来完成这个任务 @echo off set KeyName=Path set KeyValue="D:\songs;%PATH%" setx %KeyName% %KeyValue% 这个文件运行并在不是系统variables的用户variables中创build一个pathvariables。 任何机构可以指导我这个错误,以及如何处理这种情况? 最好的祝福

如何添加写入权限的PHP / Apache?

我有以下情况: 有一个名为“上传”的文件夹。 它由“根”拥有,它的组是“网站pipe理员”。 权限设置为755。 drwxrwsr-x 2 root webmasters 4096 Mar 20 22:49 upgrade 有了这个设置,我无法在“升级”中通过php创build文件。 如果我将权限更改为777,则可以在升级中创build文件。 但情况是这样的: 我的Apache运行万维网数据。 所以我将网站站长组添加为用户www-data的主要组。 root@mymachine: /var/www# id www-data uid=33(www-data) gid=1002(webmasters) groups=1002(webmasters),33(www-data) 那么为什么我需要将“升级”权限设置为777? 如果文件夹“升级”具有“网站pipe理员”组,并且用户“www-data”具有组/位于组网站pipe理员并且权限被设置为775,则网站pipe理员的所有组成员应该获得“7”应该能够读,写和执行。 我已经重新启动我的机器,所以我确信所有的组分配都被系统正确识别。 那么我做错了什么? 编辑:/ /当我从“网站pipe理员”组更改为“万维网数据”我得到了写权限与775.当我切换回网站pipe理员不起作用。 问题是为什么? 用户www数据在两个组中 – www数据和网站pipe理员。

PDO ODBC错误只是重置连接

试图为CakePHP编写一个ODBC PDO驱动程序 。 好像我越来越近,但是每当一个PDO函数被调用,它不喜欢连接就立即得到重置,我无法得到任何错误信息。 我想这可能是一个可能的configuration设置,但我找不到任何东西。 我不知道这是否会有所帮助,但这里是我正在使用的特定片段: public function fetchResult() { debug($this->_result); if ($row = $this->_result->fetch()) { // ### HERE IS WHERE IT RESETS ### debug($this->_connection->errorInfo()); exit; $resultRow = array(); foreach ($this->map as $col => $meta) { list($table, $column, $type) = $meta; if ($table === 0 && $column === self::ROW_COUNTER) { continue; } $resultRow[$table][$column] = $row[$col]; […]

如何解决PHP应用程序的间歇性高响应时间

我一直在压力testing我的PHP应用程序托pipe在Linux上,并使用Apache。 我正在使用Apache JMeter进行压力testing。 在testing过程中,正常响应时间低于100毫秒。 但是在几分钟后的testing中,对于相同的HTTP请求,响应时间高于响应时间,几分钟后响应时间再次变高。 高达60K毫秒。 我是PHP和Apache的新手。 我不知道从哪里开始寻找问题。 任何人都可以指示我如何解决这个问题? 该应用程序托pipe在Amazon EC2上。 首先我想到的可能是垃圾收集是问题。 我对吗?

PHP-FPM池,subprocess和内存消耗

在我的PHP-FPMconfiguration中,我有3个池,例如:Config是: ;;;;;;;;;;;;;;;;;;;;;;; ; Pool 1 ; ;;;;;;;;;;;;;;;;;;;;;;; [www1] user = www group = www listen = /tmp/php-fpm1.sock; listen.backlog = -1 listen.owner = www listen.group = www listen.mode = 0666 pm = dynamic pm.max_children = 40 pm.start_servers = 6 pm.min_spare_servers = 6 pm.max_spare_servers = 12 pm.max_requests = 250 slowlog = /var/log/php/$pool.log.slow request_slowlog_timeout = 5s request_terminate_timeout = […]

nginx,差分服务器上的php-fpm坏的网关(和安全也)

这是一个多部分的问题。 首先,我有502坏的门户,但我敢肯定,这是因为我下面这些线路之一是错误的。 其次,我很想知道我是如何做'安全明智的'。 我明白,那里的许多指导给了可怕的build议。 我试图聪明地集合所有的知识,但是我很新,所以我可能错过了一些东西。 安全对我来说非常重要,所以如果你喜欢,我会喜欢一个快速而肮脏的“审计”。 对于我的拓扑结构,我正在使用EC2和VPC。 亚马逊Linux AMI。 我有一个弹性负载平衡器,链接到2个nginx服务器。 这些服务器链接到一个单独的php-fpm服务器。 1 nginx服务器被禁用,而我debugging这个。 这是我得到的错误。 我觉得这很奇怪,因为我实际上并10.0.0.94在任何地方使用10.0.0.94 (据我所知)。 我正在使用* .210和* .248。 2013/03/27 14:33:10 [error] 2724#0: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 10.0.0.94, server: www.example.com, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://10.0.0.210:9001", host: "xxx.us-east-1.elb.amazonaws.com" 编辑:有一件事我忘了提及。 我认为,因为php-fpm是一个单独的服务器,我读了我必须有相同的文件作为nginx服务器。 我没有rsync或任何设置尚未…我只是上传一个简单的index.php文件到/var/www/html/example.com/index.php作为一个testing。 服务器1和2(nginx) nginx.conf # Run as a less […]

如何跨分区使用PHP的readfile()?

我一直在努力让PHP的readfile()正常工作。 深入了解所有选项后,事实certificate,当我尝试打开位于另一个分区上的文件时,我无法使其工作。 我的webroot文件夹位于根分区( /webroot )下,我想访问位于/home下的文件。 权限就好了 open_basedir被禁用 如果我将相同的文件夹和文件移动到/下的文件夹中,那么它们都可以工作,但是如果它位于/home ,那么它就不能工作了。 权限是777和该文件夹的所有者是Apache,所以它不是一个文件权限问题。 这是我的fstab: # /dev/sda1 UUID=… / ext4 rw,relatime,data=ordered 0 1 # /dev/sda6 UUID=… /home ext4 rw,relatime,data=ordered 0 2 我得到的错误是: Warning: readfile(/home/files/1.txt): failed to open stream: Permission denied in /webroot/download.php 我没有在文档中发现任何与分区相关的限制。 我的日志文件也没有指出任何特定的错误。 我没有安装selinux。 编辑:open_basedir是没有错。 我已经彻底检查过了。 通过特别包括处于危险中的文件夹,以及通过注释掉整个open_basedir指令。 另外,如果我强制open_basedir错误,那么实际的错误信息是不同的。 当前open_basedir设置: http://i.stack.imgur.com/AXe7T.png 使用Arch Linux,PHP 5.4.13 任何想法这可能是什么?

在Ubuntu服务器12.04 Crontab不运行,因为它应该(PHP脚本)

我有一个PHP脚本从一些服务器下载和操作图像,然后保存在本地。 因为图像每5分钟更新一次,所以我想每5分钟下载并保存一次图像。 如果我从浏览器或控制台运行脚本它运行完美,如果它从crontab运行图像不创build。 logPHP.log文件创build时出现错误。 crontab的: */5 * * * * /usr/bin/php5 -f /var/www/radar/radar.php > /var/www/logPHP.log 编辑: 我得到的错误: PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/intl.so' – /usr/lib/php5/20090626+lfs/intl.so: cannot open shared object file: No such file or directory in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/pspell.so' – […]

apache简单重写规则或重写查询string的条件

我试图添加一个重写规则到我的htcaccess文件和有问题的部分是查询string。 我想将查询string参数pid添加到重写规则中。 这两行代码不起作用,如何为您设置查询string是重写规则。 RewriteRule browse/(.*)/?pid=(/d+) show_products.php?department=$1&pid=$2 RewriteRule browse/(.*)/?pid=([0-9]+) show_products.php?department=$1&pid=$2 应该看起来像 http://mysite.com/browse/department?pid=1 要么 http://mysite.com/browse/department/?pid=1 我已经做到了这一点,但它没有问号有没有人知道如何得到它有问号 RewriteCond %{QUERY_STRING} ^$ RewriteRule browse/(.*)/pid=([0-9]+)$ show_products.php?department=$1&pid=$2 http://mysite.com/browse/department/pid=1

需要什么权限的PHP?

我想检查postfix活动队列。 我使用的PHP脚本 $active = shell_exec('/bin/ls -1 /var/spool/postfix/active | /usr/bin/wc -l'); 但在日志中我看到 /bin/ls: cannot open directory /var/spool/postfix/active: Permission denied 我需要添加php或者postfix来避免这个错误?