Dari sekitar 2 Minggu php 5.3 Masukkan cerita perlahan tapi pasti. 11 mengumumkan akhir pemeliharaannya dan itu akan diputar hanya patch keamanan untuk 1 tahun. Secara umum, PHP 5.4 Tiket dalam tahap dan PHP stabil yang lama 5.5 menjadi stabil, yang merupakan semacam menyenangkan karena Anda masih bagian dari tambahan dan plugin php tidak bekerja benar-benar benar tapi versi 5.5 ini cukup baru jadi saya akan menahan diri dari migrasi kepadanya.

Jadi, katakanlah untuk saya migrasi ke 5.4 oleh 5.3. Sebelumnya saya posted informasi untuk fitur usang, mereka yang telah berubah seluruh kepribadian saya dan mereka yang tidak lagi harus menjaga memiliki drama ada di kedua sisi Apakah itu akan mulai atau tidak 😉 jadi saya memilih jam pagi ini untuk memulai migrasi di sekitar 7 seperti itu menjadi, bahwa ada rasa sakit minimal selama migrasi jika Anda tidak berjalan lancar. Saya terkejut besar semuanya berjalan lebih lancar – Anda telah mengumpulkan PHP 5.4.17 Aku mulai apache dan langit Oh, itu semua ada. Sekilas cepat melalui log tidak mengaum depricated atau fungsi tidak diketahui – Rupanya, anak-anak telah melakukan pekerjaan mereka juga. Maka saya hanya harus prekompiliram dan penambahan yang disusun dengan API tua sebagai APC, RAR dll.. Restart kedua dan semua tertidur. Secara terpisah, mengharapkan peningkatan kinerja karena di mana-mana orang-orang yang menunjuk besar kaki nampan yang menunjukkan bagaimana PHP 5.4 mengkonsumsi kurang RAM dan mengeksekusi skrip lebih cepat.

Beberapa hari lalu keluar XAMPP 1.8.0 Setelah meng-upgrade dari versi 1.7.7 Aku punya masalah cukup menarik. PhpMyAdmin-tidak pembukaan saya dan izg″rmâvaše dengan 403

Akses yang dilarang!


Konsep keamanan XAMPP baru:

Akses ke objek diminta hanya tersedia dari jaringan lokal.

Pengaturan ini dapat dikonfigurasi dalam file “httpd-xampp.conf”.

Sekarang aku membuka xampp httpd-conf saya... yang terletak di the/opt/Macintosh/dll/tambahan /, pada pandangan pertama, semuanya tampak baik-baik saja. Aturan untuk jaringan lokal yang baik. Selain itu, aku akan membuka localhost. WTF ??? Saya melihat log dan lihat bahwa akses saya dipotong oleh konfiguaciâta. Hal-hal di sini sudah ahnaha saya dan terus terang seperti sedikit keberuntungan saya menemukan masalah. Setelah melalui httpd.conf-dan melihat di Allow / Deny klausul satu urutan terakhir Membutuhkan semua diberikan. Oh untuk Eureka. Ini adalah mekanisme kontrol baru yang masuk ke dalam Apache 2.4.x. Memberikan akses atau menolak seperti semua fine, pada dasarnya meniru fungsi Izinkan Deny :). Untuk memperbaiki masalah menambahkan Membutuhkan semua arahan yang diberikan untuk folder / opt / lampp / phpmyadmin. Setelah perubahan dalam saya terlihat seperti ini

<Direktori “/memilih/Macintosh/phpmyadmin”>
AllowOverride AuthConfig batas
Agar memungkinkan,menyangkal
Memungkinkan dari semua
Membutuhkan semua diberikan
</Direktori>

 

Anda dapat selalu mencoba divoti lain, Misalnya, untuk mengubah nama folder phpmyadmin lain dan tidak alias untuk. Tapi itu adalah jelek dan tidak terlalu berarti 🙂

p. s diajukan saya mengapa saya memakai XAMPP dan tidak membersihkan instalasi semua komponen seperti Debian saya Lahir – Jawabannya sangat sederhana – kemalasan. Malas saya untuk menulis beberapa perintah kemudian menyentuh nya konfovete dll. Jauh lebih mudah adalah memukul seluruh paket dan unzip Anda menyalakan 😉

Ditingkatkan oleh 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');

Ditingkatkan oleh Zemanta

Hari ini kita akan berbicara tentang kesengsaraan Anda mengenai server dengan Suhosin patch dan bagaimana Debian Sqeeze kesepakatan dengan dia.. Sekarang mari kita mulai sedikit jarak. Ketika Anda menginstal php dalam sistem paket Debian (stabil untuk orang lain, saya tidak bisa mengatakan bagaimana hal ini lebih) Anda harus menginstal suhosin dan mod untuk itu. Aku punya masalah dengan sistem lapis-ditulis php dan saya mengambil keputusan untuk kardinalnoto untuk membuat debug aplikasi pada sistem dan melaporkan kembali kepada pengembang untuk mendapatkan patch untuk keamanan dan sebagainya untuk menyelamatkan diri sakit kepala. Umumnya saya dapat mengatakan dengan berani bahwa ini adalah salah satu keputusan paling bodoh yang pernah diambil saya. Berikutnya membatalkan snap-on PHP5-Suhosin me-reset web-server dan UPS balok – a-patch masih terisi. Setelah survei yang sangat singkat terdeteksi, Paket dikompilasi dan dengan Pacha langsung dalam kode yang berarti bahwa itu tidak akan menonaktifkan atau menghapus kecuali Anda prekompilira kode lagi tanpa kacang. Memutuskan bahwa Anda akan dr″pna dan prekompiliram ke paket deb. Telah melakukan melakukan Anda apt-get sumber php5 menarik saya kode sumber, razpaketirva dan seterusnya. Sini ide yang sempurna untuk men-download Sorsa paket untuk menghapus kacang tanah dan compile lagi untuk paket debianski ditambah dua optimasi kecil untuk kompilasi. Dikatakan dan dilakukan – Aku telah menghapus gambar dari patch Debian/patches/Suhosin.patch Aku telah menghapus dia tidak bermain di Debian/patch/seri. Di sini semuanya dengan jelas dan tanpa masalah. Kemudian saya menjalankan untuk mengkompilasi ulang paket dengan debuild dan seperti yang saya harapkan saya kompilasi muncul karena hilang header. Tentu saja akan ada kekurangan tersebut – Saya dengan debian netinstall. Memperbaiki kebodohan Anda cepat rilis lagi kompilasi, pada satu titik Perdana Menteri lagi hanya, Ini adalah bug aneh di Zend / zend_stream. h atau c tidak ingat persis (Jika kesepakatan dapat kemudian memeriksa file yang tepat dan garis yang saya sedang berbicara dengan). Setelah nedoumâvane apa yang terjadi dan mengapa sih bisa gemuruh di Zend inti – mana tidak seharusnya bergemuruh pada untuk alasan dan agak lama studi terdeteksi bahwa masalah ini relatif jarang dan tidak banyak sinyal untuk dia. Saya menduga bahwa salah satu perbaikan dalam sumber salah tetapi sekarang saya memiliki ada saraf untuk memverifikasi. Hmmmmm aneh aneh Super. Aku hampir memutuskan untuk mengkompilasi murni php tapi aku memutuskan untuk mencoba cermin dotdeb Mari kita lihat apa yang akan terjadi ada. Kompilasi tidak mati karena beberapa dependensi yang aneh tapi dipoles atas masalah di bagian utama. Yang pada gilirannya merupakan dimengerti mereka sudah pergi 30-40 patch yang dalam paket stabil. Setelah beberapa upaya panjang dan gagal saya shrugged saya download paket vanili dan dikompilasi dengan hampir debian-ski pilihan dengan ide untuk menulis ulang instalasi saya saat ini dan menginstal paket baru dari burung pengumpan Anda dapat memiliki perilaku dari paket terinstal dari repositori (obosobno mungkin sekadar tidak bijaksana keputusan). Seperti yang diharapkan tanpa patch apapun instalasi berjalan lancar. Ini adalah output dari file config saya bagus.:

#! /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 mirip dengan kompilasi dotdeb. Като основаното и най важно е prefix опцията където ще се разполагат файловете с библиотеките на php. Него както и другите пъти ги коригирайте според вашата система така че да не се усети компилацията с промяна на пътищата.

Ditingkatkan oleh Zemanta

Vector logo of the PHP programming language wi...

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

Ditingkatkan oleh Zemanta