ад прыкладна 2 PHP тыдня 5.3 Ён уваходзіць у гісторыю павольна, але дакладна. 11-га яны абвясцілі аб заканчэнні яго тэхнічнага абслугоўвання і якія будуць размешчаны толькі абнаўлення для сістэмы бяспекі 1 год. У асноўным PHP 5.4 ідзе ў некалькі этапаў старой стабільнай і PHP 5.5 становіцца устойлівым, які менш весела, таму што да гэтага часу частка дапаўненняў і новых убудоў PHP працаваць не зусім карэктна, але версія 5.5 Гэта даволі новае, так што я ўстрымаюся ад міграцыі да яго.

Так скажам, для мяне міграцыі 5.4 ад 5.3. Я раней паставіў інфармацыя для састарэлых функцый, тыя, якія рэзка змяніліся, і тыя, хто больш не будзе падтрымлівацца на працягу ня драмамі з абодвух бакоў, якія ня запальваюцца або 😉 Так сёння раніцай сінхранізацыі пачатку міграцыі вакол 7 станаўленне, што ёсць мінімальная боль падчас міграцыі, калі не ісці гладка. Да майго вялікага здзіўлення, усё прайшло больш гладка – скампіляваць PHP 5.4.17 Я пачаў яго і Апач-о нябёсах ўсё ёсць. Хуткі погляд вакол бярвёны будзе роў depricated ці ўвогуле не невядомых функцый – Відавочна, хлопцы прарабілі сваю працу добра. Тады я быў проста перакампіляваць і харчовыя дабаўкі, якія скампіляваны са старым API як APC, RAR і іншыя. Па-другое перазагрузка і ўсе заснулі. Акрамя чакаць паляпшэнняў у прадукцыйнасці, як людзі ва ўсім свеце, паказваючы вялікі палец ногі некаторыя таблеткі, дзе паказана, як PHP 5.4 спажывае менш аператыўнай памяці і выконвае сцэнары хутчэй.

Праз некалькі дзён з Праграме xampp 1.8.0 учора пасля абнаўлення з версіі 1.7.7 Я меў даволі цікавую праблему. PHPMYADMIN-і ён не адкрываецца, і зароў 403

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


Новая канцэпцыя бяспекі XAMPP:

Доступ да запытаныя аб'екты даступная толькі з лакальнай сеткі.

Гэты параметр можна наладзіць ў файле “HTTPD-xampp.conf”.

Адразу адкрылі HTTPd-xampp.conf, які для мяне з'яўляецца ў / Opt / lampp / і г.д. / дадатковыя /, На першы погляд усё выглядала выдатна. Правілы для лакальнай сеткі былі сярод. Акрамя адкрыцця лакальнага хаста. WTF ??? Я паглядзеў на бервяно-і бачыць, што мой доступ адсякаецца konfiguatsiyata. Вось цяпер, што я ахнуў і адкрыта некалькі менш поспехі знайшоў праблему. След като преглеждах httpd.conf-а видях в Allow/Deny клаузите един последен ред Патрабуюць усё прадастаўлена. Аб эўрыка. Гэта новы механізм кантролю, які ўступіў у Апач 2.4.x. Ён дае доступ або адмову любога такога штрафу, у асноўным імітуюць Дазволiць / Забаранiць функцыянальнасць :). За да поправим проблема добавяме Require all granted в директивите за папката /opt/lampp/phpmyadmin. Пасля таго, як змены ў мяне выглядае як

<каталог “/Opt / lampp / PHPMyAdmin”>
AllowOverride AuthConfig Limit
заказ дазваляюць,адмаўляць
Дазвольце ад усіх
Патрабуюць усё прадастаўлена
</каталог>

 

Viangi можа паспрабаваць іншы дзікі, напрыклад, каб перайменаваць тэчку PHPMYADMIN нешта іншае, а не псеўданім. Але гэта непрыгожа і не вельмі значнай 🙂

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

падтрымліваючы Zemanta

Debian OpenLogo

На днях адзін напісаў мне, што ў яго былі праблемы з У Debian ваш сервер-а. За не ахоўвае больш, чым EASB 30 як бы ні хвіліны мелодыі session.gc_maxlifetime. У асноўным праблема заключаецца ў тым, што Debian вырашыў перапісаць паводзіны сесій замест прыбіральнік смецця-і пачынае хрон кожны 9-й і 39-й хвіліне, якая выдаляе старыя сесіі. Toi размешчаны ў /etc/cron.d/php5

като цяло семпличък скрипт който стартира от своя страна /usr/lib/php5/maxlifetime и в него се намира променливата колко време да е живота на кукито който е 1440 секунд ці 24 хвілін 😉 Адсюль там 2 варыянты або спыніць карону, і, такім чынам, скасавала аўтаматычную ачыстку, якія пазней можна пераналадзіць з дапамогай php.ini ці непасрэдна ў сам скрыпт, каб змяніць працягласць жыцця сесій з зменнай макс. Я асабіста аддаю перавагу другі варыянт. Значна чысцей, як правіла, але мае недахоп, – ако се презапише файлът промените ни ще се изгубят което си е неприятен факт.

пс. Сега като се замисля вероятно ако се дефинира друго място където да се съхранява сеиината информация чрез самото 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 patch і як У Debian Sqeeze здзелкі з ім. Цяпер мы пачынаем трохі паасобку. Пры ўсталёўцы PHP ў сістэме кіравання пакетамі Debian (стабільным іншым я не магу сказаць, як яшчэ) вы павінны ўсталяваць і Suhosin мод да яго. У мяне былі праблемы з некаторымі MAH-кадр сістэмы, напісанай на PHP і прыняў рашэнне кардынальнае замест таго, каб рабіць адладку сістэмы і назад Report Developer страціць патчы бяспекі і тым самым выратаваць сябе непрыемнасці. У цэлым, я магу смела сказаць, што гэта быў адзін з самых дурных рашэнняў, якія я калі-небудзь. У першым модулі выдаліць php5-Suhosin перазагрузка вэб-сервер-а і упс паведамленне – патч-а па-ранейшаму загружаецца. Пасля кароткага даследаванні знайсці, што пакет сабраны і скача непасрэдна ў кодзе, які азначае, што не выключэнне або выдаленне, калі не перакампіляваць код зноў без патча. Вырашыце, што будзе drapna і перасабраць да пакета DEB. Здзейснена раней сказаў зрабіць вашу APT-атрымаць зыходны php5 цягавы мне гэты зыходны код, razpaketirva і г.д.. Вось мой ідэал ідэя, каб выдаліць крыніца пакета, каб выдаліць патч і сабраць яго назад у пакет Debian плюс адзін два невялікіх аптымізацый у кампіляцыі. сказаў зроблена – ліквідаваць непатрэбнае пляма Debian / патчы / suhosin.patch Я адвёў яго ад гульні ў Debian / патчы / серыя. Да гэтага часу ўсё ясна і без праблем. Затым запусціце кампіляваць пакет debuild і, як я чакаў, я падарваў кампіляцыю з-за адсутных загалоўкаў. Натуральна, будуць нейкія дэфіцыт – Я да гэтага часу з DEBiAN NetInstall. Хуткае выпраўленне тупасць зноў запусціць кампіляцыю, толькі ў адным пункце зноў страціць прытомнасць, што зь дзіўнай памылкай у Zend / zend_stream.h або .c дакладна не памятаю (калі я магу мець справу пазней, каб праверыць, які менавіта файл і лінія прагрымела). Праз нейкі сумняваючыся, што адбываецца і чаму, чорт вазьмі, можа грукатаць ядра Zend – дзе яна павінна грукатаць па любой прычыне і трохі больш даследавання лічаць, што гэтая праблема з'яўляецца адносна рэдкім і няшмат хто яго прыкметы. Я падазраю, што адзін з патчаў ў крыніцы было няправільна, але ў мяне няма нерваў, каб праверыць яго. Хммммм дзіўна супер дзіўна. Амаль я вырашыў сабраць чысты PHP, але я вырашыў паспрабаваць люстэрка dotdeb там, каб убачыць, што адбываецца. Там зборнік памёр з-за нейкіх дзіўных прыхільнасцяў, але пазбаўленыя ад праблем у асноўным корпусе. Што ў сваю чаргу зразумела яны зрабілі іх 30-40 патчы, якія знаходзіліся ў стабільным пакеце. След няколко дълги и неуспешни опита ми писна и сви свалих ванила пакета и го компилирах с почти debian-ски опции с идеята да пренапише настоящата ми инсталация и като се инсталират нови пакети от хранилката да може да има поведение на пакет инсталиран от хранилището (вероятно поредното не обособно разумно решение). Както очаквах без всички кръпки инсталацията мина гладко. Това е изхода на config.nice файлът ми:

#! /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 кэш з HTML. Тут мы гаворым пра кэшавання вываду нашага кода не as've запісваецца ў кэш для skritpovete опкод на адным узроўні з Eaccelerator. Так што гэта ўсё аб – давайце ўспомнім пра хуткай працы PHP-гэта. Мы адправіць запыт вэб-сервер-Амерыкана ён прымае параметры, якія мы праходзім, то ён карміў іх сцэнар PHP ён кампілюе і плюне яму ў выніку ў HTML версіі. Гэта ў даволі агульных рысах,. Якой будзе наша ідэя тут, каб прапусціць запыты, каб прапусціць вялікія блокі ці не гэтак вялікі, як блокі пафарбаваны непасрэдна калісьці ўжо скампіляваны выснову. перавагі відавочныя – скарачэнне часу выканання, менш нагрузкі і спажыванне рэсурсаў. Гэта, як правіла, не выяўляе гарачую ваду ці што-небудзь, хто ведае, наколькі складана. Ёсць шмат класаў для гэтай мэты У PHP груша Cache_Lite які мае выдатную функцыю, але я думаю, што ў будучыні, каб напісаць з маёй значна водпуску і горнаруднай іх патрабаванні да кэшаванню. Цяпер мы разгледзім варыянт спрадвечна Функцыі кіравання высновай. Так што давайце што-небудзь схованка –

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

Над кодам трывіяльна, але дазвольце мне растлумачыць, што адбылося. Па-першае, якая частка DECLARE кода пачынаецца кэшаванне. Затым мы ствараем стандартны спосаб код выхаду. След това генерирания изход се присъединява към променлива която ще е достъпна по късно дали през файл някакво или през sessions това си е ваше решение. Накрая изчистваме и прекратяваме кеширането. Съвсем тривиална операция ако да речем геенрирането на кеша минава през огромни блокове от код така можем да спестим доста процесорно време като кешираме за известно време или за една сесия. Вече всичко опира то това какво искате дали да е общодостъпен кеша или да е достъпен за различен потребител.

падтрымліваючы Zemanta