Depuis près de 2 semaines php 5.3 Entrer dans l’histoire, lentement mais sûrement. 11 a annoncé la fin de son entretien, et il sera joué seulement les correctifs de sécurité pour 1 année. En général, PHP 5.4 passes en étapes et vieux PHP stable 5.5 devienne stable, qui est une sorte de plaisir parce que vous avez toujours partie des ajouts et plugins de php ne fonctionnent pas complètement correctement mais version 5.5 est tout à fait nouveau, donc je m’abstiendrai de migration pour elle.

Alors disons que pour ma migration vers 5.4 de 5.3. Auparavant, j’avais posté le informations pour les fonctionnalités obsolètes, ceux qui ont changé ma personnalité entière et ceux qui n’a plus à maintenir pour n’avoir aucun des drames sur les deux côtés s’il va au début ou pas 😉 donc j’ai choisi heure ce matin pour le début de la migration autour 7 comme il est devenu, C’est là la douleur minime pendant la migration si vous n’allez pas en douceur. À ma grande surprise immense tout s’est passé en douceur – vous avez compilé PHP 5.4.17 J’ai démarré apache et Oh ciel, c’est tout là. Un rapide coup de œil par l’intermédiaire de journaux n’est pas rugir de depricated ou de fonctions inconnues – Apparemment, les garçons ont bien fait leur travail. Puis je n’ai que prekompiliram et les ajouts qui sont compilés avec l’ancienne API comme APC, RAR, etc.. Un deuxième redémarrage et tous endormis. Séparément, s’attendre à des améliorations de performances parce que partout les gens pointant gros orteil les plateaux qui montre comment PHP 5.4 consomme moins de RAM et exécute des scripts plus vite.

Il y a quelques jours sont sorti XAMPP 1.8.0 Après la mise à niveau de version 1.7.7 J’ai eu un problème assez intéressant. PhpMyAdmin, pas mon ouverture et izg″rmâvaše avec 403

Accès interdit!


Nouveau concept de sécurité XAMPP:

Accès à l’objet demandé n’est disponible que depuis le réseau local.

Ce paramètre peut être configuré dans le fichier “httpd-xampp.conf”.

Maintenant, j’ai ouvert le httpd-conf xampp qui est pour moi... se trouve dans le/opt/lampp/etc/extra /, à première vue, tout semblait bien. Les règles pour le réseau local ont été très bien. En dehors de cela, j’ouvrais le localhost. WTF ??? J’ai regardé le journal et de voir que mon accès est coupé par konfiguaciâta. Les choses ICIS déjà ahnaha moi et franchement le genre d’un peu de chance j’ai trouvé le problème. Après avoir scie Allow/Deny clauses un dernier rang et conf httpd. Besoin de toutes accordées. Oh à Eureka. Il s’agit du nouveau mécanisme de contrôle qui est entré en Apache 2.4.x. Il donne accès ou refuser ces tous très bien, fondamentalement imité Allow/Deny fonctionnalité :). Pour remédier au problème, que nous ajoutons exigent tous délivrés dans le/opt/lampp/phpmyadmin dossier. Après les changements en moi ressemble à ceci

<Annuaire “/opt / lampp / phpmyadmin”>
AllowOverride AuthConfig Limite
Permettre à commander,nier
Permettre de tous les
Besoin de toutes accordées
</Annuaire>

 

Vous pouvez toujours essayer un autre divoti, par exemple, pour renommer le dossier phpmyadmin quelque chose d’autre et ne sont pas alias à. Mais c’est moche et pas très utile 🙂

p. s Asked me pourquoi j’utilise XAMPP et nettoyez pas installer tous les composants, car c’est ma Debian naquis – la réponse est vraiment très simple – PARESSE. Moi trop paresseux pour écrire plusieurs commandes puis téléchargez konfovete etc.. Assez facile est de prendre votre razarhiviraš toute la meute et la lumière 😉

Amélioré par Zemanta

Debian OpenLogo

Миналия ден един приятел ми писа че имал проблем с Debian server-a си. По точно не му пазел сессиите повече от 30 минути независимо колко се настройва session.gc_maxlifetime. В общи линии проблема е че Debian са решили да пренапишат поведението на сесиите като вместо garbage collector-а се стартира един cron на всяка 9-та и 39-та минута който почиства старите сесии. Тои се намира в /etc/cron.d/php5

като цяло семпличък скрипт който стартира от своя страна /usr/lib/php5/maxlifetime и в него се намира променливата колко време да е живота на кукито който е 1440 секунди или 24 минути 😉 От тук нататък има 2 варианта или да се спре крон-а и по този начин се прекратява автоматичното чистене което може по късно да се пренастрой от php.ini или направо в самия скрипт да се промени продължителноста на живота на сесиите с променливата max. Аз лично предпочитам втория вариант. Доста по чист е като цяло но има и недостатъкако се презапише файлът промените ни ще се изгубят което си е неприятен факт.

PS. Сега като се замисля вероятно ако се дефинира друго място където да се съхранява сеиината информация чрез самото php би трябвало да излезе извън обхвата на скрипта и по този начин да се използва пак по нормален сесията без да прекъсва грубо.

ini_set('session.gc_maxlifetime', 14400);
 ini_set('session.gc_probability', 1);
 ini_set('session.gc_divisor', 100);
 session_save_path(APP_PARENT_DIR . '/sessions');

Amélioré par Zemanta

Aujourd'hui on va parler de vos malheurs sur un serveur avec Suhosin patch et comment Debian Sqeeze deal avec lui. Maintenant nous allons commencer un peu de distance. Lorsque vous installez php dans le système de paquets de Debian (stable pour les autres, je ne peux pas dire comment il est plus) Vous devez installer le mod et suhosin lui. J’ai eu des problèmes avec le système de plis-écrit de php et j’ai pris la décision de le kardinalnoto de faire le débogage des applications sur le système et de faire rapport au développeur pour obtenir le correctif de sécurité et ainsi de m’épargner des maux de tête. Généralement je peux dire hardiment que c’était une des décisions plus folles jamais prises moi. La prochaine annulation snap-on php5-suhosin réinitialiser un serveur web et oups de faisceau – a-patch est toujours chargé. Après un très bref sondage détecté, Ce paquet est compilé et avec Pacha directement dans le code, ce qui signifie qu’il ne pas désactiver ou supprimer à moins que vous prekompilira le code nouveau sans arachides. Décidez que vous ne serez dr″pna et prekompiliram pour le paquet deb. Ont fait faire vous apt-get source php5 me tirant ce code source, razpaketirva et ainsi de suite. Ici l’idée parfaite pour télécharger Sorsa du package pour enlever les arachides et le compiler à nouveau pour debianski forfait, plus un deux optimisations petit pour la compilation. Dit et fait – J’ai supprimé l’image de patch Debian/patches/Suhosin.patch J’ai enlevé lui de ne pas jouer dans Debian/patches/série. Ici tout clairement et sans problèmes. Puis j’ai exécuté pour recompiler le paquet avec debuild et comme j’ai prévu ma compilation pop en raison de l’en-têtes manquants. Bien sûr, il y aura des pénuries – Je suis avec debian netinstall. Difficulté votre stupidité vrai rapide relâcher à nouveau compilation, à un point premier ministre encore une fois seulement, C’est un bug étrange dans Zend / zend_stream. h ou c ne me souviens pas exactement (Si la transaction peut plus tard pour vérifier exactement quel fichier et quelle ligne je parlais à). Après une nedoumâvane, ce qui se passe et pourquoi l’enfer peut rumble dans Zend Core – où ne pas censé rumble sur pour aucune raison et une étude un peu pluse détecté que ce problème est relativement rare et pas beaucoup de signaux pour lui. Je soupçonne qu’un des correctifs dans la source est mauvaise mais maintenant je n’ai aucun nerfs pour vérifier. Hmmmmm bizarre Super bizarre. J’ai presque décidé de compiler php pur, mais j’ai décidé d’essayer les miroirs Dotdeb Nous allons voir ce qui se passera là. Compilation, il est mort à cause de certaines dépendances bizarres mais passés sous silence les problèmes dans la partie principale. Qui est tout naturellement qu’ils ont disparu 30-40 correctifs qui ont été dans l’ensemble stable. Après plusieurs tentatives de longs et ayant échouées, que j’ai haussé les épaules, j’ai téléchargé le paquet vanille et compilé avec les options presque debian-ski avec l’idée de réécrire mon installation actuelle et d’installer de nouveaux paquets de la mangeoire, que vous pouvez avoir le comportement du paquet installé à partir du référentiel (probablement juste un autre obosobno pas sage décision). Comme prévu, sans aucune tache installation s’est bien déroulé. Il s’agit de la sortie de mon fichier de config sympa.:

#! /bin/sh
#
# Created by configure

CFLAGS='-g -O2 -fPIC -Wall -fsigned-char -fno-strict-aliasing   -gstabs' \
CXXFLAGS='-g -O2' \
'./configure' \
'--with-apxs2=/usr/bin/apxs2' \
'--prefix=/usr/local/php5' \
'--disable-cgi' \
'--with-config-file-path=/etc/php5/apache2' \
'--with-config-file-scan-dir=/etc/php5/apache2/conf.d' \
'--build=x86_64-linux-gnu' \
'--host=x86_64-linux-gnu' \
'--sysconfdir=/etc' \
'--localstatedir=/var' \
'--mandir=/usr/share/man' \
'--disable-debug' \
'--with-regex=php' \
'--disable-rpath' \
'--disable-static' \
'--with-pic' \
'--with-layout=GNU' \
'--with-pear=/usr/share/php' \
'--enable-calendar' \
'--enable-fileinfo' \
'--enable-hash' \
'--enable-json' \
'--enable-sysvsem' \
'--enable-sysvshm' \
'--enable-sysvmsg' \
'--enable-bcmath' \
'--with-bz2' \
'--enable-ctype' \
'--without-gdbm' \
'--with-iconv' \
'--enable-exif' \
'--enable-ftp' \
'--enable-dbase' \
'--with-gettext' \
'--enable-mbstring' \
'--with-onig=/usr' \
'--with-pcre-regex' \
'--with-mysql=shared,mysqlnd' \
'--with-mysql-sock=/var/run/mysqld/mysqld.sock' \
'--with-mysqli=shared,mysqlnd' \
'--enable-pdo=shared' \
'--with-pdo-mysql=shared,mysqlnd' \
'--with-pdo-odbc=shared,unixODBC,/usr' \
'--with-pdo-pgsql=shared,/usr/bin/pg_config' \
'--with-pdo-sqlite=shared,/usr' \
'--with-pdo-dblib=shared,/usr' \
'--enable-phar' \
'--enable-shmop' \
'--enable-sockets' \
'--enable-dom' \
'--enable-wddx' \
'--enable-tokenizer' \
'--with-zlib' \
'--with-kerberos=/usr' \
'--with-openssl=/usr' \
'--enable-soap' \
'--enable-zip' \
'--with-mhash=yes' \
'--with-exec-dir=/usr/lib/php5/libexec' \
'--with-system-tzdata' \
'--without-mm' \
'--with-readline=/usr' \
'--without-sybase-ct' \
'--without-sqlite' \
'--without-sqlite3' \
'--without-mssql' \
'--enable-pcntl' \
'--enable-inline-optimization' \
"[email protected]"

Cette configuration est similaire à celle de la compilation le dotdeb. Като основаното и най важно е prefix опцията където ще се разполагат файловете с библиотеките на php. Него както и другите пъти ги коригирайте според вашата система така че да не се усети компилацията с промяна на пътищата.

Amélioré par Zemanta

Vector logo of the PHP programming language wi...

Днес ще драсна едно леко четиво за php cache le html. Тука говорим за кеширане на изхода от кода ни а не както съм писал да кешираме скритповете до opcode ниво с eAccelerator. Така за какво иде речнека да си припомним на бързо работата на php-то. Подаваме заявка на web server-a ни той приема параметрите който подаваме след това той ги подава на php скрипта той се компилира и плюе резултат в html вариант. Това е в доста общи линии. Каква ще е идеята ни тука да прескачаме заявки, да прескачаме големи блокове или не чак толкова големи блокове като директно изрисуваме вече веднъж компилирания изход. Преимуществата са очевиднинамаляна на времето за изпълнение, по малко натоварване и потребление на ресурси. Като цяло не е откриване на топлата вода нито е нещо кой знае колко сложно. Има множество класове за тая цел като PHP Pear Cache_Lite който разполага с прекрасна функционалност но аз мисля в бъдеще да си напиша мой с доста по облекчена структура и мой си изисквания към кеширането. Сега ще разгледаме най аборигенския вариант с Output Control Functions. Така нека да кешираме нещо

//start cache all output after that will be saved

ob_start();

//generate output

echo 'Some dynamic output';

echo 'Some other dynamic output ...';

//assign output into variable

$var=ob_get_contents();

//close cache output

ob_end_flush();

Горния код е тривиален но нека да обясним какво стана. Първо декларираме от коя част в кода започва кеширането. След това си генерираме по стандартен начин изхода от кода. След това генерирания изход се присъединява към променлива която ще е достъпна по късно дали през файл някакво или през sessions това си е ваше решение. Накрая изчистваме и прекратяваме кеширането. Съвсем тривиална операция ако да речем геенрирането на кеша минава през огромни блокове от код така можем да спестим доста процесорно време като кешираме за известно време или за една сесия. Вече всичко опира то това какво искате дали да е общодостъпен кеша или да е достъпен за различен потребител.

Amélioré par Zemanta