mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-30 11:53:57 +01:00
88 lines
3.1 KiB
Plaintext
88 lines
3.1 KiB
Plaintext
|
<?php
|
||
|
/**************************************************************************\
|
||
|
* phpGroupWare - Experimental tools *
|
||
|
* http://www.phpgroupware.org *
|
||
|
* Written by Joseph Engo <jengo@phpgroupware.org> *
|
||
|
* -------------------------------------------- *
|
||
|
* This program is free software; you can redistribute it and/or modify it *
|
||
|
* under the terms of the GNU General Public License as published by the *
|
||
|
* Free Software Foundation; either version 2 of the License, or (at your *
|
||
|
* option) any later version. *
|
||
|
\**************************************************************************/
|
||
|
|
||
|
/* $Id$ */
|
||
|
|
||
|
/* !!! WARNING !!!
|
||
|
** This is highley experimental! Do NOT run it unless you know what you are doing!
|
||
|
** You can serious screaw things up!
|
||
|
**
|
||
|
** Requirements:
|
||
|
** - Must be run as root
|
||
|
** - You need to have RAM disk support complied into the kernel
|
||
|
** - You have to have the CGI binary for PHP
|
||
|
** - This ONLY works with Linux
|
||
|
** - The 2.2 kernel is limited to 20 RAM disks, so you will have to cut down on what you copy over
|
||
|
** - I wouldn't run this on a server with less then 196 MB of RAM. If it has less, preformance
|
||
|
** will only decrease. Since proccess will need to swap out to disk.
|
||
|
**
|
||
|
** The phpGroupWare development team does not support this program in anyway. If it breaks
|
||
|
** or messes up your system, don't email us. Don't submit bug reports. If you do find ways to make
|
||
|
** it better, please submit patches directly to me. jengo@phpgroupware.org
|
||
|
*/
|
||
|
|
||
|
$debug = True;
|
||
|
|
||
|
// Locations of your perminate copy, you will need it to be setup already
|
||
|
define('HARD_COPY','/home/jengo/public_html');
|
||
|
// Where you want your install to be
|
||
|
define('RAM_COPY','/var/www/html');
|
||
|
|
||
|
function command($command)
|
||
|
{
|
||
|
global $debug;
|
||
|
|
||
|
if ($debug)
|
||
|
{
|
||
|
echo $command . "\n";
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
system($command);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
command('mke2fs /dev/ram0 200');
|
||
|
command('mkdir ' . RAM_COPY . '/phpgroupware');
|
||
|
command('mount -t ext2 /dev/ram0 ' . RAM_COPY . '/phpgroupware');
|
||
|
command('cp ' . HARD_COPY . '/phpgroupware/* ' . RAM_COPY . '/phpgroupware');
|
||
|
|
||
|
$ram_drive_num = 1;
|
||
|
$dh = opendir(HARD_COPY . '/phpgroupware/');
|
||
|
while ($file = readdir($dh))
|
||
|
{
|
||
|
// The 2.2 kernel can only have 20 ram disks
|
||
|
if ($ram_drive_num == 21)
|
||
|
{
|
||
|
exit;
|
||
|
}
|
||
|
|
||
|
if ($file != '.' && $file != '..' && $file != 'CVS' && $file != 'phpgroupware' && is_dir($file))
|
||
|
{
|
||
|
$_du_string = 'du -s ' . HARD_COPY . '/phpgroupware/' . $file;
|
||
|
$_du = `$_du_string`;;
|
||
|
preg_match('/(\w+)\s/',$_du,$du);
|
||
|
$du_size = ereg_replace(' ','',$du[0]);
|
||
|
|
||
|
// Make it slighty larger, so the files copy correctly
|
||
|
$du_size = $du_size + 400;
|
||
|
|
||
|
command('mke2fs /dev/ram' . $ram_drive_num . ' ' . $du_size);
|
||
|
command('mkdir ' . RAM_COPY . '/phpgroupware/' . $file);
|
||
|
command('mount -t ext2 /dev/ram' . $ram_drive_num . ' ' . RAM_COPY . '/phpgroupware/' . $file);
|
||
|
command('cp -R ' . HARD_COPY . '/phpgroupware/' . $file . ' ' . RAM_COPY . '/phpgroupware/' . $file);
|
||
|
|
||
|
$ram_drive_num++;
|
||
|
echo "\n";
|
||
|
}
|
||
|
}
|