daripada kira-kira 2 php minggu 5.3 Dia masuk cerita perlahan-lahan. Pada 11 mereka mengumumkan akhir penyelenggaraan dan yang akan diletakkan hanya patch keselamatan untuk 1 tahun. Pada asasnya PHP 5.4 pergi secara berperingkat stabil lama dan PHP 5.5 menjadi stabil, yang kurang menyeronokkan kerana masih sebahagian daripada penambahan dan plugin php baru tidak bekerja agak betul tetapi versi 5.5 Ia agak baru jadi saya akan menahan diri daripada penghijrahan kepadanya.

Jadi katakan bagi saya untuk penghijrahan 5.4 daripada 5.3. Saya telah meletakkan sebelum ini maklumat untuk fungsi usang, orang-orang yang telah berubah secara dramatik dan mereka yang tidak lagi akan dikekalkan tanpa drama di kedua-dua belah pihak yang tidak akan menyalakan atau 😉 Jadi ini masa pagi permulaan penghijrahan sekitar 7 menjadi, bahawa ada kesakitan yang minimum semasa migrasi jika tidak berjalan dengan lancar. Terkejut besar saya, semuanya berjalan dengan lebih lancar – disusun PHP anda 5.4.17 Saya mula dan apache-oh langit semuanya ada. Satu pandangan cepat sekitar balak akan bergelora fungsi DIGUNAKAN LAGI atau tidak sama sekali tidak diketahui – jelas lelaki telah melakukan tugas mereka dengan baik. Kemudian saya hanya susun semula dan makanan tambahan yang disusun dengan API lama sebagai APC, RAR dan lain-lain. reboot kedua dan segala-galanya tertidur. Selain mengharapkan peningkatan produktiviti sebagai orang di mana-mana menunjuk jari kaki beberapa tablet di mana menunjukkan bagaimana PHP 5.4 menggunakan kurang RAM dan melaksanakan skrip lebih cepat.

Beberapa hari keluar XAMPP 1.8.0 semalam selepas naik taraf dari versi 1.7.7 Saya mempunyai cukup satu masalah yang menarik. Phpmyadmin dan dia tidak membuka dan mengaum penuh semangat dengan 403

akses dilarang!


konsep keselamatan baru XAMPP:

Akses kepada objek yang diminta hanya boleh didapati dari rangkaian tempatan.

Tetapan ini boleh dikonfigurasikan dalam fail “httpd-xampp.conf”.

Dengan serta-merta membuka httpd-xampp.conf yang bagi saya adalah dalam / opt / lampp / etc / tambahan /, Pada pandangan pertama segala-galanya kelihatan halus. Peraturan untuk rangkaian tempatan adalah antara. Selain localhost pembukaan. WTF ??? Saya melihat pada log dan melihat bahawa akses saya terputus oleh konfiguatsiyata. Di sini sekarang apa yang saya gasped dan terus terang agak kurang nasib mendapati masalah ini. След като преглеждах httpd.conf-а видях в Allow/Deny клаузите един последен ред Memerlukan semua diberikan. Oh eureka. Ini adalah satu mekanisme kawalan baru yang masuk ke dalam apache 2.4.x. Ia memberikan akses atau menolak mana-mana denda itu, pada dasarnya meniru Benarkan / Halang fungsi :). За да поправим проблема добавяме Require all granted в директивите за папката /opt/lampp/phpmyadmin. Selepas perubahan pada diri saya kelihatan seperti

<Direktori “/opt / lampp / phpmyadmin”>
AuthConfig Had AllowOverride
Bagi membolehkan,menafikan
Benarkan dari semua
Memerlukan semua diberikan
</Direktori>

 

Viangi boleh cuba liar lain, sebagai contoh, untuk menamakan semula sesuatu folder phpmyadmin lain dan tidak melakukan alias untuk. Tetapi ia adalah hodoh dan tidak begitu bermakna 🙂

p.s Mereka bertanya kepada saya mengapa saya menggunakan XAMPP tidak pemasangan bersih semua komponen seperti mereka adalah Debian saya dilahirkan – отговорът е много много простМЪРЗЕЛ. Мързи ме да напиша няколко команди после да си пипна конфовете и прочие. Доста по лесно е сваляш целия пакет разархивираш и палиш 😉

Dipertingkatkan oleh Zemanta

Debian OpenLogo

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

Dipertingkatkan oleh Zemanta

Hari ini saya bercakap mengenai masalah sekitar pelayan tunggal dengan Suhosin patch dan bagaimana Biasa perjanjian Sqeeze dengannya. Sekarang kita mula jarak sedikit. Apabila anda memasang php dalam sistem pembungkusan Debian (stabil untuk orang lain saya tidak boleh mengatakan bagaimana lagi) anda mesti memasang dan suhosin mod kepadanya. Saya mempunyai masalah dengan beberapa sistem MAH-frame ditulis dalam php dan mengambil keputusan kardinal dan bukannya untuk melakukan debug sistem dan kembali Laporan Pemaju kehilangan patch keselamatan dan dengan itu menyelamatkan diri masalah. Secara keseluruhan saya berani boleh mengatakan bahawa ini adalah salah satu keputusan yang paling bodoh pernah saya diambil. Pada modul keluarkan pertama pHP5-suhosin restart web server-a dan oops post – patch-a masih dimuatkan. Selepas kajian yang singkat mencari, bahawa pakej disusun dan Trots langsung dalam kod yang bermaksud bahawa tiada pengecualian atau penyingkiran kecuali susun semula kod sekali lagi tanpa patch. Menyelesaikan yang akan drapna dan susun semula pakej deb. Selesai lama berkata melakukan apt-get sumber PHP5 menarik saya kod ini sumber anda, razpaketirva dan lain-lain. Di sini idea ideal saya untuk membuang sumber pakej untuk mengeluarkan patch dan menyusun semula pakej Debian tambah satu dua pengoptimuman kecil dalam penyusunan. berkata selesai – menghapuskan patch yang tidak perlu debian / patch / suhosin.patch Saya dikeluarkan dia dari bermain di debian / patch / siri. Setakat ini segala sesuatu dengan jelas dan tanpa masalah. Kemudian berjalan untuk menyusun pakej debuild dan seperti yang saya harapkan saya meniup kompilasi kerana pengepala hilang. Sememangnya akan ada apa-apa kekurangan – Saya masih dengan netinstall debian. cepat kebodohan berjalan lagi kompilasi, pada satu ketika hanya pengsan lagi, bahawa dengan ralat aneh di Zend / zend_stream.h atau .c tidak ingat dengan tepat (jika saya boleh berurusan kemudian untuk memeriksa dengan tepat yang fail dan garis bergemuruh). Selepas beberapa perselisihan apa yang berlaku dan mengapa neraka boleh bergemuruh teras Zend yang – di mana ia sepatutnya gemuruh untuk apa-apa sebab dan kajian yang lebih panjang sedikit mendapati bahawa masalah ini adalah tanda-tanda yang agak jarang berlaku dan tidak ramai itu. Saya mengesyaki bahawa salah satu patch dalam sumber yang tidak kena tetapi saya tidak mempunyai saraf untuk memeriksa. Hmmmmm pelik super pelik. Hampir saya mengambil keputusan untuk menyusun php tulen tetapi saya memutuskan untuk mencuba cermin dotdeb di sana untuk melihat apa yang berlaku. Terdapat kompilasi meninggal dunia kerana beberapa ketagihan pelik tetapi terlepas daripada masalah dalam badan utama. Yang seterusnya boleh difahami mereka lakukan mereka 30-40 patch yang berada dalam pakej stabil. Selepas beberapa percubaan lama dan tidak berjaya saya mendapat letih dan dimatikan pakej vanila saya dan menyusun dengan pilihan hampir debian-ski dengan idea untuk menulis semula sistem semasa saya dan memasang pakej baru dari feeder boleh berkelakuan pakej dipasang dari repository (mungkin lain dibezakan bukan penyelesaian yang munasabah). Seperti yang saya harapkan tanpa pemasangan patch berjalan lancar. Ini adalah hasil daripada fail config.nice saya:

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

Konfigurasi ini adalah sama dengan penyusunan dotdeb. Като основаното и най важно е prefix опцията където ще се разполагат файловете с библиотеките на php. Него както и другите пъти ги коригирайте според вашата система така че да не се усети компилацията с промяна на пътищата.

Dipertingkatkan oleh Zemanta

Vector logo of the PHP programming language wi...

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

Dipertingkatkan oleh Zemanta