Om 2 uger php 5.3 gik ned i historien langsomt, men sikkert. 11. annoncerede i slutningen af dens indhold, og der vil blive indsendt kun sikkerhedsopdateringer til 1 år. For det meste PHP 5.4 finder sted i etaper, og gamle stabile PHP 5.5 det stabile, det var lidt sjovt, fordi en anden del af add-ons og plugins med php virker ikke helt rigtigt, men og version 5.5 forholdsvis ny, så jeg vil afholde mig fra at gå på det.

Åh, lad os tale om indvandring til mig 5.4 fra 5.3. Tidligere var indsendt information for forældede funktioner, dem, der har ændret sig, ændret sig, og dem, der ikke længere understøttes, så vi har ingen drama, og begge sider, hvis de vil brænde, eller ikke 😉 Th denne morgen migration af om 7 som det blev, har minimal smerte under migration, hvis du ikke kan passere problemfrit. Til min store overraskelse, at alt gik mere end gnidningsløst – samler dine PHP 5.4.17 Jeg startede apache-det, og himlen er alle der. Et hurtigt kig rundt på de logs er ikke brøl depricated eller endda ukendte funktioner – tilsyneladende, de fyre gjorde et godt stykke arbejde. Derefter kunne jeg kun præprocessoren fastgjort, og det virker med det gamle API, såsom APC, RAR og andre. Anden genstart, og alle sov. Jeg forventer forbedringer i ydeevne, som overalt, hvor folk peger med tommelfingeren, boder, hvor han viser, hvordan PHP 5.4 bruger mindre HUKOMMELSE og køre scripts hurtigere.

For et par dage siden kom ud XAMPP 1.8.0 i går efter opgradering fra version 1.7.7 Jeg har en temmelig interessant problem. Phpmyadmin åbnes ikke, og jeg rullede med 403

Adgang forbudt!


Nye XAMPP sikkerhedskoncept:

Adgang til det ønskede objekt er kun til rådighed fra det lokale netværk.

Denne indstilling kan være konfigureret i filen “httpd-xampp.Conf”.

Straks jeg åbnede httpd-xampp.conf som jeg har, er i /opt/lampp/etc/extra/, ved første øjekast ser alt fint. Regler for LAN var OK. Sammen med åbningen lokale. WTF ??? Så på den log, og jeg kan se, at min adgang er blevet afskåret fra konfiguratuta. Nu er alle jeg ahaha, og, helt ærligt, en smule held, jeg har fundet problemet. След като преглеждах httpd.conf-а видях в Allow/Deny клаузите един последен ред Kræver, at alle, der ydes. Om Eureka!. Dette er et nyt kontrol-mekanisme, som er inkluderet i apache 2.4.x. Med ham ikke giver adgang til eller frafaldelse af en sådan kræves, dybest set efterligne Aktivere/deaktivere funktionalitet :). За да поправим проблема добавяме Require all granted в директивите за папката /opt/lampp/phpmyadmin. Efter ændring af mit udseende, så

<Bibliotek “/opt/lampp/phpmyadmin”>
AllowOverride AuthConfig Grænse
For at tillade,forbud
Tillad fra alle
Kræver, at alle, der ydes
</Bibliotek>

 

Mens det er sandt, kan du prøve en anden vilde, for eksempel, for at omdøbe den phpmyadmin mappen til noget andet og ikke alias. Men det er grimt og ikke særlig betydelige 🙂

s.s Spurgte mig, hvorfor jeg bruger XAMPP i stedet for en ren installation af alle komponenterne, og det er, min Debian blev født – отговорът е много много простМЪРЗЕЛ. Мързи ме да напиша няколко команди после да си пипна конфовете и прочие. Доста по лесно е сваляш целия пакет разархивираш и палиш 😉

Forstærket af 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');

Forstærket af Zemanta

I dag vil jeg fortælle dig om de problemer der er omkring den enkelt server Suhosin patch og hvordan debian Sqeeze beskæftige sig med det. Nu lad os starte lidt fra afstand. Når du har installeret php på et Debian-system (stabil for det andet ved jeg ikke hvordan man ellers) sikker på, du er nødt til at installere den suhosin mod det. Jeg havde problemer med en PLU-kadyra system skrevet i php, og jeg tog cardinalate løsning i stedet for at gøre det debugging af systemet og rapportere tilbage til udvikleren til at frigive en patch til sikkerhed for at gemme hovedpine. I Almindelighed, kan jeg roligt sige, at det var en af de mest tåbelige beslutninger nogensinde. Først slette modulet php5-suhosin genstarte web server-og en pakke beam – patch-en stadig fyldt. Efter en meget kort oversigt over find, den pakke kompilerer og kører direkte ind i koden, hvilket betyder, at der ikke er nogen deaktivere eller fjerne, hvis du ikke behøver at kompilere koden igen uden patch. Beslutte, hvad du vil gryppa og precompilers i deb-pakke. Gjort, sagt, gjort jeg lave en apt-get source php5 trække min aktuelle kildekode, respektive og andre. Her er min perfekte idé til at downloade kildekoden pakke at fjerne plasteret og genoversætte den fil igen i pakken, plus to små optimeringer ved udarbejdelsen. sagde færdig – Jeg fjernede unødvendig patch fra debian/patches/suhosin.patch Jeg fjernede det, og ikke spille debian/patches/serie. Her er alt klart, og uden problemer. Så jeg kompilere pakken med debuild og som jeg forventede mig smækkede bygge på grund af manglende kilde-kode. Selvfølgelig, det ville ikke være af en sådan fejl – men, jeg er med debian netinstall. Restaurering af dele i hast til sin tåbelighed, at re-release samlinger, på et tidspunkt igen Premier kun, hvad med det mærkelige fejl i Zend/zend_stream.h eller .c jeg husker ikke nøjagtigt, (hvis jeg kommer sent at kontrollere, hvilke filer, og hvilken linje, der lød). Efter nedoumevala, hvad der foregår, og hvorfor fanden hum Zend core – hvor ville buzz som helst grund, og en smule af en lang forskning fundet, at dette problem er forholdsvis sjældne, og ikke meget de signaler, der for ham. Jeg har mistanke om, at nogen af patches, der i den kode, der ikke så, men nu har jeg nerver til at tjekke det ud. Hmmmmm mærkeligt super underligt. Næsten besluttet at kompilere php, men jeg besluttede at prøve spejl dotdeb lad os se, hvad der vil ske. Der det projekt døde på grund af en mærkelig afhængighed, men mellem de problemer i den vigtigste del. Det forstod dem, de 30-40 plastre, der var i en stabil pakke. Efter lange og mislykkede forsøg fik jeg træt og slukket af pakken, og det er samlet med næsten debian-ski muligheder med ideen om at skrive mit nuværende setup og installere nye pakker med arkivering kan være en adfærd, en pakke fra lageret (sandsynligvis ikke obosobeni rimelig løsning). Som jeg forventede, er det ikke alle patches, installationen gik smertefrit. Er output-config.nice min fil:

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

Denne konfiguration er tæt på at denne samling af dotdeb. Като основаното и най важно е prefix опцията където ще се разполагат файловете с библиотеките на php. Него както и другите пъти ги коригирайте според вашата система така че да не се усети компилацията с промяна на пътищата.

Forstærket af Zemanta

Vector logo of the PHP programming language wi...

I dag vil være tændt, let at læse for php cachehtml. Her taler vi om output caching-kode til os, og ikke, som jeg har skrevet til processor-cache på skrapovye at opcode niveau eAccelerator. Så hvad er det, – lad os huske, at det hurtigt php er det. Anmodning web-server-det tager os muligheder, som vi præsenterer, at han sender til et php-script, det er kompileret og ikke bekymrer sig om resultatet i html-mulighed. Det er i meget Generelle vendinger. Tanken er her, vil vi gå over forespørgsler, vi vil flytte de store blokke eller som store blokke, izrisoval når kompilowanie output. Fordelene er indlysende – namelena køre tid, mindre belastning og forbrug af ressourcer. Som regel, ikke en opdagelse af varmt vand, eller en person, der ved, hvor svært det. Der er flere klasser til dette formål folkesundhedsprogrammet Pear Cache_Lite som har en fantastisk funktionalitet, men jeg tror, at i fremtiden til at skrive min helt en lettelse struktur og mit behov for caching. Nu skal vi overveje sagen med aboriginal Output-Kontrol Funktioner. Så lad os cache CPU ' en til noget –

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

Ovenstående kode er trivielt, men lad mig forklare, hvad der skete. Først erklærer, hvilken del af koden begynder caching. Så skal du oprette en standard metode til output kode. След това генерирания изход се присъединява към променлива която ще е достъпна по късно дали през файл някакво или през sessions това си е ваше решение. Накрая изчистваме и прекратяваме кеширането. Съвсем тривиална операция ако да речем геенрирането на кеша минава през огромни блокове от код така можем да спестим доста процесорно време като кешираме за известно време или за една сесия. Вече всичко опира то това какво искате дали да е общодостъпен кеша или да е достъпен за различен потребител.

Forstærket af Zemanta