Від навколо 2 тижнів php 5.3 Введіть історія, повільно, але вірно. 11 оголосив про закінчення його обслуговування, і він буде відтворюватися просто патчі безпеки для 1 рік. В цілому, PHP 5.4 проходить поетапно і старий стабільний PHP 5.5 стає стабільним, яка є добрим веселощів, тому що ви все ще частина доповнень і плагінів php не коректно повністю але версії 5.5 є досить нове, тому я утримаюсь від міграції до неї.

Припустимо, з моєї міграції до 5.4 за 5.3. Раніше я написав на інформація для застарілих функцій, ті, що змінили моє весь особистості і тих, хто вже не має підтримувати мати не драми з обох сторін чи це буде початок "або" не 😉 тому я вибрав сьогодні вранці годину для запуску міграції навколо 7 як вона стала, що існує мінімальний біль під час міграції якщо ти не йти гладко. На мій подив величезні все пройшло більш гладко – ви зібрали PHP 5.4.17 Я почав apache і Oh небеса, це все, що там. Побіжний погляд через журнали не рев depricated або невідомих функцій – Мабуть, хлопці зробили свою справу добре. Потім я тільки повинен prekompiliram та доповнення, які складаються з старий API як APC, RAR і т. д.. Другий перезавантаження і все засинає. Окремо, очікувати поліпшення продуктивності, тому що скрізь люди вказують big toe лотки, що показує як PHP 5.4 споживає менше оперативної пам'яті і виконує сценарії швидше.

Кілька днів тому вийшов XAMPP 1.8.0 Після оновлення з версії 1.7.7 Я мав досить цікавою проблемою. PhpMyAdmin, не моє відкриття і izg″rmâvaše з 403

Доступ заборонено!


Нова концепція безпеки XAMPP:

Доступ до Запитаний об'єкт доступна тільки з локальної мережі.

Цю настройку можна налаштувати у файлі “httpd-xampp.conf”.

Тепер я відкрив httpd-conf xampp які мені.. розташований у / opt/lampp/д/екстра /, на перший погляд, здавалося, все чудово. Правила для локальної мережі були штрафу. Крім того, я б відкрити локальний. WTF ??? Я подивився в журналі і побачити, що мої access відрізаний від konfiguaciâta. Ось речі вже ahnaha мене і, чесно кажучи роду трохи удачі я знайшов проблему. След като преглеждах httpd.conf-а видях в Allow/Deny клаузите един последен ред Все, що вимагають надано. Ох до Eureka. Це новий механізм контролю, яка увійшла в Apache 2.4. x. Це дає доступ або відмовляється від таких все добре, в основному наслідували дозволити/заборонити функціональність :). За да поправим проблема добавяме Require all granted в директивите за папката /opt/lampp/phpmyadmin. Після зміни в мене має такий вигляд:

<Реєстр “/Opt/lampp/phpmyadmin”>
AllowOverride AuthConfig межа
Наказ дозволити,заперечувати
Дозвольте від всіх
Все, що вимагають надано
</Реєстр>

 

Ви завжди можете спробувати інший divoti, Наприклад, щоб перейменувати папку phpmyadmin щось інші і не треба псевдонім для. Але це некрасиво і не дуже значущим 🙂

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

Посилюється 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');

Посилюється Zemanta

Сьогодні ми будемо говорити про своїх смутку про сервер з Suhosin патч і як Debian Sqeeze угода з ним. Тепер давайте почнемо невеликій відстані. Під час інсталяції php в системі пакунків Debian (стабільний для інших, я не можу сказати, як це більше) До нього необхідно встановити suhosin і мод. Я мав проблеми з системою Шарова написана php і я прийняв рішення для kardinalnoto зробити налагодження додатків в системі та відзвітувати розробник отримати патч для безпеки і таким чином врятувати себе головні болі. Взагалі можу сказати, сміливо що це була одна з найбільш нерозумно ухвалених коли-небудь мені. Наступний скасувати оснащення на PHP5-Suhosin скидання веб сервер і на жаль промінь – -патч ще завантажується. Після дуже короткого обстеження виявлено, Цей пакунок зібрано і з Pacha безпосередньо в коді, це означає, що вона не буде вимкнути або видалити, якщо ви prekompilira код заново без арахіс. Вирішіть, що ви будете dr″pna і prekompiliram deb-пакета. Зробили робити ви apt-get джерело php5 тепло ніби підносили мене цей вихідний код, razpaketirva і так далі. Ось ідеальний ідеєю, щоб завантажити Sorsa пакета для видалення на арахіс і скомпілювати його знову debianski пакет плюс два невеликих оптимізацій для компіляції. Сказано і зроблено – Я видалив зображення з патч Debian/patches/Suhosin.Patch Я видалив йому не грати Debian, патчі, серія. Тут все ясно і без проблем. Тоді я запускаю переконфігурувати пакунок з debuild і як я і чекав мого POPs компіляції через відсутні заголовки. Звичайно, там буде такого дефіциту – Я з debian netinstall. Виправити вашу дурість реальних швидкого звільнити знову компіляції, в один момент прем'єр-міністр знову тільки, Це дивне помилка у Зенд / zend_stream. h або c точно не пам'ятаю (Якщо угода пізніше можна перевірити саме який файл і яку рядок я розмовляв). Після це nedoumâvane те, що відбувається і чому пекло можна гул у Зенд Core – де не повинен гул на, бо немає підстав і дещо більше часу навчання виявлено, що ця проблема є досить рідкісним і не багато сигнали для нього. Я підозрюю, що будь-який з латки у джерелі є неправильним, але тепер у мене немає нерви для перевірки. Хм дивні дивні супер. Я майже вирішив узагальнити чистого php, але я вирішив спробувати дзеркал dotdeb Давайте подивимося, що буде відбуватися там. Компіляція померло через деякі дивні залежностей, але затушовувати проблеми в основній частині. Який, у свою чергу, це зі зрозумілих причин вони не було 30-40 патчі, що були в пакунку стабільний. Після кількох довгих і невдалих спроб я потиснув плечима я завантажив ванільний пакет і складена це з майже debian скі параметри з ідеєю, щоб переписати моєї поточної інсталяції і встановлювати нові пакунки з Годівниці для птахів може у вас поведінку пакета встановлена з репозиторію (ймовірно, просто ще один obosobno не мудрі рішення). Як очікується, без будь-яких патчі установка пройшла гладко. Йдеться про вихід з моїх конфігураційний файл приємно.:

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

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

Посилюється Zemanta

Vector logo of the PHP programming language wi...

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

Посилюється Zemanta