körülbelül 2 php hétig 5.3 Belép a történet lassan, de biztosan. 11-bejelentették a végén a karbantartási és hogy kerül csak biztonsági javításokat 1 év. alapvetően PHP 5.4 megy szakaszosan régi stabil és a PHP 5.5 stabillá válik, amely kevésbé szórakoztató, mert még mindig része a kiegészítéseket és az új php plugin nem működik elég jól, de a verzió 5.5 Ez viszonylag új úgyhogy tartózkodjanak a migráció rá.

Mondjuk nekem a migráció 5.4 által 5.3. Én korábban hozott információ az elavult funkciók, amelyek drámaian megváltoztak, és azok, akik már nem tartható fenn nélkül drámák mindkét oldalon, amely nem gyullad meg, vagy 😉 Ma reggel időzítése kezdetétől a migráció körül 7 egyre, hogy minimális a fájdalom a vándorlás során, ha nem megy simán. Nagy meglepetésemre, minden ment simábban – a PHP fordításakor 5.4.17 Elkezdtem, és apache-oh egek minden benne van. Egy gyors pillantás az egész naplók harsogó ELAVULT vagy egyáltalán nem ismeretlen függvények – Nyilvánvalóan a srácok volna a munkát is. Aztán csak újrafordítani és kiegészítőket össze a régi API APC, RAR és egyéb. Második újraindítás és minden elaludt. Eltekintve várnak javulást a termelékenység, az emberek mindenütt rámutatva nagylábujj néhány tablettát, ha azt mutatja, hogy a PHP 5.4 fogyaszt kevesebb RAM és végrehajtja szkriptek gyorsabb.

Néhány nappal ki XAMPP 1.8.0 tegnap, miután frissítés verzió 1.7.7 Volt elég érdekes probléma. Phpmyadmin-és nem nyitja ki, és harsogva 403

Hozzáférés megtagadva!


Új XAMPP biztonsági koncepció:

Hozzáférés a kért objektum csak a helyi hálózaton.

Ez a beállítás lehet állítani a fájl “httpd-xampp.conf”.

Azonnal kinyitotta httpd-xampp.conf ami nekem az / opt / lampp / etc / extra /, Első pillantásra minden látszott finom. A szabályok a helyi hálózat között voltak. Eltekintve a nyitó localhost. WTF ??? Megnéztem a log-és látom, hogy a hozzáférés le van vágva a konfiguatsiyata. Itt most mi ziháltam és őszintén valamivel kevesebb szerencsével találta meg a problémát. Után megy át a httpd. conf, és látta a enged/tagad záradékok egy utolsó sorban Megköveteli az összes megadott. Oh EUREKA. Ez egy új ellenőrzési mechanizmus lépett Apache 2.4.x. Ez ad hozzáférést megtagadó vagy az ilyen finom, Alapvetően utánozza engedélyezése / tiltása funkciót :). A probléma hozzá szükség minden megadott, a/opt/lámpaoszlop/phpmyadmin mappa. Miután a változás bennem külleme

<Könyvtár “/opt / lampp / phpmyadmin”>
AllowOverride AuthConfig Limit
rendelés lehetővé,tagadni
Hagyjuk az összes
Megköveteli az összes megadott
</Könyvtár>

 

Viangi lehet próbálni egy másik vad, például a mappa átnevezéséhez phpmyadmin valami más, és nem álnevet. De ez csúnya és nem túl értelmes 🙂

p.s Megkérdezték tőlem, hogy miért használ XAMPP nem tiszta telepítés valamennyi komponens, mint ők az én Debian szül – a válasz az, tényleg nagyon egyszerű – LUSTASÁG. Én túl lusta, hogy írjon több parancs, akkor kap a konfovete stb.. Nagyon könnyű az veszi a egész pack razarhiviraš és a könnyű 😉

Növeli Zemanta

Debian OpenLogo

Миналия ден един приятел ми писа че имал проблем с A 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');

Növeli Zemanta

Ma beszélek a bajok körül egyetlen szerver Suhosin tapasz és milyen A Debian Sqeeze foglalkozik vele. Most kezdjük egy kis távolság. Amikor telepíti php a Debian csomagoló rendszer (stabil mások nem tudom megmondani, hogy még) telepíteni kell és Suhosin mod hozzá. Gondjaim voltak bizonyos MAH-keretrendszer PHP-ben íródott, és átvette a bíboros döntés helyett tenni a rendszer hibaellenõrzésében vissza Report Developer elveszíteni biztonsági javítások és így menteni magam a baj. Összességében azt lehet mondani, hogy bátran ez volt az egyik legostobább döntés, amit valaha tett. Eleinte eltávolítás modul php5-Suhosin újraindítás webszerver-a és hoppá utáni – patch-egy még betöltött. Egy rövid tanulmány talál, hogy a csomag összeállítása és trots közvetlenül a kódot, ami azt jelenti, hogy nincs kizáró vagy eltávolítását, kivéve, ha újrafordítani a kódot ismét nélkül tapasz. Problémák, amelyek drapna és fordítsa újra a deb csomag. Kész előbb azt mondta, nem a apt-get source php5 húz forráskód, razpaketirva és stb. Itt az én ideális ötlet eltávolítani a forrása a csomag távolítsa el a tapaszt, és fordítsd vissza a Debian csomag plusz egy két kis optimalizáció összeállítás. mondta done – megszünteti a felesleges tapasz debian / javítások / suhosin.patch Azt eltávolította játszik debian / javítások / sorozat. Eddig mindent világosan és gond nélkül. Akkor fuss összeállításához csomag debuild és ahogy vártam fújt összeállítása miatt hiányzó fejlécek. Természetesen nem lesz semmilyen hiány – Én még mindig a debian NetInstall. Tűzoltás butaság újra futni összeállítás, egy ponton csak halvány ismét, hogy egy furcsa hibát Zend / zend_stream.h vagy .c nem emlékszem pontosan (ha tudok foglalkozni később, hogy ellenőrizze, hogy pontosan milyen a sort, dörgött). Miután néhány kételkedő, hogy mi történik, és mi a fenének is zörög a Zend mag – ahol meg kellett zörög bármilyen okból, és egy kicsit hosszabb tanulmány úgy találják, hogy ez a probléma viszonylag ritka, és nem sok jelét is. Gyanítom, hogy a javítások a forrás volt a baj, de én nem idegeket, hogy ellenőrizze. Hmmmmm furcsa super fura. Szinte elhatároztam, hogy lefordítom tiszta php, de elhatároztam, hogy kipróbálom tükrök dotdeb ott, hogy mi történik. Van összeállítása miatt halt meg néhány furcsa szenvedélybetegségek, de megkímélte a problémákat az alaptest. Ami érthető is tettek velük 30-40 foltok, amelyek stabil csomag. Miután több hosszú és sikertelen kísérlet meguntam, és kikapcsolt én vanília csomag, és fordítsuk le szinte debian-ski lehetőségek az ötlet, hogy átírják a jelenlegi rendszert, és telepíti az új csomagokat a feeder viselkedhetnek csomag telepítve a tárolóból (Valószínűleg egy másik differenciált nem ésszerű megoldás). Mint várható nélkül javításokat telepítés simán ment. Ez az eredmény az én config.nice fájl:

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

Ez a konfiguráció hasonló a összeállítás dotdeb. Като основаното и най важно е prefix опцията където ще се разполагат файловете с библиотеките на php. Него както и другите пъти ги коригирайте според вашата система така че да не се усети компилацията с промяна на пътищата.

Növeli Zemanta

Vector logo of the PHP programming language wi...

Днес ще драсна едно леко четиво за php cache az 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 това си е ваше решение. Накрая изчистваме и прекратяваме кеширането. Съвсем тривиална операция ако да речем геенрирането на кеша минава през огромни блокове от код така можем да спестим доста процесорно време като кешираме за известно време или за една сесия. Вече всичко опира то това какво искате дали да е общодостъпен кеша или да е достъпен за различен потребител.

Növeli Zemanta