Htacces Generator
![]()
Cansado de configurar o htaccess na mão ? O Cooletips disponibiliza um página que após fornecido os parâmetros desejados monta um pra você. Clique aqui para acessar.
![]()
Cansado de configurar o htaccess na mão ? O Cooletips disponibiliza um página que após fornecido os parâmetros desejados monta um pra você. Clique aqui para acessar.

Pra quem trabalha com vários projetos PHP em um mesmo servidor, sabe que ficar alterando o PHP.INI para cada besteira que algum projeto queria fazer não é uma coisa muito legal. Para falar a verdade não é nada legal… Por exemplo, não é legal trocar a pasta temporária de upload para um diretório que não possui permissão de escrita ou que esta em uma partição com pouco espaço disponível.
Entretanto ficar confiando no ini_set() do PHP realmente não é legal, pois ao meu ver caímos em dois problemas: as configurações do php.ini ficam extremamente espalhadas ( não queremos violar o DRY correto ?), e segundo é que não podemos fazer tudo com as funções ini_set() like.
Para quem não sabe, algumas configurações do php.ini não pode ser alteradas “on the fly”. A Zend criou um nível de segurança chamado PHP_INI_SYSTEM, que não podem ser alteradas em runtime ( clique aqui para ver a lista de funções e privilégios necessários).
A solução que encontrei foi simples mas eficaz ( além de seguir as orientações da própria Zend) : usar uma diretiva de diretório do Apache, lançando um PHP Admin Value. Fazendo isso você pode redefinir algum parâmetro do php.ini para um diretório específico no servidor. A idéia é mais ou menos a seguinte: No httpd.conf do apache, dentro da sessão Ifmodule , crie um diretório para sua aplicação e coloque o seguinte parâmetro:
<Directory “/caminho/para/o/projeto/”>
php_admin_value parametro_do_php_ini “novo_valor”
</Directory>
Com isso você pode sobrescrever o comportamento do php.ini inclusive em configurações mais avançadas. Sei que é redundante, mas como se pode perceber tive que usar o php como módulo para poder proveitar essa diretiva.
Descobri recentemente uma ferramenta antiga que já vem junto com o Apache é totalmente free, o ApacheBench. Como o próprio nome já insinua, essa ferramenta é usada para fazer um benchmark de um determinado endereço que esteja rodando no seu Apache, através da simulação de solicitações de clientes para o httpd.
Se você instalou o Apache como um serviço, é só seguir o exemplo abaixo via prompt:
ab -n 10000 -c 10 http://localhost/test
No exemplo acima, a opção -n especifica q quantidade de solicitações e a opção -c a quantidade de clientes simultâneos. O ultimo parâmetro obviamente é o endereço a ser testado. Fiz um teste rápido aqui na 3Jane usando o xampp na minha máquina local, e o resultado foi o seguinte:
C:\xampp\apache\bin>ab.exe -n 10000 -c 10 http://localhost/testThis is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/Copyright 2006 The Apache Software Foundation, http://www.apache.org/ Benchmarking localhost (be patient)Completed 1000 requestsCompleted 2000 requestsCompleted 3000 requestsCompleted 4000 requestsCompleted 5000 requestsCompleted 6000 requestsCompleted 7000 requestsCompleted 8000 requestsCompleted 9000 requestsFinished 10000 requests Server Software: Apache/2.2.8Server Hostname: localhostServer Port: 80 Document Path: /testDocument Length: 368 bytes Concurrency Level: 10Time taken for tests: 28.000 secondsComplete requests: 10000Failed requests: 0Write errors: 0Non-2xx responses: 10000Total transferred: 6530000 bytesHTML transferred: 3680000 bytesRequests per second: 357.14 [#/sec] (mean)Time per request: 28.000 [ms] (mean)Time per request: 2.800 [ms] (mean, across all concurrent requests)Transfer rate: 227.71 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median maxConnect: 0 0 2.0 0 15Processing: 0 27 184.4 15 2312Waiting: 0 27 184.4 15 2312Total: 0 27 184.4 15 2312 Percentage of the requests served within a certain time (ms) 50% 15 66% 15 75% 15 80% 15 90% 15 95% 15 98% 31 99% 46 100% 2312 (longest request)
Óbvio que os testes feito pelo ApacheBench não são realísticos, tendo em vista que em uma aplicação on-line temos variantes como conexões discadas, bots, servidores mal compartilhados (em caso de shared servers) etc, mas, já é um corrimão em que podemos nos apoiar. Existem outras ferramentas como Siege e até mesmo o Zend Sudio que nos fornecem relatórios interessantes, mas achei o ApacheBench cômodo. Mas tarde converso com vocês sobre outras formas de testar desempenho. Para maiores informações, visite a página do manual do ApacheBench.