Definir configurações do php.ini com ajuda de .htaccess em conformidade com J!

Moderator: ariadneduvessa

Locked
User avatar
fititnt
Joomla! Hero
Joomla! Hero
Posts: 2350
Joined: Sat Jul 15, 2006 1:41 am
Location: Porto Alegre - RS - Brazil
Contact:

Definir configurações do php.ini com ajuda de .htaccess em conformidade com J!

Post by fititnt » Sat Mar 10, 2007 8:54 pm

Esse tutorial está pronto para funcionar com quem usa o Dreamhost, mas deve funcionar com outros hosts com acesso ssh também, fazendo as devidas alterações, claro. Escrevi porque nem todos tem a chance de alterar facilmente as configurações de seu php diretamente de um .htaccess no diretório, ou apenas ponto um php.ini na raiz do site.

NOTA: Esse tutorial exige que você já tenha algum conhecimento prévio. Se quer saber como usa o PuTTy para estabelecer uma conecção com seu site, google isso, ou abra outro tópico. Agora, se está em dúvida no script propriamente dito, ou tem sugestões de melhora, sinta-se livre para escrever. Também esteja ciente que algo pode dar errado. Por isso, é bom usar em um site para testes até que saiba usá-lo.

Antes de começar
Substitua [USUARIO] pelo seu nome de usuário, e [MEUSITE.COM.BR] pelo diretório aonde seu site está assim que faz o o FTP. Quando for dito seu diretório padrão de usuário, é isso que quer dizer mesmo, i.e., /home/[USUARIO]/


1 Crie a pasta para conter o php.ini e php.cgi
Na raiz de [MEUSITE.COM.BR], crie uma pasta chamada cgi-bin. Pelo PuTTY, digite:

Code: Select all

mkdir ~/[MEUSITE.COM.BR]/cgi-bin/


2. Criar o script que baixa o php.ini e php.cgi de padrão do seu servidor
Isso vai evitar que seu script permaneça desatualizado caso seu host faça upgrade no servidor. Use seu editor de texto simples preferido, com o seguinte código:

Code: Select all

#!/bin/sh

##Adaptado por fititnt de http://wiki.dreamhost.com/index.php/PHP.ini
##Revisão 1

CGIFILE="$HOME/[MEUSITE.COM.BR]/cgi-bin/php.cgi"
INIFILE="$HOME/[MEUSITE.COM.BR]/cgi-bin/php.ini"

##Caso use um Host diferente da Dreamhost, deve adaptar a linha abaixo para o local aonde
##se encontra o php5.cgi
rsync -a /dh/cgi-system/php5.cgi "$CGIFILE"

## REMOVA A LINHA ABAIXO SE PRETENDE CRIAR APENAS UM SCRIPT DE ATUALIZACAO:
cp /etc/php5/cgi/php.ini "$INIFILE"
#Caso use um Host diferente da Dreamhost, talvez tenha que alterar a linha acima

perl -p -i -e '
## As duas primeiras linhas abaixo se referem ao tamanho do arquivo no 'upload' e 'download'.
#De menos que 10mb está setado a 25
s/.*post_max_size.*/post_max_size = 25M/;
s/.*upload_max_filesize.*/upload_max_filesize = 25M/;

##Aqui algumas diretivas que volta e meia estão não-conformes com o joomla
s/register_globals[ ]*=.*/register_globals = Off/;
s/magic_quotes_gpc[ ]*=.*/magic_quotes_gpc = On/;
s/safe_mode[ ]*=.*/safe_mode = Off/;

' "$INIFILE"
E salve esse arquivo como copia-php.sh e faça o upload para a raiz do seu diretório padrao de usuário.

Explicando melhor: Esse aquivo procura o php.ini do diretório padrão do host, altera algumas propriedades que são interessantes para rodar bem o joomla. Note que podem ser adicionadas mais propriedades a serem alteradas diretamente nesse aquivo, em vez de diretamente no php.ini, pois senão na atualização seguinte ele seria substituido



3. Excecução do script criado
Seu arquivo pode estar com permissões de excecução não ideiais, por isso, no PuTTY, as altere ao digitar

Code: Select all

chmod +x copia-php.sh
Depois disso, excecute seu script no PuTTY:

Code: Select all

./copia-php.sh
Observação: Eventualmente usuários windows pode usar editores que carregam um certo lixo na quebra de linha, mas que não é exibido porque esses mesmo editores o escondem. Não obstante, scripts não gostam muito disso, e fazem com que dê alguns erros e seu script não rode. Se isso ocorrer, use o comando que converte esses arquivos para poderem ser interpretados, digitando no PuTTY:

Code: Select all

dos2unix copia-php.sh
Lembre-se que ele não faz milagres: nem vou supor que alguém seria capaz de usar o word para esse script. Use o bloco de notas e olhe lá.

Note que então dois arquivos devem obrigatoriamente sigir dentro de [MEUSITE.COM.BR]/cgi-bin: php.ini e php.cgi. Caso contrário, você ou errou algo, ou o script não foi adaptado para rodar no seu host. Por isso você terá que mudar os diretórios padrões.



4. Alterando .htaccess para ler o seu php.ini

Agora, informe ao ditetório onde seu site está instalado para que ele ignone o php.ini padrão e use o seu. Na raiz de [MEUSITE.COM.BR], adicione ao .htaccess existente [ caso não exista crie um ] o código:

Code: Select all

Options +ExecCGI
AddHandler php-cgi .php
Action php-cgi /cgi-bin/php.cgi
NOTA: Nesse momento deu site deve parar de funncionar até que seja criado o php.ini no diretório indicado. Caso isso não ocorra, é porque sei site não está lendo os .htaccess, o que é um problema
Editado: caso seu site esteja em um subdiretório, lembre de alterar para Action php-cgi /subdiretorio/cgi-bin/php.cgi uma das linhas acima para evitar erros.


5. Teste para ver as mudanças

Crie um arquivo com o código

Code: Select all

<?php phpinfo() ?>
e veja se realmente as alterações estão funcionando adequadamente. Se já tiver o joomla instalado, pode ver diretamente nele em [ADMINISTRAÇÂO] > Sistema > Informações do Sistema # PHP Info.


6. O script de atualização

Nesse caso, copie o script anterior e crie outro com um nome diferente, com o comando:

Code: Select all

cp copia-php.sh atualiza-php.sh
Então edite o arquivo atualiza-php.sh copiado no seu servidor, e delete a linha "cp /etc/php5/cgi/php.ini "$INIFILE""


7. Definindo o intervalo de atualização

Digite o comando:

Code: Select all

crontab -e
e adicionce a seguinte linha para que seu script seja atualizado semanalmente:

Code: Select all

@weekly /home/[USUARIO]/atualiza-php.sh

8. Considerações finais

Nesse script alterei apenas o Register Globals, Magic Quotes, Safe Mode, e o Tamanho de 'upload' e 'Download' de arquivos via web permitidos, algo útil para quem trabalha com sistemas de upload de arquivos e não gosta das limitações do servidor. Aceito sujestões para outras configurações para acrescentr ao script



[off] fititnt informa: ter muitas abas abertas no FF faz com que você feche alguma acidentalmente com tutoriais já no final, e por vezes esqueca do Ctrl +Shift+T. Não por acaso não tive tanta paciencia em redigitar novamente[/off]
Last edited by fititnt on Fri Jun 08, 2007 4:36 am, edited 1 time in total.
Emerson da Rocha Luiz
Moderador aposentado, 2008-2014 | Membro do JUGRS
http://www.fititnt.org

luizdeitos
Joomla! Fledgling
Joomla! Fledgling
Posts: 1
Joined: Thu Aug 07, 2008 7:58 pm
Location: Barão - RS - BRA
Contact:

Re: Definir configurações do php.ini com ajuda de .htaccess em c

Post by luizdeitos » Thu Aug 07, 2008 8:11 pm

para quem quiser, também há outro método, mais completo, que instala uma compilação inteira do PHP com pacotes e bibliotecas em cada conta na dreamhost...
inclusive nosso camarada php.ini fica disponível para edição,

Sobre o php.ini disponível, tem um tutorial aqui:
http://www.luizdeitos.com/2008/08/06/al ... rtilhadas/

Isso é ótimo até porque instala o ffmpeg e o ffmpeg-php na dreamhost. quem é ambicioso adora isso!

e aqui sobre o ffmpeg e o ffmpeg-php
http://www.luizdeitos.com/2008/08/07/ff ... artilhado/

certo galera? um abraço à todos.
www.luizdeitos.com
Luiz F. G. Deitos
[http://www.luizdeitos.com]


Locked

Return to “Segurança”