1

Est ce que l'un d'entre vous a déjà eu à forcer l'utilisation du cache de apache depuis PHP ?

Concrètement, une page met 3 secondes à générer mais elle ne change qu'une fois par semaine, comment forcer apache à conserver la version générée en cache pendant un temps minimum ?

Il reste le contournement générer avec apache et tester si on affiche la page prégénérée ou si on regénère la page mais j'aimerais éviter

Note : l'uri est rigoureusement identique
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

2

Je ne sais pas si c'est réellement possible. Mais pourquoi tu ne fais pas comme certains scripts cgi à une époque ? Ton script PHP générerait une page html en dur avec un cron, comme ça Apache ne traite jamais avec PHP pour cette page (et donc peut utiliser son cache de façon efficace).
avatar

3

Bah justement, c'est la méthode de contournement que je souhaiterais éviter dans la mesure du possible
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

4

(T'as essayé de monter Apache en proxy pour voir si la gestion du cache était plus optimale ? Cela dit, je pense qu'Apache n'utilise pas son cache dès qu'il y a accès à une extension qui dirige vers un système dynamique, tout simplement pour éviter les problèmes de cohérence).
avatar

5

Je ne l'ai jamais utilisé (ni même essayé, donc je ne sais pas si ça répond vraiment à ton besoin), mais quid de mod_cache ?
http://httpd.apache.org/docs/2.2/mod/mod_cache.html
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

6

si tu trouves ça m'intéresse (nous on écrit tout en dur)

mais bon c'est pas génant je trouve d'écrire en dur qd on a 10 changements/jour pour 150k affichages ...
avatar

7

là en l'occurence c'est pour des pages allant de 600ko à 1Mo une fois générées...
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

8

pourquoi tu gères pas toi meme ton cache en PHP ?! comme ca tu ne dépends pas de la config d'apache smile

si ca peut t'aider, voici un fichier php cache.class.php

<?php
if (!defined('__CLASS_CACHE__'))
{
	define('__CLASS_CACHE__', true);
	
	class Cache
	{
		var $fichier	= '';
		var $delai		= 0;
		
		function Cache($file, $time)
		{
			$this->fichier	= $file;
			$this->delai	= $time;	

			if (is_file($this->fichier))
			{
				if (time()- filemtime($this->fichier)<$this->delai)
				{
					echo file_get_contents($this->fichier);					
					exit;
				}
			}
			ob_start(array(&$this,  'make'));
		}
		
		function make($content)
		{
			
			$file = fopen($this->fichier, 'w');
			fwrite($file, $content);
			fclose($file);
			
			return $content;
		}
	}	
}
?>


et voici un exemple d'utilisation :
<?php
	require_once('./cache.class.php');
	$cache = new Cache(dirname(__FILE__).'/index.cch', 10);

	echo date('d/m/Y H:i:s');	
?>
Ancien pseudo : lolo

9

Spipu (./8) :
pourquoi tu gères pas toi meme ton cache en PHP ?!

parce que ça doit marcher avec PHP4
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

10

et?

11

les classes marchent pas en php4
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

12

je comprends rien aux classes et tout ça, ça fait quoi ce script ? grin
avatar

13

(euuuh si, le PHP4 permet de travailler avec des classes d'objets, hein smile pas aussi bien et pas de la même façon qu'en PHP5, mais je pense que çe code doit fonctionner happy).

cf. http://www.php.net/oop
avatar

14

après, si tu fais du caching côté PHP, tu as des classes qui existent déjà.
Genre, en classe PEAR, tu as Cache_Lite : http://pear.php.net/manual/en/package.caching.cache-lite.intro.php
(vu depuis combien de temps ça existe (2002 pour la v0.1), il serait étonnant que ça ne fonctionne pas en PHP 4)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

15

le code que je t'ai écris, c'est du PHP4 smile j'ai fais exprès de l'écrire en PHP4 et pas en PHP5 pour qu'il soit utilisable sur quasi tous les serveurs smile
Ancien pseudo : lolo

16

./1> Je connais pas le contexte exact, mais pour ça en général on utilise des reverse proxy en front ^^

17

[kevin@guinness ~]$ rpm -qa php\*
php-common-5.1.6-15.el5
php-imap-5.1.6-15.el5
php-mbstring-5.1.6-15.el5
php-ldap-5.1.6-15.el5
php-mcrypt-5.1.6-12.el5.centos
php-5.1.6-15.el5
php-pdo-5.1.6-15.el5
php-mysql-5.1.6-15.el5
php-odbc-5.1.6-15.el5
php-pear-1.4.9-4
php-xml-5.1.6-15.el5
php-gd-5.1.6-15.el5
php-xmlrpc-5.1.6-15.el5
php-ncurses-5.1.6-15.el5
php-cli-5.1.6-15.el5
php-devel-5.1.6-15.el5
php-snmp-5.1.6-15.el5

Il n'est pas exploitable sur calcforge.org, votre PHP 4, en tout cas...
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

18

??? comment ca ? le script de ./8 ne marche pas chez toi ?!
Ancien pseudo : lolo

19

Je n'ai pas essayé, si ça utilise des fonctionnalités qui sont toujours là dans PHP 5, ça devrait marcher, mais de toute façon ça ne me sert pas.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

20

Tu veux dire par là que ta contribution ne nous sert pas ?
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

21

pourquoi t'as mis ca alors ?!
Kevin Kofler (./17) :
Il n'est pas exploitable sur calcforge.org, votre PHP 4, en tout cas...


Ancien pseudo : lolo

22

Parce qu'il voulait faire son intéressant en indiquant que sur son serveur, il n'y avait que PHP5 point barre ? cheeky
avatar