Üzerinden çevresinde 2 hafta php 5.3 Yavaş ama emin adımlarla hikaye girin. 11 onun bakım bildirdi ve sadece güvenlik düzeltme ekleri için oynanacak 1 yıl. Genel olarak, PHP 5.4 aşamaları ve eski kararlı PHP geçişlerinde 5.5 kararlı hale gelir, hangi tür eğlenceli çünkü belgili tanımlık ekleme parçası hala ve PHP eklentileri çalışmıyor tamamen doğru ama versiyonu 5.5 oldukça yeni bu yüzden ona göç--dan kaçınacaktır.

Benim göç diyelim 5.4 itibaren 5.3. Ben daha önce yayınlanmıştır bilgi Eski özellikler için, Bu sabah saat geçiş başlatmak için seçti tüm kişiliğimi değişti ve artık hiçbir dramalar her iki tarafta olup olmadığı için korumak zorunda olan başına ya da değil 😉 gidiyor 7 Bu oldu gibi, sorunsuz gitmezsen geçiş sırasında çok az ağrı işte. Benim büyük sürpriz için her şey daha sorunsuz gitti – PHP derledik 5.4.17 Apache ve Oh Tanrım başladı, hepsi orada. Bir bakışta günlükleri aracılığıyla depricated veya bilinmeyen işlevleri kükreme yok – Görünüşe göre çocuklar iyi iş yapmış. O zaman sadece prekompiliram ve APC olarak eski API ile derlenmiş eklemeler var, RAR-etc.. İkinci yeniden başlatma ve hepsi uyuyor. Çünkü büyük işaret eden insanlar gösterir tepsileri her yerde parmak ayrı olarak, performans iyileştirmeleri bekliyoruz nasıl PHP 5.4 daha az RAM tüketiyor ve daha hızlı komut dosyalarını çalıştırır.

Bir kaç gün önce çıktı XAMPP 1.8.0 Sürümünden yükselttikten sonra 1.7.7 Ben oldukça ilginç bir sorun vardı. PhpMyAdmin-değil benim açılış ve izg″rmâvaše ile 403

Erişimi yasak!


Yeni XAMPP güvenlik kavramı:

Istenen nesne erişim yalnızca yerel ağ bağlantısı kullanılabilir.

Bu ayar dosyasında yapılandırılabilir “Apache xampp.conf”.

Httpd-conf xampp açıldı şimdi bana... / opt/lamba/etc/ekstra içinde yer alan /, ilk bakışta, her şey yolunda gibiydi. Yerel ağ için kurallar iyi olduğunu. Bunun dışında ben localhost açacak. WTF ??? Günlük baktı ve benim erişim konfiguaciâta tarafından kesilmiş bkz:. Burada şeyler zaten ben ve açıkçası biraz şans tür sorun buldum ahnaha. След като преглеждах httpd.conf-а видях в Allow/Deny клаузите един последен ред Hepsi gerektiren verilen. Oh Eureka için. İçine giren yeni kontrol mekanizması budur Apache 2.4.x. Access veya tür Red verir her şey çok güzel, temelde izin ver/engelle işlevselliği taklit :). За да поправим проблема добавяме Require all granted в директивите за папката /opt/lampp/phpmyadmin. Bu gibi görünüyor bana değişiklikleri sonra

<Dizin “/tercih/lamba/phpmyadmin”>
AllowOverride AuthConfig sınırı
Emri izin,inkar
Tüm izin
Hepsi gerektiren verilen
</Dizin>

 

Her zaman başka bir divoti deneyebilirsiniz, Örneğin, klasör phpmyadmin başka şeyler yeniden adlandırıp değil takma yapmak için. Ama çirkin ve çok anlamlı 🙂

s. s sorular beni neden XAMPP kullanın ve benim Debian olduğu gibi tüm bileşenleri yükleme temiz değil doğdu – отговорът е много много простМЪРЗЕЛ. Мързи ме да напиша няколко команди после да си пипна конфовете и прочие. Доста по лесно е сваляш целия пакет разархивираш и палиш 😉

Zemanta tarafından geliştirilmiş

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 tarafından geliştirilmiş

Bugün biz bir sunucu ile ilgili woes hakkında konuşuyor olacak Suhosin yama ve nasıl Debian Onunla sqeeze. Şimdi biraz mesafe başlayalım. Debian paket sistemi php yüklediğinizde (diğerleri için kararlı, ne daha fazla olduğunu söyleyemem.) Suhosin ve mod için yüklemeniz gerekir. Kat yazılı sistemi PHP ile ilgili sorunlar vardı ve geliştiriciler için için güvenlik düzeltme ekini alın ve bu yüzden kendimi baş ağrısı kaydetmek için geri bildirmek için ve sistemde hata ayıklama uygulamaları yapmak kardinalnoto için karar aldı. Genellikle cesaretle bu bana şimdiye kadar alınan en aptalca kararlar olduğunu söyleyebiliriz. İleri geri takılabilir PHP5-Suhosin web sunucusu sıfırlamak ve oops ışınla – a-yama hala yüklenir. Sonra çok kısa bir araştırma tespit, Bu paket derlendi ve Pacha anlamına doğrudan kod ile değil devre dışı bırakmak veya kaldırmanın kodu yeniden olmadan fıstık prekompilira. Dr″pna ve prekompiliram deb paketini için olacak karar. -Si olmak bitmiş eğer uygun-kaynak php5 almak yapmak bana bu kaynak kodu çekerek, razpaketirva ve benzeri. Burada fıstık kaldırmak ve yeniden debianski paketi artı derleme için bir iki küçük en iyi duruma getirmeleri için derlemek için Sorsa paketi indirmek için mükemmel bir fikir. Söylendi ve yapıldı – Ive'çıkarmak görüntü yama--dan Debian/Patches/Suhosin.Patch Onu oynamak değil kaldırdık Debian/yamalar/serisi. Burada her şeyi açıkça ve sorunsuz. O zaman paketi ile yeniden derlemek için aday debuild ve benim çıkar derleme eksik üstbilgileri nedeniyle beklendiği gibi. Tabii böyle yetersizlikleri olacaktır – Im'ile debian NetInstall. Aptallığın çabucak düzeltmek yeniden derleme sürümü, bir noktası Başbakan, yine sadece, Zend garip bir hata / zend_stream. s veya c tam olarak hatırlamıyorum (Eğer anlaşma daha sonra tam olarak hangi dosya ve hangi satır kontrol etmek için konuşuyordum.). Bir nedoumâvane sonra ne oluyor ve neden oluyor'Zend Core rumble – üzerinde hiçbir sebep ve biraz daha uzun bir çalışma bu sorun nispeten nadir olduğunu tespit için rumble gerekmiyor nerede pek onun için sinyallerin. Ben kaynak yamalarındaki değil yanlış ama şimdi doğrulamak için hiçbir sinirlere sahip şüpheli. Hmmmmm garip süper garip. Neredeyse saf php derlemek karar verdi ama ben aynalar denemeye karar verdi dotdeb Orada ne olacak bakalım. Orada bazı garip bağımlılıkları nedeniyle öldü ama ana bölümünde sorunlar üzerinde glossed derleme. Buna karşılık olduğu anlaşılır onlar were gone 30-40 istikrarlı paketinde olduğunu yamalar. Ben omuz silkti birkaç uzun ve başarısız denemeden sonra vanilya paket indirilen ve bu davranış depodan yüklü paketi olabilir benim geçerli yükleme yeniden yazmak ve kuş Besleyici'den yeni paketler kurmak için fikir ile neredeyse debian-Kayak seçenekleriyle derlenmiş (büyük ihtimalle başka bir obosobno değil akıllıca bir karar). Olarak beklenen herhangi yamaları olmadan Kurulum sorunsuz gitti. Bu benim yapılandırma dosyası güzel çıktı.:

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

Bu yapılandırma dotdeb derleme için benzer. Като основаното и най важно е prefix опцията където ще се разполагат файловете с библиотеките на php. Него както и другите пъти ги коригирайте според вашата система така че да не се усети компилацията с промяна на пътищата.

Zemanta tarafından geliştirilmiş

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 tarafından geliştirilmiş