À partir d’environ 2 Semaines PHP 5.3 Entre dans l’histoire lentement mais sûrement. Le 11 a annoncé la fin de son soutien et que seuls les correctifs de sécurité seront 1 Année. Fondamentalement PHP 5.4 passe à de vieilles étapes stables et PHP 5.5 devient stable, Ce qui est un peu amusant car encore une partie des ajouts et des plugins de PHP ne fonctionnent pas tout à fait correctement, mais aussi une version 5.5 est tout à fait nouveau donc je vais m’abstenir de migrer à elle.

Alors laissez-moi me parler de ma migration vers 5.4 De 5.3. J’avais pré-posté Informations Pour les fonctionnalités obsolètes, Ceux qui ont changé cardinal et ceux qui ne seront plus soutenus d’avoir pas de drames des deux côtés si elle va s’enflammer ou non 😉 alors aujourd’hui matin, j’ai choisi un moment pour commencer la migration autour 7 Quand je suis devenu, Qu’il y a peu de douleur dans la migration si elle ne se passe pas sans heurts. À ma grande surprise, tout s’est passé plus que lisse – J’ai compilé mon PHP 5.4.17 J’ai commencé l’Apache et oh ciel tout est là. Un coup d’œil rapide à travers les journaux il n’y a pas de rugissement de fonctions dépréciées ou inconnues à tous – Apparemment, les garçons ont bien fait leur travail. Ensuite, je n’ai qu’à recomposer et les ajouts qui sont compilés avec l’ancienne API comme APC, RAR, etc.. Deuxième redémarrage et tout s’est endormi. Séparément, je m’attends à des améliorations de performance, puisque les gens pointent vers le gros doigt partout, certains plateaux montrant comment PHP 5.4 Consomme un peu de RAM et exécute des scripts rapidement.

C’est . Xampp 1.8.0 C’est pas vrai. 1.7.7 C’est .. Phpmyadmin-ô 403

Accès interdit!


Nouveau concept de sécurité XAMPP:

L’accès à l’objet demandé n’est disponible que sur le réseau local.

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

Веднага отворих httpd-xampp.conf който при мен се намира в /opt/lampp/etc/extra/, на пръв поглед всичко изглеждаше наред. Правилата за локалната мрежа бяха наред. Отделно че отварях от localhost. WTF ??? Погледнах log-а гледам че достъпа ми е отрязан от конфигуацията. Тука вече нещата ме ахнаха и честно казано донякъде малко на късмет открих проблема. След като преглеждах httpd.conf-а видях в Allow/Deny клаузите един последен ред Require all granted. О да еврика. Това е новия контролен механизъм който влезе в apache 2.4.x. С него се дава достъп или се отказва такъв на всички изискани, в общи линии се имитира Allow/Deny функционалността :). За да поправим проблема добавяме Require all granted в директивите за папката /opt/lampp/phpmyadmin. След промените при мен изглежда така

<Directory “/opt/lampp/phpmyadmin”>
AllowOverride AuthConfig Limit
Order allow,deny
Allow from all
Require all granted
</Directory>

 

Вианги може да се пробва и друга дивоти, например да се преименува папката phpmyadmin на нещо други и да се направи alias към не. Но е по грозно и не особено смислено 🙂

p.s Питаха ме защо ползвам XAMPP а не чиста инсталация на всички компоненти както си ги е моя Debian родилотговорът е много много простМЪРЗЕЛ. Мързи ме да напиша няколко команди после да си пипна конфовете и прочие. Доста по лесно е сваляш целия пакет разархивираш и палиш 😉

Enhanced by 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');

Enhanced by Zemanta

Днес ще разказвам за неволите си около един сървър със Suhosin patch и как Debian Sqeeze се справя с него. Сега да започнем малко по отдалече. Когато си инсталирате php през пакетната система на Debian (stable за другите не мога да кажа как е още) задължително ви се инсталира и suhosin mod към него. J’ai eu des problèmes avec certains Prettywell écrit PHP système et j’ai pris la décision cardinale au lieu de faire un pépin système et de retourner le développeur pour se débarrasser du patch de sécurité et me sauver des maux de tête. En général, je peux dire hardiment que c’était l’une de mes décisions les plus stupides jamais prises. Au début, j’enlève le PhP5 (PhP5)-Suhosin I réinitialiser le serveur Web-A et oops poutre – Patch-A est toujours chargé. Après une très courte étude, j’ai détecté, Que le paquet a été compilé et avec la pile directement dans le code ce qui signifie qu’il n’y a pas d’arrêt ou de suppression à moins que vous recomposiez le code à nouveau sans les correctifs. Je décide que je vais le tirer et le recomposer au paquet Deb. Dit fait faire votre apt-get source php5 tire mon code source actuel, déballé, etc.. Voici mon idée parfaite de télécharger le paquet Sori pour supprimer les correctifs et le compiler à nouveau à un paquet Desian plus deux petites optimisations de construction. Parlé fait – Suppression du patch inutile de la Debian/Patches/suhosin. Je l’ai enlevé pour ne pas jouer et dans Debian/Patches/série. Jusqu’à présent, tout est clair et sans problèmes. Puis je libère pour recomposer le paquet avec Debuild Et comme prévu, j’ai fait sauter la compilation à cause des en-têtes manquants. Bien sûr, il y aura de telles pénuries – Bien que j’utilise Debian netinstall. Je refais rapidement la compilation, À un moment donné encore seulement, Qu’avec une erreur étrange dans Zend / zend_stream. h ou. c Ne vous souvenez pas exactement (Si je suis inquiet, je peux plus tard vérifier exactement quel fichier et dans quel ordre il a été). Après quelques malentendus ce qui se passe et pourquoi le grondement Adjeba dans le noyau Zend – Où je n’aurais pas à gronder pour une raison quelconque et une étude un peu plus longue a découvert que ce problème est relativement rare et il n’y a pas beaucoup de signaux à ce sujet. Je soupçonne que l’un des correctifs dans le sori est faux, mais maintenant je n’ai pas de nerf pour le vérifier. Xmmmmm Étrangement Super Strange. J’ai presque décidé de compiler un PHP purement, mais j’ai décidé d’essayer les miroirs de dotdeb Voir là ce qui se passe. Là, la compilation est morte à cause de certaines dépendances étranges, mais les problèmes dans la partie principale. Ce qui à son tour était compréhensible, ils n’étaient pas 30-40 Patchs qui étaient dans le paquet stable. Après quelques tentatives longues et infructueuses, je me suis fatigué et j’ai enlevé le paquet de vanille et l’ai compilé avec des options presque Debian-ski avec l’idée de réécrire mon installation actuelle et l’installation de nouveaux paquets de Feeder peut avoir le comportement de l’emballage installé à partir du dépôt (Probablement une autre solution non différenciée). Comme je m’y attendais sans tous les correctifs de l’installation s’est bien passée. C’est la sortie de mon config.:

#! /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]"

Il s’agit d’une configuration similaire à celle de la construction Dotdeb. L’option de préfixe, où les fichiers de la bibliothèque PHP seront déployés, est aussi basée et la plus importante.. Ainsi que les autres fois les corriger en fonction de votre système afin de ne pas sentir la construction avec le changement de routes.

Enhanced by Zemanta

Vector logo of the PHP programming language wi...

Aujourd’hui, je vais gratter une lecture de lumière sur PHP Cache De Html. Nous parlons de mettre en cache la sortie de notre code, pas comme je l’ai écrit pour mettre en cache les pointes à Opcode Niveau avec Eaccelerator. Alors, quel est le discours – Rappelons-nous le travail rapide de PHP. Nous soumettons une demande à Serveur Web-Un US qu’il accepte les paramètres que nous soumettons puis il les soumet au script PHP qu’il compile et crache le résultat en version HTML. C’est en termes assez généraux. Quelle serait notre idée ici de sauter les ordres?, Pour sauter par-dessus de grands blocs ou pas de tels grands blocs que nous peignons directement la sortie déjà compilée. Les avantages sont évidents – Réduction du temps d’exécution, En réduisant la consommation de charge et de ressources. En général, il ne découvre pas l’eau chaude ni quelque chose qui sait à quel point. Il existe de nombreuses classes à cet effet, car Php Poire Cache_Lite qui a une grande fonctionnalité, mais je pense qu’à l’avenir je vais écrire le mien avec une structure un peu plus rationalisée et mes propres exigences de mise en cache. Maintenant, nous allons examiner la version autochtone avec Fonctions de contrôle des sorties. Donc, nous allons cacher quelque chose –

//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();

Le code ci-dessus est trivial, mais nous allons expliquer ce qui s’est passé. D’abord, nous déclarons quelle partie du code commence à mettre en cache. Ensuite, nous générons la sortie à partir du code d’une manière standard. La sortie générée est ensuite jointe à une variable qui sera disponible plus tard, que ce soit par le biais d’un fichier ou de sessions, c’est votre décision.. Enfin, nous clairs et désactiver la mise en cache. Une opération très triviale, si nous disons que la géosmalisation cache passe par d’énormes blocs de code afin que nous puissions économiser beaucoup de temps CPU en cachant pendant un certain temps ou pour une seule session. Il s’agit maintenant de ce que vous voulez que vous publiciez le cache ou soit disponible pour un autre utilisateur.

Enhanced by Zemanta