Seite 2 von 2

Verfasst: 03.05.2005 20:25
von thompson
itst hat geschrieben:das Cachen des $boardconfig-Arrays, das bei jedem Seitenaufruf neu aus der DB gelesen wird. Den Foren-Aufbau kann auch gut Cachen, ändern der sich ja nur, wenn man Foren hinzufügt, löscht oder die Beschreibung ändert..
ist das irgendwo genauer beschrieben ?
itst hat geschrieben:Aus seiten des Servers ist es dringend angeraten, MySql 4.x mit Query Caches zu benutzen sowie einen PHP Bytecode-Cacher wie Turck MM Cache bzw. den PHP Accelerator. Der Einsatz eines solchen Tools bringt sofort 20-50% mehr Performance bei der Ausführng von PHP-Code. Gerade bei phpBB mit seinen vielen includes knappst ein Bytecode-Cacher eine Menge Ausführungszeit ab.
wo muss man den accelerator installieren ? geht das auf einem webserver bei all-inkl.com ?

Verfasst: 03.05.2005 20:44
von itst
Nein, das habe ich bisher nicht dokumentiert.

Im Grunde fängst Du das Array ab, bevor es nach einer Änderung in die Db geschrieben wird und schreibst es in eine Datei.

Und statt nun bei jedem Seitenaufruf den Kram aus der Db zu lesen, machst Du einen include auf die Datei bzw. liest sie ein.

all-inkl installiert i. d. R. auf den Managed Servern Software auf Wunsch - ob das was kostet und wenn ja wieviel, keine Ahung.

Verfasst: 03.05.2005 21:10
von mr.no-name
@itst: Könntest du da kurz ein How-To draus machen (kannst du dann ja in die KB tun :D ) Wäre nett!

Verfasst: 03.05.2005 21:16
von itst
Wenn ich die Zeit finde, ja. Eventuell am WE, aber ich möchte nix versprechen.

Verfasst: 06.05.2005 12:40
von adidas
@itst, könntest du mir weiterhelfen? Cachen der Jumbbox (http://www.phpbb.de/doku/kb/artikel.php?artikel=110) klappt bei Catogeries Hiarchy nicht :cry:, weil da ein Code von der Catogeries Hiarchy ist und dann kommt diese Fehlermeldung:
Warning: fopen(./cache/jumpbox_categories.data): failed to open stream: Permission denied in /home/www/web/html/includes/functions.php on line 193

Warning: fwrite(): supplied argument is not a valid stream resource in /home/www/web/html/includes/functions.php on line 194

Warning: fclose(): supplied argument is not a valid stream resource in /home/www/web/html/includes/functions.php on line 195

Warning: fopen(./cache/jumpbox_forums.data): failed to open stream: Permission denied in /home/www/web/html/includes/functions.php on line 220

Warning: fwrite(): supplied argument is not a valid stream resource in /home/www/web/html/includes/functions.php on line 221

Warning: fclose(): supplied argument is not a valid stream resource in /home/www/web/html/includes/functions.php on line 222

Warning: fopen(./cache/jumpbox_boxstring.data): failed to open stream: Permission denied in /home/www/web/html/includes/functions.php on line 278

Warning: fwrite(): supplied argument is not a valid stream resource in /home/www/web/html/includes/functions.php on line 279

Warning: fclose(): supplied argument is not a valid stream resource in /home/www/web/html/includes/functions.php on line 280
die Stelle bei functions.php sieht so aus:

Code: Alles auswählen

function make_jumpbox($action, $match_forum_id = 0)
{
	global $template, $userdata, $lang, $db, $nav_links, $phpEx, $SID;

//-- mod : categories hierarchy --------------------------------------------------------------------
//-- add
	return jumpbox($action, $match_forum_id);
//-- fin mod : categories hierarchy ----------------------------------------------------------------

//	$is_auth = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata);

	$sql = "SELECT c.cat_id, c.cat_title, c.cat_order
		FROM " . CATEGORIES_TABLE . " c, " . FORUMS_TABLE . " f
		WHERE f.cat_id = c.cat_id
		GROUP BY c.cat_id, c.cat_title, c.cat_order
		ORDER BY c.cat_order";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, "Couldn't obtain category list.", "", __LINE__, __FILE__, $sql);
	}
	
	$category_rows = array();
	while ( $row = $db->sql_fetchrow($result) )
	{
		$category_rows[] = $row;
	}

	if ( $total_categories = count($category_rows) )
	{
		$sql = "SELECT *
			FROM " . FORUMS_TABLE . "
			ORDER BY cat_id, forum_order";
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not obtain forums information', '', __LINE__, __FILE__, $sql);
		}

		$boxstring = '<select name="' . POST_FORUM_URL . '" onchange="if(this.options[this.selectedIndex].value != -1){ forms[\'jumpbox\'].submit() }"><option value="-1">' . $lang['Select_forum'] . '</option>';

		$forum_rows = array();
		while ( $row = $db->sql_fetchrow($result) )
		{
			$forum_rows[] = $row;
		}

		if ( $total_forums = count($forum_rows) )
		{
			for($i = 0; $i < $total_categories; $i++)
			{
				$boxstring_forums = '';
				for($j = 0; $j < $total_forums; $j++)
				{
					if ( $forum_rows[$j]['cat_id'] == $category_rows[$i]['cat_id'] && $forum_rows[$j]['auth_view'] <= AUTH_REG )
					{

//					if ( $forum_rows[$j]['cat_id'] == $category_rows[$i]['cat_id'] && $is_auth[$forum_rows[$j]['forum_id']]['auth_view'] )
//					{
						$selected = ( $forum_rows[$j]['forum_id'] == $match_forum_id ) ? 'selected="selected"' : '';
						$boxstring_forums .=  '<option value="' . $forum_rows[$j]['forum_id'] . '"' . $selected . '>' . $forum_rows[$j]['forum_name'] . '</option>';

						//
						// Add an array to $nav_links for the Mozilla navigation bar.
						// 'chapter' and 'forum' can create multiple items, therefore we are using a nested array.
						//
						$nav_links['chapter forum'][$forum_rows[$j]['forum_id']] = array (
							'url' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=" . $forum_rows[$j]['forum_id']),
							'title' => $forum_rows[$j]['forum_name']
						);
								
					}
				}

				if ( $boxstring_forums != '' )
				{
					$boxstring .= '<option value="-1">&nbsp;</option>';
					$boxstring .= '<option value="-1">' . $category_rows[$i]['cat_title'] . '</option>';
					$boxstring .= '<option value="-1">----------------</option>';
					$boxstring .= $boxstring_forums;
				}
			}
		}

		$boxstring .= '</select>';
	}
	else
	{
		$boxstring .= '<select name="' . POST_FORUM_URL . '" onchange="if(this.options[this.selectedIndex].value != -1){ forms[\'jumpbox\'].submit() }"></select>';
	}

   // Let the jumpbox work again in sites having additional session id checks. 
//   if ( !empty($SID) ) 
//   { 
      $boxstring .= '<input type="hidden" name="sid" value="' . $userdata['session_id'] . '" />'; 
//   }

	$template->set_filenames(array(
		'jumpbox' => 'jumpbox.tpl')
	);
	$template->assign_vars(array(
		'L_GO' => $lang['Go'],
		'L_JUMP_TO' => $lang['Jump_to'],
		'L_SELECT_FORUM' => $lang['Select_forum'],

		'S_JUMPBOX_SELECT' => $boxstring,
		'S_JUMPBOX_ACTION' => append_sid($action))
	);
	$template->assign_var_from_handle('JUMPBOX', 'jumpbox');

	return;
}

Re: phpBB Optimierungen?

Verfasst: 11.12.2007 15:03
von theMomo
Bei dieser Anleitung verstehe ich folgendes nicht:


In der index.php wird eingefügt:

Code: Alles auswählen

if (!$userdata['session_logged_in'] && $_SERVER['HTTP_USER_AGENT'] != 'Cache-Skript')
{
        readfile('/Pfad/zu/phpbb.de/wget/index.php.html');
        exit;
}
Müsste der Pfad nicht eigentlich in das temp-Verzeichnis führen? So speichert er ja alle sin wget. Wozu habe ich dann das temp? Habe ich da einen Denkfehler?

Danke schon mal.

Verfasst: 11.12.2007 16:08
von larsneo
theMomo hat geschrieben:Müsste der Pfad nicht eigentlich in das temp-Verzeichnis führen? So speichert er ja alle sin wget. Wozu habe ich dann das temp? Habe ich da einen Denkfehler?
rtfm hat geschrieben:Doch zunächst brauchen wir zwei Verzeichnisse für die zwischengespeicherten Dateien. Ich habe im phpBB-Verzeichnis ein Verzeichnis 'wget' erstellt und darin ein Verzeichnis 'temp'. Das Skript wird dafür sorgen, das die Ausgaben von wget in 'temp' landen und von dort eine Etage aufwärts nach 'wget' verschoben werden. Würden wir nur ein Verzeichnis benutzen, müssten wir die Dateien jeweils löschen und neu erstellen lassen, was dazu führen kann, das ein Benutzer gerade in dem Moment, wo die Dateien schon gelöscht, aber die neuen noch nicht erstellt sind, auf sie zugreifen möchte und sich eine Fehlermeldung einhandelt.

Verfasst: 11.12.2007 17:27
von theMomo
Klar, danke. :oops: Da habe ich wohl nur überflogen statt zu lesen.