Około 2 tygodnie php 5.3 wszedł w historię powoli, ale pewnie. 11-go poinformowały o końcu jego treści i że będą umieszczone tylko aktualizacje bezpieczeństwa w ciągu 1 rok. W zasadzie PHP 5.4 odbywa się w etapach old stable i PHP 5.5 chodzi stable, co było trochę zabawy, bo jeszcze część dodatki i wtyczki php działa nie do końca poprawnie ale i wersja 5.5 dość nowa, więc będę powstrzymywać się od przejścia na nią.

Oj porozmawiajmy o migracji do mnie 5.4 z 5.3. Wstępnie został umieszczony informacje dla starszych funkcji, takie, które się zmieniły, zmieniło się i takie, które nie są już obsługiwane, aby u nas nie ma dramatu, i z obu stron, jeśli będzie się świecić lub nie 😉 Th dziś rano wybrał czas do rozpoczęcia migracji około 7 jak było, że mieć minimalne bólu podczas migracji jeśli nie pójdzie gładko. Do mojego ogromną zdziwieniu wszystko poszło ponad gładko – skompilowany PHP 5.4.17 zaczęłam apache-to i o niebie wszystko jest. Szybki rzut oka wokół logów nie ryk depricated lub w ogóle nieznanych funkcji – podobno chłopaki wykonali swoją pracę dobrze. Więc został mi tylko прекомпилирам i dołączone które zbiera się ze starym API, takie jak APC, RAR i inne. Drugi restart i wszystko spali. Oddzielnie spodziewam się poprawy w wydajności, tak jak wszędzie ludzie wskazują kciuka, zasobniki, gdzie pokazuje, jak PHP 5.4 zużywa mniej PAMIĘCI i wykonywać skrypty szybciej.

Kilka dni temu wyszedł XAMPP 1.8.0 wczoraj po aktualizacji z wersji 1.7.7 mam dość ciekawy problem. Phpmyadmin-nie otworzyły się, a ja potoczył się z 403

Dostęp zabroniony!


Nowa koncepcja bezpieczeństwa XAMPP:

Dostęp do żądanego obiektu jest tylko dostępna z sieci lokalnej.

To ustawienie można skonfigurować w pliku “httpd-xampp.konf”.

Natychmiast otworzyłem httpd-xampp.conf który u mnie jest w /opt/lampp/etc/extra/, na pierwszy rzut oka wszystko wygląda normalnie.. Zasady dla sieci lokalnej były w porządku. Wraz z otwarciem lokalnego. WTF ??? Spojrzał log-a patrzę że mój dostęp został odcięty od конфигуацията. Teraz wszystko mnie ахнаха i, szczerze mówiąc, trochę szczęścia, odkryłem problem. Po przejściu przez httpd. conf i zobaczył w klauzul uznawać/zaprzeczyć jeden ostatni wiersz Wymagają wszystkie przyznane. Temat eureka!. To nowy mechanizm kontroli, który wchodzi w Apache 2.4.x. Z nim nie daje dostęp lub zrzeczenia się tego potrzebny, w zasadzie naśladują Włącz/Wyłącz funkcjonalności :). Aby rozwiązać problem, możemy dodać wymagają wszystkie udzielone w folderze / opt/lampp/phpmyadmin. Po zmianie u mnie wygląda tak

<Katalog “/opt / lampp / phpmyadmin”>
AllowOverride AuthConfig Limit
Zezwalaj na zamówienie,zakazać
Umożliwić ze wszystkich
Wymagają wszystkie przyznane
</Katalog>

 

Chociaż to prawda, można spróbować i inny dziki, na przykład, aby zmienić nazwę folderu phpmyadmin na coś innego i zrobić alias na nie. Ale to jest brzydkie i nie jest szczególnie znaczące 🙂

p.s Pytali mnie, dlaczego używam XAMPP, a nie czysta instalacja wszystkich komponentów, a ich mój Debian urodził się – odpowiedź jest naprawdę bardzo proste – LENISTWO. Mnie zbyt leniwy, aby napisać wiele poleceń, a następnie dostać konfovete itp.. Dość łatwo jest podjąć cały pakiet razarhiviraš i światła 😉

Wzmocnione przez Zemanta

Debian OpenLogo

Pewnego dnia mój przyjaciel napisał do mnie, że miałem problem z debian. -mój serwer. Nie dokładnie strzeżoną ponad sessiite 30 Bez względu na to, jak wiele minut, aby skonfigurować Session.gc_maxlifetime. W zasadzie problem jest, że Debian postanowiły ponownie napisać zamiast prowadzenia sesji Moduł zbierający elementy bezużyteczne-i uruchomić jeden cron co 9 i 39 minut który czyści stare sesje. On jest in/etc/cron.d/php5

Ogólnie rzecz biorąc, skrypt semplič″k, który z kolei uruchamia/usr/lib/php5/maxlifetime i zmienna jak długo jest życie pliku cookie, który jest 1440 sekund lub 24 minut stąd tam jest 😉 2 Opcje lub aby zatrzymać koronę i tym samym zakończyć automatycznego czyszczenia, która może później aby wyrównać z URphp.ini lub bezpośrednio w skrypcie, aby zmienić długowieczność życia sesji z zmiennej max. Ja osobiście wolę drugą opcję. Bardzo miłe jest ogólny, ale jest to wada – Jeśli zastąpisz zostaną utracone zmiany pliku, który jest niepokojący fakt.

PS. Teraz, że myślę o to prawdopodobnie, jeśli jest zdefiniowany gdzieś indziej gdzie przechowywać informacje php za pomocą seiinata powinny wykraczać poza zakres skryptu, a tym samym do być używany ponownie w normalnej sesji bez przerywania rude.

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

Wzmocnione przez Zemanta

Dzisiaj będę opowiadać o kłopotach wokół jeden serwer z Suhosin patch i jak debian. Sqeeze radzenia sobie z nią. Teraz zaczniemy trochę z daleka. Podczas instalacji php w a systemu Debian (stabilna dla innych nie wiem, jak jeszcze) koniecznie musisz zainstalować suhosin mod do niego. U mnie były problemy z jednym pld-кадърно system napisany w php i wziąłem кардиналното rozwiązanie zamiast robić debugowania systemu i z powrotem w raporcie autora, aby wydać patcha dla bezpieczeństwa, aby zapisać bóle głowy. W sumie, mogę śmiało powiedzieć, że to była jedna z najgłupszych decyzji, kiedykolwiek. Najpierw usuń moduł php5-suhosin restart web server-a i opakowanie promień – patch-a nadal się ładuje. Po bardzo opisz znaleźć, pakiet skompilowany i pędzi prosto w kod, który oznacza, że nie ma wyłączyć lub usunąć, jeśli nie przekompilować kod ponownie bez patcha. Zdecyduj, że będziesz go дръппа i прекомпилирам w pakiet deb. Sporządzono powiedziane wykonane robię sobie apt-get source php5 ciągnie mój aktualny kod źródłowy, разпакетирва i inne. Oto mój idealny pomysł do pobierania kodu źródłowego pakietu, aby usunąć patch i go przekompilować ponownie w pliki pakiet plus dwie małe optymalizacji przy sporządzaniu. Sporządzono powiedziane zrobione – ja skasował niepotrzebnego patch od debian / patches / suhosin.patch i wyeliminował go, a nie bawić się w debian / patches / series. Tu wszystko jasno i bez problemów. Następnie skompilować pakiet z Rozdzia│ i jak się spodziewałem moja zatrzasnęły złożenia z powodu brakujących tekstów źródłowych. Oczywiście, że nie będzie takich wpadek – nie mniej jednak jestem z funkcji netinstall debiana. Odzyskiwanie części pospiesznie głupoty go wypuścić na nowo zbiory, w jednej chwili znów премира tylko, co dziwne błędy w Zend/zend_stream.h lub .c nie pamiętam dokładnie (jeśli mi można zrobić później, aby sprawdzić, jaki plik i w jakim wierszu brzmiało). Po pewnym недоумяване, co się dzieje i dlaczego, do cholery, szum jądra Zend – gdzie by nie huk, z dowolnego powodu i trochę długich badań okazało się, że ten problem jest stosunkowo rzadkie i nie bardzo sygnały dla niego. Podejrzewam, że każdy z poprawki w kodzie jest nie tak, ale teraz mam nerwy, aby to sprawdzić. :] Dziwne bardzo dziwne. Prawie postanowił przebudować czyste php, ale postanowiłem spróbować lusterka dotdeb zobaczymy, co tam będzie się działo. Tam projekt umarł z powodu dziwnych zależności, ale między problemów w głównej części. Co, z kolei, odnosi się do nich, oni 30-40 poprawki, które zostały w stały pakiet. Po długich i nieudanych próbach mi się znudziło i wyłączył pakietu i jego skompilowany z prawie debian-ski opcje z pomysłem, aby przepisać moje aktualne ustawienia i zainstalować nowe pakiety z podajnika może być zachowań, pakiet z repozytorium (chyba jeszcze nie обособно rozsądne rozwiązanie). Jak się spodziewałem, nie wszystkie patche, instalacja przebiegła gładko. To wyjście config.nice mój plik:

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

To konfiguracji zbliżonej do tej kolekcji dotdeb. Jako najważniejsze-jest to opcja prefiks, gdzie masz pliki z biblioteki php. Go i innych razy poprawne według systemu, tak, że nie czujesz się kompilacja zmiana dróg.

Wzmocnione przez Zemanta

Vector logo of the PHP programming language wi...

Dziś mamy zapalił światło, czytanie dla php pamięci podręcznej The HTML. Tutaj mówimy o buforowanie danych wyjściowych nasz kod a nie jak napisałem do wypłaty na skritpovete opcode poziom z eAccelerator. Tak rzeczy – Daj nam przypomnieć sobie szybkie pracy php-IT. Złożyć wniosek serwer sieci Web-On przyjmuje nas parametry, które możemy przesłać go, a następnie przesyła je do skryptu php on kompiluje i wypluć wyniki w wersji html. To jest dość ogólne linie. Co to jest nasz pomysł tutaj nad żądania, na dużych bloków lub nie tak duże bloki jak bezpośrednie rysowanie raz skompilowany produkcji słomki. Zalety są oczywiste – namalâna razy, mniejsze obciążenia i zużycie zasobów. Jako całość nie jest otwarcie ciepłej wody lub coś, kto wie, jak skomplikowane. Istnieje wiele klas w tym celu, takich jak pzp Gruszka Cache_Lite który ma dużą funkcjonalność, ale myślę, że w przyszłości napisać kopalni z bardziej efektywna struktura i moje wymagania buforowania zapisu. Teraz bierzemy spojrzeć opcji aborigenskiâ z Funkcje kontroli danych wyjściowych. Warto więc wypłacić coś –

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

Powyższy kod jest banalna, ale pozwól mi wyjaśnić, co się stało. Najpierw deklarujemy, jaka część kodu rozpoczyna buforowanie. Następnie można wygenerować bardziej standardowy sposób kod wyjścia. Następnie wygenerowanych danych wyjściowych łączy zmienną, która będzie dostępna później, czy w pliku lub podczas sesji, to Twoja decyzja. Wreszcie Usuń i Wyłącz buforowanie. Dość prosta operacja, jeśli Let's powiedzieć geenriraneto pamięci podręcznej przechodzi przez ogromne bloki kodu, dzięki czemu możemy zaoszczędzić dużo czasu procesora, jak wypłata na chwilę lub na sesję. Teraz to wszystko, o co chcesz czy pamięci podręcznej został udostępniony do publicznej wiadomości lub jest dostępne dla różnych użytkowników.

Wzmocnione przez Zemanta