meta données pour cette page
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
dokuwiki:php-chez-free [2012/05/27 10:50] ztrulphcs [Solutions] |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== php chez free ====== | ||
- | |||
- | J' | ||
- | |||
- | Références : | ||
- | * http:// | ||
- | * http:// | ||
- | * http:// | ||
- | * http:// | ||
- | |||
- | Cette page indique comment modifier en général les applications PHP pour qu' | ||
- | |||
- | En ce qui concerne [[doku> | ||
- | |||
- | Une dernière chose, globalement, | ||
- | |||
- | Bonne lecture | ||
- | ===== version de PHP ===== | ||
- | |||
- | Par défaut, php 4 est activé. [[http:// | ||
- | <code .htaccess> | ||
- | php 1 | ||
- | </ | ||
- | |||
- | Remarquez que [[http:// | ||
- | |||
- | On peut créer ce fichier à la racine du site, pour activer globalement php 5, ou dans le répertoire de l' | ||
- | |||
- | J'ai créé ce fichier, et voilà [[envrac: | ||
- | ==== solution pour version ==== | ||
- | |||
- | Le mieux est d' | ||
- | |||
- | ===== sessions ===== | ||
- | |||
- | Pour que les sessions PHP fonctionnent -- et c'est **indispensable** pour les << | ||
- | |||
- | ==== solution pour session ==== | ||
- | |||
- | Créer un répertoire '' | ||
- | ===== include_path ===== | ||
- | |||
- | On ne peut pas changer l%%' | ||
- | |||
- | La fonction '' | ||
- | |||
- | L%%' | ||
- | votre_foyer/ | ||
- | | ||
- | Soit, par exemple, pour un utilisateur toto : | ||
- | / | ||
- | |||
- | ==== Solutions pour include_path ==== | ||
- | |||
- | Plusieurs solutions sont possible dans ce cas, | ||
- | * Dans les fichiers '' | ||
- | * Créer un répertoire '' | ||
- | * installer les fichiers devant être inclus dans le même répertoire que le fichier utilisant les fonctions '' | ||
- | ===== .htaccess ===== | ||
- | |||
- | - On ne peut pas utiliser la directive '' | ||
- | - La syntaxe pour protéger un dossier par mot de passe est peu courante. La plupart des utilitaires PHP ne la connaisse pas et ne peuvent pas la générer. Si vous devez protéger certains dossiers par mot de passe, faite le à la main en respectant < | ||
- | - On peut utiliser des directives conditionnelles. Supposons, que vous ayez le même fichier .htaccess chez free et chez un autre hébergeur, la différence de syntaxe va vous embêter. Utilisez alors des ''< | ||
- | < | ||
- | PHP 1 | ||
- | </ | ||
- | < | ||
- | | ||
- | </ | ||
- | </ | ||
- | ===== fonction glob() ===== | ||
- | |||
- | Pour une raison mystérieuse(( en fait, comme indiqué [[http:// | ||
- | |||
- | glob ne fait **pas** partie de la terrible // | ||
- | ==== contournement pour glob() ==== | ||
- | |||
- | Il faudra **modifier** tous les fichiers PHP qui contiennent un appel à '' | ||
- | ++++ fonction myglob()| | ||
- | <code php> | ||
- | function myglob( $patt, $drp=0 ) { | ||
- | $dir=dirname( $patt ); | ||
- | $pat=basename( $patt ); | ||
- | $md=($drp & GLOB_MARK)==GLOB_MARK; | ||
- | $reponse=array(); | ||
- | if (is_dir($dir) && ($d = @opendir($dir))) { | ||
- | $gl = array( ',/,', | ||
- | $re = array( ' | ||
- | $newpat=preg_replace( $gl, $re, $pat ); | ||
- | while (($filename = @readdir($d)) !== false) { | ||
- | if( $filename == ' | ||
- | continue; | ||
- | if( preg_match( $newpat, $filename )) { | ||
- | $reponse[]= $dir . '/' | ||
- | } | ||
- | } | ||
- | } | ||
- | if(($drp & GLOB_NOCHECK)&& | ||
- | return array($patt); | ||
- | if($drp & GLOB_NOSORT) | ||
- | return $reponse; | ||
- | sort( $reponse ); | ||
- | return $reponse; | ||
- | } | ||
- | </ | ||
- | ++++ | ||
- | |||
- | ===== fonction rmdir() ===== | ||
- | |||
- | Pour une raison mystérieuse, | ||
- | |||
- | rmdir fait partie de la terrible // | ||
- | ==== contournement pour rmdir() ==== | ||
- | |||
- | En fouillant un peu le web, on trouve que la fonction '' | ||
- | |||
- | ++++ fonction myrmdir()| | ||
- | |||
- | Cette fonction a le même comportement que la fonction '' | ||
- | * Si on tente de l' | ||
- | * si le dossier n'est pas vide, elle renvoie '' | ||
- | <code php> | ||
- | $freefrdirtrash=$_SERVER[' | ||
- | function myrmdir( $d ) { | ||
- | global $freefrdirtrash; | ||
- | if(!is_dir($d)) | ||
- | return false; | ||
- | $h=opendir($d); | ||
- | while(false!==($s=readdir($h))) { | ||
- | if( $s != ' | ||
- | closedir($h); | ||
- | return false; | ||
- | } | ||
- | } | ||
- | closedir($h); | ||
- | return rename($d, $freefrdirtrash); | ||
- | } | ||
- | </ | ||
- | ++++ | ||
- | ===== fonction umask() ===== | ||
- | |||
- | umask fait partie de la terrible // | ||
- | |||
- | La fonction '' | ||
- | |||
- | <code php> | ||
- | // make file executable, obey umask | ||
- | $mode = fileperms($v_header[' | ||
- | </ | ||
- | |||
- | ==== contournement pour umask() ==== | ||
- | |||
- | Pour les appels à '' | ||
- | |||
- | Ce qu'on peut faire pour rendre les expressions valide, et faire en sorte que le programme n'ait plus d' | ||
- | |||
- | |||
- | <code php> | ||
- | // make file executable, obey umask | ||
- | $mode = fileperms($v_header[' | ||
- | </ | ||
- | |||
- | La fonction '' | ||
- | |||
- | On peut également écrire une fonction '' | ||
- | |||
- | ++++fonction '' | ||
- | function myumask( $x=null ) { | ||
- | return 022; | ||
- | } | ||
- | </ | ||
- | ++++ | ||
- | |||
- | ===== fonction opendir() ===== | ||
- | |||
- | Pour une raison mystérieuse, | ||
- | |||
- | ==== contournement pour opendir() ==== | ||
- | |||
- | On peut utiliser une fonction '' | ||
- | |||
- | Plutôt que de faire un remplacement systématique, | ||
- | |||
- | ++++ fonction myopendir| | ||
- | <code php> | ||
- | function myopendir($x, | ||
- | if(!is_dir($x)) return false; | ||
- | return is_null($y) ? @opendir($x) : @opendir($x, | ||
- | } | ||
- | </ | ||
- | ++++ | ||
- | |||
- | ===== fonction usleep() ===== | ||
- | |||
- | Cette fonction qui permet d' | ||
- | |||
- | Pas de contournement trouvé pour le moment... | ||
- | |||
- | |||
- | ===== Absence de connexion vers l' | ||
- | |||
- | Pour, moi, depuis quelque chose comme fin août 2011 environ((date vraiment variable apparemment, | ||
- | |||
- | Si vos scripts se connectent toujours à la même adresse, vous pouvez demander sur le forum usenet de free proxad.Free.services.pagesperso la mise en liste blanche de certaine adresse. Pour les détails sur l'art et la manière de faire ce genre de demande, prenez le temps de lire [[http:// | ||
- | |||
- | |||
- | NB\\ | ||
- | Le // | ||
- | |||
- | NB2\\ | ||
- | Avant cela, lorque PHP pouvait se connecter à des sites externes, de toute façons, il existait une petite restriction concernant les connexions. Comme openssl et TLS ne sont pas inclus dans PHP chez free, PHP ne peut pas ouvrir de flux https. Demander à PHP de télécharger des fichiers depuis des sites en https, comme github par exemple est donc impossible. | ||
- | |||
- | == Référence 1 == | ||
- | |||
- | http:// | ||
- | ++++Texte reproduit ici| | ||
- | > 23/08/2011, 21h27 | ||
- | > | ||
- | >Beau parleur | ||
- | > | ||
- | > | ||
- | >Free a du changer quelques choses dans le paramétrage de leur serveur web, j'ai ce message là: | ||
- | > | ||
- | > | ||
- | >> En essayant de charger l'URL : http:// | ||
- | >> | ||
- | >> L' | ||
- | >> | ||
- | >> Accès interdit. | ||
- | >> | ||
- | >> La configuration du contrôle d' | ||
- | >> | ||
- | >> | ||
- | >> Generated Tue, 23 Aug 2011 20:26:01 GMT by pageperso.priv.free.fr (squid/ | ||
- | > | ||
- | > | ||
- | > Et j'ai trouvé ça comme explication: | ||
- | > Citation: | ||
- | >> Bonjour, | ||
- | >> | ||
- | >> Il y a un filtrage sur l' | ||
- | >> | ||
- | >> Pour accéder à une page, il faut qu' | ||
- | >> | ||
- | >> A+ | ||
- | >> | ||
- | >> Xavier | ||
- | > | ||
- | > | ||
- | ++++ | ||
- | |||
- | |||
- | == Référence 2 == | ||
- | |||
- | http:// | ||
- | |||
- | == Référence 3 == | ||
- | L'un des derniers conseils de la page http:// | ||
- | |||
- | ===== Traitement des images ===== | ||
- | |||
- | La bibliothèque GD est présente, installée et tout semble OK. Oui, mais non. Est-ce lié à la quantité de mémoire max disponible pour PHP ou à autre chose, je ne saurai le dire. Toujours est-il qu'il existe une limite à la taille des images qu'on peut manipuler, retailler, annoter etc... La taille limite est aux environs de 2600x2000 pixels. En dessous pas de problème, au delà, impossible. Ça pose problème avec les images des appareils photo modernes qui sont bien plus grandes... | ||
- | |||
- | Avec DokuWiki, qui utilise la bibliothèque GD, J'ai fait des tests simples. pour des images de taille de plus en plus grande, j' | ||
- | |||
- | * Pour des tailles d' | ||
- | * pour une taille de 2808×2106, ça fonctionne pas du tout CF [[dokuwiki: | ||
- | * pour des tailles supérieures, | ||
- | * envoie très long qui peut provoquer un arrêt par déclenchement de la minuterie (// | ||
- | * Le fichier reçu par le navigateur est très gros et le navigateur doit faire le redimmensionnement lui même, ce qu'il fait mal (au moins FF) et l' | ||
- | * Le navigateur peut consommer énormément de mémoire. cela dépend du navigateur | ||
- | |||
- | ==== contournement pour image ==== | ||
- | |||
- | Si vous rencontrez des problèmes lors du **traitement** des images, réduisez leur taille **avant** de les envoyer chez free. | ||
- | |||
- | ===== Temps d' | ||
- | D' | ||
- | |||
- | ==== contournement temps et mémoire ==== | ||
- | |||
- | rien | ||
- | |||
- | |||
- | --- // | ||