Tag Archive: apache


Atualizamos todos os servidores de hospedagem compartilhada, revenda e servidores utilizados para fins institucionais da BSRSot, assim como para sistemas que mantemos (Windows e Linux) para rodarem com o novíssimo PHP 5.3.1.

Estamos encorajando todos os clientes de servidores dedicados e VPS a fazerem o mesmo.

Para contratar nossos serviços e aproveitar todos os benefícios técnicos nossos, fora nosso atendimento ao cliente e nossos ótimos preços, por favor acesse:   http://bsrsoft.com.br

Algumas caracteristicas da nova plataforma PHP adotada oficialmente pela BSRSoft:

Namespaces
Para quem acompanha o desenvolvimento da linguagem, sabe que essa feature é a mais pedida e a mais polemica nas listas de discussão. Originalmente prevista para sair no PHP6, foi adiantada para alegria da galera :). Essa nova versão virá com uma implementação completa de Namespaces, com suporte a autoload e namespaces hierárquicos.

Isso permite aos desenvolvedores organizar melhor o código, evitando conflitos com bibliotecas internas do PHP ou de terceiros e produz um código mais limpo e legível. Essencial para o pessoal que desenvolve frameworks.

Voce agora pode fazer um código assim:

namespace teste;
class minhaClasse {
const COR = 'Azul';
public function executar(){}
}

e usar assim:

$var = teste::minhaClasse::executar();

ou

use teste;
$var = new minhaClasse::executar();

Para mais informações sobre namespaces, visite aqui(em portugues), aqui ou aqui.

Garbage Collector
Esse item me surpreendeu. Agora é possível fazer limpeza da memoria não mais utilizada, reduzindo os problemas como o fatídico “Memory allocation error”. Excelente para quem constrói sistemas de grande porte e esta preocupado com a escalabilidade.
exemplo de funções:

gc_enable(); // Enable Garbage Collector
var_dump(gc_enabled()); // true
var_dump(gc_collect_cycles()); // # of elements cleaned up
gc_disable(); // Disable Garbage Collector

Performance
No geral esta nova versão é 15% mais rápida. Os itens que se destacam é a otimização do acesso a memoria, melhorias no tratamento de exceções e redução das chamas ao sistema pelos métodos require(_once), include(_once).

MySQLnd
Uma das maiores novidades dessa versão é um nova biblioteca para acesso ao Mysql, feita para substituir a atual e desenvolvida pelo próprio pessoal da Mysql especialmente para o PHP.
Entre as vantagens podemos citar:

  • Velocidade de acesso aos dados
  • menor consumo de memoria
  • integração com o PHP e não dependência de driver
  • possibilidade de retornar estatísticas, para otimização de performance

Infelizmente ainda não existe uma versão para PDO pronta

__DIR__
Agora temos um metodo magico para saber em que diretorio o script está.
O que era feito assim:
echo dirname(__FILE__); // < PHP 5.3

agora pode ser feito assim:
echo __DIR__; // >= PHP 5.3

Novo operador ?:
Parecido com o já existente operador ternário, o operador ?: retorna o valor não vazio de 2 expressões.
Exemplo:

$a = true ?: false; // true
$a = false ?: true; // true
$a = "" ?: 1; // 1
$a = 0 ?: 2; // 2
$a = array() ?: array(1); // array(1);
$a = strlen("") ?: strlen("a"); // 1

__callStatic()
Tem a mesma finalidade da função __call para objetos, mas agora para metodos static.

Static Calls
O PHP agora suporta chamadas dinamicas a metodos static
exemplo:

class helper {
static function foo() { echo __METHOD__; }
}
$a = "helper";
$b = "foo";
$a::$b(); // helper::foo

Bibliotecas e outras coisas

  • Melhorias na classe SPL e adição de novos metodos.
  • Adicionada novas funções de manipulação de datas
  • Criada a opção de “profiling” na XSLT
  • um novo HEREDOC chamado NOWDOC que não precisa escapar as variaveis
  • atualizado para o SQLite 3.5.6
  • varias otimizações CGI/FastCGI SAPI

Novo tipo de erro E_DEPRECATED que indica que o método será removido (Preparando para o PHP6)

Conclusão

Com essa nova versão, a equipe de desenvolvimento do PHP mostra que esta preocupada com o chamado “enterprise ready”, criando features solicitadas pelo mercado e preparando o terreno para o PHP6.

Fonte: http://www.php-zine.net/2008/03/19/novidades-do-php-53/

Deveremos liberar nos próximos dias o primeiro alpha de nosso projeto de um sistema de arquivos distribuido e que roda sob o banco de dados MySQL 5.1 e com o Core e a API inicial escritos totalmente em PHP 5.2.

O nome do sistema de arquivos, pelo menos inicialmente é DSFS (Distributed Storage File System – Sistema de Arquivos Distribuído para Storage).

O sistema está sendo projetado prioritariamente para ser um sistema especializado em storage de grande porte e alta segurança e velocidade e para rodar em todas as plataformas e arquiteturas em que o MySQL funcione.

Criptografia nativa, metadados, organização em diretórios e um robusto sistema de permissões são os principais alvos neste momento inicial de implementação. Tudo isso e sua natureza distribuida (suportada pelo MySQL) o tornam perfeito para aplicação de strorage na nuvem, por exemplo. (storage usando cloud computing)

O sistema tirará vantagem de clusters locais e distribuidos, que assim poderão criar filesystems gigantescos e ao mesmo tempo com alta redundância, escalabilidade e facilidade inerentes ao MySQL como backup extremamente simples etc.

Pretendemos utilizá-lo em nossos serviços de storage de datacenter inicialmente. Mais aplicações estão sendo cogitadas e a comunidade será livre para utilizar a solução e adaptá-la da forma que desejar..

A licença deverá ser a opensource Apache 2.

Mais informações ficarão disponíveis aqui no blog e no site http://bsrsoft.com.br/portal/opensource/

Informamos ao mercado e a todos os nossos clientes que implementamos em todos os servidores Linux que rodam aplicações PHP e que estão sob nossa responsabilidade direta (servidores de hospedagem compartilhada, servidores de email com front-end etc) o módulo Suhosin.

Esse módulo é um módulo para a linguagem PHP que aplica um patch ao seu núcleo com objetivo de evitar conhecidos problemas de estouro de buffer e má formatação de strings em aplicações vulneráveis. Isso aumenta em muito a segurança das aplicações PHP nossas e de nossos clientes, evitando ataques de difícil detecção e potencialmente muito perigosos.

O Suhosin implementa ainda uma série de outras melhorias de segurança ao core da linguagem, além das descritas acima e por estar integrado ao núcleo do PHP, é perfeitamente compatível com outras extensões e módulos, inclusive o Zend Optimizer, que utilizamos em todos os servidores com PHP com a finalidade de aumento de performance..

Sempre iremos estar atentos a ameaças em potencial contra as aplicações nossas e de nossos clientes, demonstrando constante suporte e respeito a todos os que confiam seus dados à nossos servidores.

Encorajamos todos os nossos clientes de servidores dedicados e VPS e que utilizem o PHP em ambiente Linux, que implementem a ferramenta também. Segurança é essencial e nunca é demais.

Para aqueles que possuem servidores com o WHM/cPanel, informamos que a ferramenta pode ser implementada simplesmente recompilando o Apache e PHP via o painel de controle com a opção do Suhosin habilitada.

Para mais informações sobre a nova ferramenta que implementamos em nossa rede, visite:

http://www.hardened-php.net/suhosin/index.html

Originalmente postado no blog: http://patch3s.wordpress.com/2009/06/29/alta-performance-apache-com-mpm-worker-e-fast-cgi/

Instalação  e  configuração de Apache 2.2 com os módulos  mpm-worker( multithreading ) e Fast-CGI.

Depois de muito procurar por este tipo de informação em sites gringos, editei este  post,  um passo a passo de como instalar e configurar um servidor web apache com esses dois módulos, conferindo um aumento de performance nos servidores web apache. Espero que seja de alguma utilidade. Estou aberto a escutar opiniões e críticas construtivas.

OS: Ubuntu 8.04 LTS Server com LVM ( Logical Volume Manager ) permitindo maior flexibilidade na manipulação das partições

Instalação do Apache

#apt-get-install apache 2
#apt-get install apache2-mpm-worker libapache2-mod-fcgid

PhP5

apt-get install php5-cgi php5-curl php5-gd php5-mysql php5-xsl


Configuração do MPM-Worker

Conf básica do MPM-Worker, configure de acordo com a sua necessidade
# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_worker_module>
StartServers          2
Server Limit          16
MaxClients          150
MinSpareThreads      25
MaxSpareThreads      75
ThreadsPerChild      25
MaxRequestsPerChild   0
</IfModule>

Módulo Fast-CGI

Após a execução dos passos acima, edite os arquivos de virtualhost contidos em /etc/apache2/sites-avaiable/default e default-ssl:
e adicione o seguinte conteúdo:

“AddHandler fcgid-script .php
FCGIWrapper /usr/lib/cgi-bin/php5 .php
Options ExecCGI”

Exemplo:

NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost
ServerName host.dominio.com.br

DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
AddHandler fcgid-script .php
FCGIWrapper /usr/lib/cgi-bin/php5 .php
Options ExecCGI

</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory “/usr/lib/cgi-bin”>
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog /var/log/apache2/error-jwbl.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access-host.log combined
ServerSignature On

</VirtualHost>

Acrescentando essas linhas você estará habilitando o módulo fast-cgi para esse virtualhost

Salve o documento.

Crie um link simbólico em /etc/apache2/sites-enable/ apontando para /etc/apache2/sites-avaible, tanto para o arquivo default quanto para default-ssl ( ou algum outro virtualhost de sua preferência ).

Ative o módulo FastCgi:

#a2enmod fcgid

Certificado SSL

Entre na pasta

#cd /etc/ssl

Emitindo o certificado

#openssl req -config openssl.cnf -new -out nome_do_certificado.csr

Obs: O Comon Name, deverá ter o mesmo nome do servidor, exemplo: host.dominio.com.br

Retire a senha do certificado:

#openssl rsa -in privkey.pem -out my-server.key

Assinando o nosso certificado

#openssl x509 -in meu-servidor.csr -out my-server.cert -req -signkey my-server.key -days 365
ative o módulo ssl:

#ae2enmod ssl

ative o site ssl:

#ae2ensite default-ssl #(ou algum virtualhost, caso seja criado)

  Muitas pessoas possuem dúvidas sobre como configurar corretamente as regras do mod-security com o Apache para obterem um grau maior de proteção contra ataques comuns como DoS, buffer overflow, etc.

O site abaixo possuir regras disponíveis para download e instalação imediata no mod-security (versões 1.x e 2.x). Elas aumentam em muito a segurança das páginas servidas pelo Apache.

http://www.gotroot.com/tiki-index.php?page=mod_security+rules

%d blogueiros gostam disto: