से भर 2 सप्ताह php 5.3 धीरे धीरे लेकिन निश्चित रूप से कहानी दर्ज करें. 11 इसके रखरखाव के अंत की घोषणा की और यह सिर्फ सुरक्षा पैच के लिए खेला जाएगा 1 वर्ष. सामान्य में, PHP 5.4 अवस्थाओं और पुराने स्थिर PHP में गुजरता 5.5 स्थिर हो जाता है, जो है मज़ा की तरह क्योंकि आप जोड़ के भाग अभी भी और plugins php के संस्करण है लेकिन पूरी तरह से सही ढंग से काम नहीं करते 5.5 काफी नया है, तो मैं उसे करने के लिए माइग्रेशन से बचना होगा.

तो मेरे प्रवास करने के लिए कहते हैं 5.4 द्वारा 5.3. पहले पोस्ट किया था जानकारी के लिए अप्रचलित सुविधाएँ, मैं इस सुबह घंटे के आसपास माइग्रेशन की शुरुआत के लिए चुना, तो उन है कि मेरे पूरे व्यक्तित्व को बदल दिया है और जो चाहे दोनों पक्षों पर कोई नाटक है बनाए रखने के लिए नहीं रह गया है यह प्रारंभ या 😉 नहीं करने के लिए जा रहा है 7 यह बन गया के रूप में, यदि आप आसानी से नहीं जाते कि वहाँ कम से कम दर्द माइग्रेशन के दौरान है. मेरी असीम आश्चर्य करने के लिए सब कुछ अधिक आसानी से चला गया – आप PHP संकलित है 5.4.17 मैं apache और ओह आकाश शुरू किया, यह सब है वहाँ. लॉग के माध्यम से एक त्वरित झलक depricated या अज्ञात कार्यों की दहाड़ नहीं है – जाहिर है, लड़के उनके काम अच्छी तरह से किया है. उसके बाद मैं केवल prekompiliram और अतिरिक्त है कि APC के रूप में पुराने एपीआई के साथ संकलित कर रहे हैं के लिए है, RAR आदि।. दूसरी पुनरारंभ करना और सब सो. अलग-अलग, प्रदर्शन में सुधार की उम्मीद है क्योंकि हर जगह लोग बड़े ओर इशारा करते हुए पता चलता है कि ट्रे पाँव कैसे PHP 5.4 कम RAM का उपभोग करता है और तेजी से स्क्रिप्ट कार्यान्वित.

कुछ दिन पहले बाहर आया xampp 1.8.0 संस्करण से नवीनीकरण करने के बाद 1.7.7 मैं एक बहुत ही दिलचस्प समस्या थी. Phpmyadmin-नहीं मेरी खोलने और izg″rmâvaše के साथ 403

पहुँच निषिद्ध!


नई XAMPP सुरक्षा अवधारणा:

अनुरोधित ऑब्जेक्ट के लिए पहुँच केवल स्थानीय नेटवर्क से उपलब्ध है.

इस सेटिंग को फ़ाइल में कॉन्फ़िगर किया जा कर सकते हैं “httpd-xampp.conf”.

अब मैं httpd conf xampp खोला जो मुझे... / ऑप्ट/lampp/आदि/अतिरिक्त में स्थित है /, पहली नज़र में, सब कुछ ठीक लग रहा था. स्थानीय नेटवर्क के लिए नियम ठीक थे. इसके अलावा मैं स्थानीय होस्ट खोल होता. WTF ??? मैं पर लॉग देखा और मेरी पहुँच konfiguaciâta द्वारा काट रहा है कि देखने. यहाँ बातें पहले से ही मुझे और सच कहूँ तो किस्मत का एक छोटा सा की तरह मैं समस्या पाया ahnaha. След като преглеждах httpd.conf-а видях в Allow/Deny клаузите един последен ред सभी की आवश्यकता दी. ओह यूरेका के लिए. यह नया नियंत्रण तंत्र है जो में प्रवेश किया है अपाचे 2.4. x. यह पहुँच या इस तरह से मना कर देता है सब ठीक, मूल रूप से अनुमति दें/इंकार कार्यक्षमता नक़ल :). За да поправим проблема добавяме Require all granted в директивите за папката /opt/lampp/phpmyadmin. मुझ में परिवर्तन के बाद इस तरह दिखता है

<निर्देशिका “/ऑप्ट/lampp/phpmyadmin”>
AllowOverride AuthConfig सीमा
आदेश की अनुमति दें,इनकार
सब से अनुमति दें
सभी की आवश्यकता दी
</निर्देशिका>

 

तुम हमेशा एक और divoti की कोशिश कर सकते हैं, फ़ोल्डर phpmyadmin कुछ अन्य का नाम और उपनाम के लिए नहीं करने के लिए उदाहरण के लिए,. लेकिन यह बदसूरत और बहुत सार्थक नहीं 🙂 है

पी. एस पूछा मुझे क्यों मैं XAMPP का उपयोग करें और सभी घटक की स्थापना के रूप में यह मेरी डेबियन है साफ नहीं पैदा हुआ था – отговорът е много много простМЪРЗЕЛ. Мързи ме да напиша няколко команди после да си пипна конфовете и прочие. Доста по лесно е сваляш целия пакет разархивираш и палиш 😉

Zemanta द्वारा बढ़ाया

Debian OpenLogo

अंतिम दिन एक दोस्त ने मुझे लिखा है कि वह के साथ एक समस्या थी डेबियन एक सर्वर-अपने. अधिक स्पष्ट पहरा नहीं EASB अधिक 30 चाहे कितना मिनट धुनों session.gc_maxlifetime. В общи линии проблема е че Debian са решили да пренапишат поведението на сесиите като вместо garbage collector-а се стартира един cron на всяка 9-та и 39-та минута който почиства старите сесии. Тои се намира в /etc/cron.d/php5

като цяло семпличък скрипт който стартира от своя страна /usr/lib/php5/maxlifetime и в него се намира променливата колко време да е живота на кукито който е 1440 секунди или 24 минути 😉 От тук нататък има 2 варианта или да се спре крон-а и по този начин се прекратява автоматичното чистене което може по късно да се пренастрой от php.ini или направо в самия скрипт да се промени продължителноста на живота на сесиите с променливата max. Аз лично предпочитам втория вариант. Доста по чист е като цяло но има и недостатъкако се презапише файлът промените ни ще се изгубят което си е неприятен факт.

पी एस. Сега като се замисля вероятно ако се дефинира друго място където да се съхранява сеиината информация чрез самото 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 पैच और कैसे डेबियन उसके साथ Sqeeze सौदा. अब चलो थोड़ी दूरी शुरू. जब आप php के डेबियन पैकेज सिस्टम में स्थापित (दूसरों के लिए स्थिर है, मैं कैसे यह अधिक है कह सकता) आप suhosin और mod करने के लिए इसे स्थापित करना होगा. मैं php की प्लाई-लिखा प्रणाली के साथ समस्याओं था और मैं डिबगिंग अनुप्रयोग सिस्टम पर करने के लिए और वापस करने के लिए डेवलपर के लिए सुरक्षा पैच प्राप्त करने के लिए और इसलिए अपने आप को सिर दर्द को बचाने के लिए रिपोर्ट करने के लिए kardinalnoto के लिए निर्णय लिया. आम तौर पर मैं साहसपूर्वक कह सकते हैं कि यह सबसे अधिक मूर्ख कभी मेरे लिए गए निर्णयों में से एक था. अगले पूर्ववत् स्नैप-पर php5-suhosin किसी वेब सर्वर रीसेट करें और उफ़ बीम – एक पैच अभी भी लोड है. एक बहुत ही कम सर्वेक्षण के बाद का पता लगाया, उस पैकेज संकलित है और पाचा में जिसका अर्थ है कि सीधे कोड के साथ यह होगा नहीं बंद करें या जब तक निकालें prekompilira कोड नए सिरे से मूंगफली के बिना आप. तय करेगा कि आप dr″pna और prekompiliram देब पैकेज करने के लिए. किया है आप-स्रोत php5 मिल कर मुझे खींच इस स्रोत कोड, razpaketirva और इतने पर. यहाँ मूँगफली को निकालने के लिए और इसे फिर से debianski पैकेज प्लस संकलन के लिए एक दो छोटे अनुकूलन करने के लिए संकलित करने के लिए Sorsa पैकेज के डाउनलोड करने के लिए एकदम सही विचार. कहा और किया – मैं छवि पैच से हटा दिया है debian/patches/suhosin.patch मैं उसे खेलने नहीं करने के लिए हटा दिया है डेबियन/पैच/श्रृंखला. यहाँ सब कुछ स्पष्ट रूप से और समस्याओं के बिना. उसके बाद मैं पैकेज के साथ recompile करने के लिए चलाएँ debuild और मैं अपने चबूतरे संकलन गुम शीर्ष लेख के कारण अपेक्षित रूप. बेशक वहाँ ऐसी कमी हो जाएगा – मैं डेबियन netinstall के साथ कर रहा हूँ. अपनी मूर्खता असली जल्दी ठीक करें फिर से संकलन जारी, एक बात प्रधानमंत्री पर ही फिर से, यह है Zend में एक अजीब बग / zend_stream. ज या सी ठीक से याद नहीं (सौदा बिल्कुल जो फ़ाइल और जो लाइन की जांच करने के लिए बाद में कर सकते हैं, तो मैं बात कर रहा था). एक nedoumâvane के बाद क्या हो रहा है और क्यों नरक Zend कोर में गड़गड़ाहट का शब्द कर सकते हैं – जहां पर कोई कारण और कुछ हद तक लंबे समय तक अध्ययन ने पाया है कि यह समस्या अपेक्षाकृत दुर्लभ के लिए गड़गड़ाहट का शब्द नहीं चाहिए और न उसके लिए संकेत बहुत. मुझे लगता है कि स्रोत में पैच के किसी भी गलत है, लेकिन अब मैं पुष्टि करने के लिए कोई नसों है. Hmmmmm अजीब सुपर अजीब. मैं लगभग शुद्ध php संकलन का फैसला किया, लेकिन मैं बाहर दर्पण की कोशिश का फैसला किया dotdeb चलो देखते हैं क्या वहाँ होगा. वहाँ कुछ अजीब निर्भरताओं के कारण मृत्यु हो गई लेकिन मुख्य भाग में समस्याओं पर राष्ट्रीयता संकलन. जो बारी में है जाहिर है वे चले गये थे 30-40 पैच है कि स्थिर पैकेज में थे. मैं सरका दिया जाता कई लंबी और असफल प्रयासों के बाद मैं वेनिला पैकेज डाउनलोड और यह आप भंडार से स्थापित पैकेज का व्यवहार कर सकते हैं अपने वर्तमान स्थापना को फिर से लिखना और बर्ड फीडर से नये संकुल को स्थापित करने के लिए विचार के साथ लगभग डेबियन-स्की विकल्प के साथ संकलित (शायद बस एक और obosobno नहीं बुद्धिमान निर्णय). किसी भी पैच के बिना अपेक्षित के रूप में स्थापना ठीक ठाक हो गया. यह उत्पादन अच्छा मेरे config फाइल की है।:

#! /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 вариант. Това е в доста общи линии. Каква ще е идеята ни тука да прескачаме заявки, да прескачаме големи блокове или не чак толкова големи блокове като директно изрисуваме вече веднъж компилирания изход. Преимуществата са очевиднинамаляна на времето за изпълнение, по малко натоварване и потребление на ресурси. Като цяло не е откриване на топлата вода нито е нещо кой знае колко сложно. Има множество класове за тая цел като पीएचपी 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 द्वारा बढ़ाया