од око 2 пхп недеља 5.3 Он улази у причу полако али сигурно. 11. су најавили крај његово одржавање и да ће бити постављен само безбедносне закрпе за 1 година. У суштини тект 5.4 иде у фазама старој штали и ПХП 5.5 постаје стабилна, што је мање забавно, јер још увек део додатака и нових пхп додатака не раде сасвим исправно, али верзија 5.5 То је прилично нова, тако да ће се уздржати од миграције на њега.

Рецимо за мене миграције 5.4 од 5.3. Ја сам раније ставио информације за застарелих функције, они који су се драматично промениле и оних који више неће бити одржавана без драме на обе стране да неће запалити или 😉 Јутрос временских почетка миграције око 7 постаје, да постоји минимална бол током миграција ако не иде глатко. На моје велико изненађење, све је више глатко – саставио свој ПХП 5.4.17 је започео сам и Апацхе-Ох небу све је ту. Брз поглед око дневника ће хук деприцатед или нимало непознат функције – Очигледно момци су добро обавили свој посао. Онда сам се рекомпајлирајте и додаци који су прикупљени са старим АПИ као АПЦ, РАР и други. Други рестарт и све заспао. Поред очекују побољшање продуктивности као људи свуда показује палац неке таблете где показује како ПХП 5.4 троши мање меморије и извршава скрипте брже.

Неколико дана од КСАМПП 1.8.0 јуче након надоградње из верзије 1.7.7 Имао сам доста занимљив проблем. Пхпмиадмин-а да се не отвара и урлао са 403

pristup забрањен!


Нови КСАМПП Сецурити концепт:

Приступ тражени објекат је доступан само из локалне мреже.

Ова поставка се може конфигурисати у датотеци “хттпд-кампп.цонф”.

Одмах отворила хттпд-кампп.цонф који је за мене у / опт / лампп / етц / Ектра /, На први поглед све је изгледало у реду. Правила за локалне мреже су били међу. Осим отварања лоцалхост. ВТФ ??? Погледао сам лог-и видим да је мој приступ је одсечен од конфигуатсииата. Ево сада шта сам дахну и искрено нешто мање среће нашао проблем. След като преглеждах httpd.conf-а видях в Allow/Deny клаузите един последен ред Захтевају све готово. ох Еурека. Ово је нови контролни механизам који је ступио на apache 2.4.к. То даје приступ или одбија такву казну, у основи имитира Дозволи / Одбиј функционалност :). За да поправим проблема добавяме Require all granted в директивите за папката /opt/lampp/phpmyadmin. После промена у мени изгледа као

<именик “/опт / лампп / пхпМиАдмин”>
АлловОверриде аутхцонфиг лимит
order аллов,негирати
Дозволи са свих страна
Захтевају све готово
</именик>

 

Вианги можете покушати још један дивљи, На пример, да променимо име фолдера ПхпМиАдмин нешто друго, а не алиас да. Али то је ружно и није баш смисла 🙂

П.С Питали су ме зашто користите КСАМПП не чисти инсталацију свих компоненти као што их је мој Убунту рођена – отговорът е много много простМЪРЗЕЛ. Мързи ме да напиша няколко команди после да си пипна конфовете и прочие. Доста по лесно е сваляш целия пакет разархивираш и палиш 😉

Potpomognuto Zemanta

Debian OpenLogo

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

Potpomognuto Zemanta

Данас сам говорити о јадима око један сервер са Сухосин фластер и како дебиан Скеезе се са тим. Сада ћемо почети мало растојање. Када инсталирате пхп у систему паковања Дебиан (стабилан за друге ја не могу рећи колико још) морате инсталирати и Сухосин Мод на њу. Имао сам проблема са неким системом МАХ-фраме написан у ПХП и донео одлуку кардиналну уместо да раде дебуг систем и назад Репорт Девелопер да изгуби сигурносне закрпе и на тај начин сачувати себи муке. Свеукупно сам храбро могу рећи да је ово један од најважнијих глупих одлука коју сам икада предузетих. На први ремове модул пхп5-Сухосин поновно покретање веб сервер-а и Д порука – Патцх-а је и даље оптерећен. Након кратке студије наћи, да је пакет састављен и прети директно у коду, што значи да нема искључења или уклањање осим рекомпајлирате код поново без патцх. Решите да ће драпна и компајлирате Деб пакет. Урађено раније је рекао уради свој апт-гет соурце пхп5 ме вуче ову изворног кода, разпакетирва и сл. Овде моја идеална идеја да се уклони извор пакета за уклањање фластера и саставити га натраг на Дебиан пакета плус један два мала оптимизација у компилацији. рекао је доне – елиминишу непотребне комад Дебиан / патцхес / сухосин.патцх Скинуо сам га од играња у Дебиан / патцхес / серија. До сада је све јасно и без проблема. Затим покрените да припреми пакет дебуилд и као што сам очекивао сам упропастила компилацију због несталих заглавља. Наравно да ће бити било несташице – И даље сам са дебиан инсталера. Брзо решење глупост поново покренути компилација, у једном тренутку само онесвестити поново, да са непознатом грешке у Зенд / зенд_стреам.х или .ц не сећам се тачно (ако могу носити касније да провери тачно који фајл и линија громогласно). Након неког сумњање шта се дешава и зашто до ђавола може румбле оф тхе Зенд језгра – где је требало буку из било ког разлога и мало дуже студија сматрају да овај проблем је релативно ретке и не много знаке томе. Претпостављам да је један од закрпа у извору био у праву, али ја немам живаца да се провери. Хммммм чудно Супер чудно. Скоро да сам одлучио да састави чисто пхп али сам одлучио да покушам огледала дотдеб да видим шта се дешава. Ту компилација умро због неких чудних зависности, али поштеђен проблеме у главном телу. Што заузврат је разумљиво их урадили 30-40 закрпе које су биле у стабилном пакету. После неколико дугих и неуспешних покушаја Уморио сам се и искључује своју ваниле пакет и саставити га са скоро Дебиан-ски опција са идејом да преправим свој тренутни систем и инсталирати нове пакете од хранилица може да се понаша пакет инсталиран из спремишта (вероватно још диференциране не разумно решење). Као што сам и очекивао, без икакве инсталације закрпе је глатко. Ово је резултат мог цонфиг.нице филе:

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

Ова конфигурација је слична оној од компилацију дотдеб. Като основаното и най важно е prefix опцията където ще се разполагат файловете с библиотеките на php. Него както и другите пъти ги коригирайте според вашата система така че да не се усети компилацията с промяна на пътищата.

Potpomognuto Zemanta

Vector logo of the PHP programming language wi...

Днес ще драсна едно леко четиво за php cache na html. Тука говорим за кеширане на изхода от кода ни а не както съм писал да кешираме скритповете до opcode ниво с eAccelerator. Така за какво иде речнека да си припомним на бързо работата на php-то. Подаваме заявка на web server-a ни той приема параметрите който подаваме след това той ги подава на php скрипта той се компилира и плюе резултат в html вариант. Това е в доста общи линии. Каква ще е идеята ни тука да прескачаме заявки, да прескачаме големи блокове или не чак толкова големи блокове като директно изрисуваме вече веднъж компилирания изход. Преимуществата са очевиднинамаляна на времето за изпълнение, по малко натоварване и потребление на ресурси. Като цяло не е откриване на топлата вода нито е нещо кой знае колко сложно. Има множество класове за тая цел като тект 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 това си е ваше решение. Накрая изчистваме и прекратяваме кеширането. Съвсем тривиална операция ако да речем геенрирането на кеша минава през огромни блокове от код така можем да спестим доста процесорно време като кешираме за известно време или за една сесия. Вече всичко опира то това какво искате дали да е общодостъпен кеша или да е достъпен за различен потребител.

Potpomognuto Zemanta