Ao redor 2 semanas php 5.3 Entra na história, lenta mas seguramente. 11 anunciou o fim da sua manutenção e ele vai ser jogado apenas os patches de segurança para 1 ano. Em geral, PHP 5.4 passes em estágios e velho PHP estável 5.5 torna-se estável, o que é meio divertido porque você ainda parte das adições e plugins do php não funcionam completamente corretamente mas versão 5.5 é muito novo para abster-me de migração com ela.

Então, digamos que a minha migração para 5.4 por 5.3. Anteriormente eu tinha postado o informações para recursos obsoletos, aqueles que mudaram a minha personalidade e aqueles que já não tem que manter para não ter nenhum drama em ambos os lados se vai iniciar ou não 😉 então eu escolhi a hora hoje de manhã para o início da migração em torno 7 como tornou-se, que há dor mínima durante a migração se você não vai sem problemas. Para minha imensa surpresa, tudo foi mais suave – você compilar o PHP 5.4.17 Comecei a apache e Oh céus, está tudo lá. Uma rápida olhada através de registros não rugir de depricated ou funções desconhecidas – Aparentemente, os rapazes têm feito o seu trabalho bem. Então eu só tenho que prekompiliram e adições que são compiladas com a antiga API como APC, RAR, etc.. Uma segunda reinicialização e todos dormindo. Separadamente, esperar melhorias de desempenho, porque em todos os lugares as pessoas apontando grande toe as bandejas que mostra como PHP 5.4 consome menos RAM e executa scripts mais rápido.

Há poucos dias saiu XAMPP 1.8.0 Após a atualização de versão 1.7.7 Eu tive um problema bastante interessante. PhpMyAdmin-não minha abertura e izg″rmâvaše com 403

Acesso proibido!


Novo conceito de segurança do XAMPP:

Acesso ao objeto solicitado apenas está disponível a partir da rede local.

Esta definição pode ser configurada no arquivo. “httpd-xampp.conf”.

Agora eu abri o xampp httpd-conf que para mim... está localizado no / opt/lampp/etc/extra /, à primeira vista, parecia tudo bem. As regras para a rede local estavam bem. Para além de que eu iria abrir o localhost. WTF ??? Olhei o log e ver que meu acesso é cortado por konfiguaciâta. As coisas aqui já ahnaha-me e, francamente, tipo de um pouco de sorte eu encontrei o problema. След като преглеждах httpd. conf-а видях в Allow/Deny клаузите един последен ред Exigir que todos concedido. Ah a Eureka. Este é o novo mecanismo de controle que entrou em Apache 2.4. x. Dá acesso ou recusar tais tudo bem, Basicamente imitado a funcionalidade de permitir/negar :). За да поправим проблема добавяме exigem todas concedidas в директивите за папката /opt/lampp/phpmyadmin. Após as mudanças em mim fica assim

<Diretório “/opt / lampp / phpmyadmin”>
Limite AuthConfig AllowOverride
Permitir a ordem,negar
Permitir que todos
Exigir que todos concedido
</Diretório>

 

Você sempre pode tentar outro divoti, por exemplo, para renomear o pasta phpmyadmin algo diferente e não alias para. Mas é feio e não muito significativo 🙂

p. s pediu-me por que eu uso o XAMPP e não limpar a instalação de todos os componentes como é meu Debian nasceu – a resposta é muito simples – PREGUIÇA. Preguiça de escrever vários comandos então me buscar konfovete etc.. Muito fácil é tomar seu maço inteiro razarhiviraš e luz 😉

Reforçada por Zemanta

Debian OpenLogo

No outro dia um amigo me escreveu que ele tinha um problema com O Debian o servidor-a. Em apenas não guarda mais de EASB 30 não importa o quão músicas minuto session.gc_maxlifetime. Basicamente, o problema é que o Debian decidiu reescrever o comportamento das sessões vez coletor de lixo-e inicia um cron cada minuto 9 e 39 que remove sessões antigas. Toi está localizado em /etc/cron.d/php5

roteiro semplichak geral que começa a girar / usr / lib / php5 / maxlifetime e é variável de quanto tempo é a vida do cookie que é 1440 ou segundo 24 minutos 😉 Daqui em diante há 2 opções ou para parar coroa-e, assim, terminou a limpeza automática que podem mais tarde ser reajustado pelo php.ini ou diretamente no próprio script para alterar a duração da vida de sessões com max variável. Eu pessoalmente prefiro a segunda opção. Muito mais limpo é geral, mas tem uma desvantagem – se você substituir as alterações de arquivo ele vai perder o que é fato desagradável.

PS. Agora que eu acho que, provavelmente, se você definir um outro lugar para armazenar informações seiinata através do PHP em si deve ir além do escopo do script e, portanto, ser usado novamente na sessão normal sem interromper áspera.

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

Reforçada por Zemanta

Hoje eu falar sobre os problemas em torno de um único servidor com Suhosin patch e como O Debian negócio Sqeeze com ele. Agora vamos começar um pouco de distância. Quando você instala php no sistema de empacotamento do Debian (estável para os outros eu não posso dizer o quanto ainda) você deve instalar e suhosin mod a ele. Eu tive problemas com algum sistema MAH-frame escrito em PHP e tomou a decisão cardeal, em vez de fazer depurar o sistema e voltar Relatório desenvolvedor perder patches de segurança e, assim, poupar-me o problema. Em geral, eu pode corajosamente dizer que esta foi uma das decisões mais estúpidas que eu já tomadas. No primeiro módulo de remoção php5-suhosin reinício web server-a e oops pós – patch-a ainda está carregado. Depois de um breve estudo encontra, que o pacote é compilado e trota diretamente no código que significa que nenhuma exclusão ou afastamento, a menos que recompilar o código novamente sem o patch. Resolver que drapna e recompilar para o pacote deb. Feito mais cedo disse que fazer o seu apt-get php5 fonte puxando-me este código-fonte, razpaketirva e etc.. Aqui a minha ideia ideal para remover a fonte do pacote para remover o patch e compilá-lo de volta para o pacote Debian além de um dois pequenos otimizações na compilação. disse feito – eliminar a mancha desnecessária de debian / patches / suhosin.patch Tirei-o de jogar no debian / patches / série. tudo até agora claramente e sem problemas. Em seguida, execute a compilação do pacote debuild e como eu esperava eu ​​estraguei a compilação por causa da falta cabeçalhos. Naturalmente haverá qualquer escassez – Eu ainda estou com netinstall debian. solução rápida estupidez correr novamente compilação, em um ponto apenas desmaiar novamente, que, com um erro estranho no Zend / zend_stream.h ou .c não me lembro exatamente (se eu posso lidar mais tarde para verificar qual arquivo exatamente e a linha trovejou). Depois de alguma dúvida que está acontecendo e por que diabos pode rugir do núcleo Zend – onde deveria para fazer barulho por qualquer motivo e um pouco de estudo mais encontrar que este problema é sinais relativamente raros, e não muitos dos que. Eu suspeito que um dos patches na fonte estava errado, mas eu não tenho nervos para verificá-lo. Hmmmmm estranho super-estranho. Quase que eu decidi compilar php puro, mas eu decidi tentar espelhos Dotdeb lá para ver o que acontece. Há compilação morreu por causa de alguns vícios estranhos, mas poupou os problemas no corpo principal. Que por sua vez é compreensível que eles fizeram-los 30-40 manchas que estavam em pacote estável. Depois de várias tentativas longas e infrutíferas Cansei e desliguei o meu pacote de baunilha e compilá-lo com opções quase debian-ski com a ideia de reescrever meu atual sistema e instalar novos pacotes a partir do alimentador pode se comportar pacote instalado a partir do repositório (provavelmente outra diferenciada não é uma solução razoável). Como eu esperava, sem qualquer instalação manchas correu bem. Este é o resultado do meu arquivo config.nice:

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

Esta configuração é semelhante à de Dotdeb compilação. Os jardins e opção de mais importante prefixo onde você terá arquivos de bibliotecas PHP. Ele e outras vezes eles ajustar de acordo com o seu sistema para que você não se sentir compilação com a mudança de estrada.

Reforçada por Zemanta

Vector logo of the PHP programming language wi...

Hoje eu atingiu uma luz de leitura para php esconderijo o html. Aqui falamos de cache a saída do nosso código não as've escrito para cache para skritpovete opcode nível com eAccelerator. Então, o que tem tudo a ver – vamos nos lembrar do trabalho rápido de php-lo. Nós enviar pedido web server-a ни той приема параметрите който подаваме след това той ги подава на php скрипта той се компилира и плюе резултат в html вариант. Това е в доста общи линии. Qual será a nossa idéia aqui para ignorar pedidos, para ignorar grandes blocos ou não tão grande como blocos pintados saída diretamente uma vez que já compilado. As vantagens são evidentes – reduzindo o tempo de execução, menos carga e consumo de recursos. Ele geralmente não é detectar água quente ou algo que sabe como é complicado. Há muitas classes para este efeito, como PHP Pera Cache_Lite que tem um belo recurso, mas eu acho que no futuro a escrever com a estrutura muito aliviado e mina as suas necessidades de armazenamento em cache. Сега ще разгледаме най аборигенския вариант с 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();

Горния код е тривиален но нека да обясним какво стана. Първо декларираме от коя част в кода започва кеширането. Em seguida, gerar um código de saída forma padrão. След това генерирания изход се присъединява към променлива която ще е достъпна по късно дали през файл някакво или през sessions това си е ваше решение. Finalmente Limpar e desativar caching. operação bastante trivial se dissesse cache de geenriraneto passa por enormes blocos de código para que possamos guardar um monte de tempo de CPU como um cache por um tempo ou para uma única sessão. Agora é tudo sobre o que você quer saber se é cache disponível ao público ou acessível ao usuário diferente.

Reforçada por Zemanta