Linguagens de Programação

Linguagens de Programação

Java

Java

Site em Java não exibe corretamente caracteres acentuados de banco MySQL

Verifique se, por acaso, você não colocou em sua conta (na pasta /WEB-INF/lib) alguma versão do Connector/J (exemplos: mysql-connector-java-3.0.9-stable-bin.jar, mysql-connector-java-3.1.12-bin.jar, etc).

Se tiver colocado, retire-a.

Ela pode ser incompatível com a versão do MySQL em uso no servidor onde está a sua conta.

Além disso, é desnecessário ter uma versão deste conector em sua conta, uma vez que já existe no servidor, uma versão server-wide do Connector/J, que é mantida sempre atualizada e compatível com a versão em uso do MySQL.

TomCat

TomCat

Acho que o TomCat travou. E agora?

Pode acontecer, em algumas situações, que seu TomCat "trave", ou seja, que ele continue rodando "congelado", sem fazer nada, sem funcionar de verdade. Ou ele pode demorar um pouco para se desligar quando você dá um shutdown nele.

Em qualquer um dos casos, se você tentar reiniciá-lo com ele ainda rodando, isso não vai funcionar.

Assim, para verificar se seu TomCat ainda está rodando, você pode usar o comando "ps x". Por exemplo, você pode usar o comando sempre depois de um shutdown, para ter certeza que ele parou, antes de dar o startup.

Comando "ps x"

Note que o comando retorna uma linha informando quais programas estão rodando sob sua conta. Note também que, no começo de cada linha, há um número, naquela coluna com o nome "PID". Esse é o ID do processo, ou seja, o ID do programa que está rodando.

No caso, há uma linha referente ao "java" ali. Isso significa que o java está rodando ainda na conta. No exemplo acima, o ID do java é "18205".

Ocasionalmente, é possível que apareça mais de uma linha para o java, o que significa que ele está rodando várias vezes ao mesmo tempo:

Comando "ps x"

No exemplo acima, os IDs dos java são "18205" e "25396".

No caso de o java estar rodando apenas uma vez, o que seria o normal, aguarde alguns segundos e depois verifique de novo (com o comando "ps x") se ele ainda está rodando, pois ele pode mesmo demorar um pouco para parar. Espere por cerca de 30 segundos a 1 minuto. Se ele não tiver parado ainda, provavelmente ele "travou" e não vai mesmo parar usando o comando normal de desligamento. Nesse caso, você precisa fazê-lo parar "à força". Isso se faz com o comando "kill -9", desta forma:

Comando "kill -9"

O comando "kill -9" é sempre seguido do PID do programa que você deseja parar. Ou seja, no caso, é preciso usar o número do PID do java.


!!!ATENÇÃO!!! - sempre confira cuidadosamente se está usando o número de PID correto!

Se há mais de um java rodando, o comando deve ser rodado uma vez para cada PID de java. Por exemplo:

Comando "kill -9"

Depois, apenas verifique de novo se os processos realmente pararam:

Comando "ps x"

Pronto, o java parou de rodar. Agora, basta usar o comando para iniciá-lo novamente.

Caso o java não pare de rodar nem mesmo com o processo ensinado acima, o que é uma situação muito rara, é preciso, então, entrar em contato com o suporte pedindo ajuda.

Arquivos .WAR

Onde colocar

Antes de prosseguir a leitura deste tutorial, verifique se dentro de sua pasta "webapps" existe uma pasta chamada "ROOT2".

Dependendo disso, partes do processo podem ser diferentes.

Você deverá colocar seus arquivos .WAR dentro da pasta webapps de seu TomCat, localizada em:

tomcat/webapps

Isso poderá ser feito de 2 formas:

  • Por FTP
  • Pelo TomCat Manager (mais indicado!)

Nota: se fizer por FTP, deverá restartar o TomCat para que o arquivo .WAR possa ser descompactado.

Atenção agora!

Para contas SEM a pasta "ROOT2", faça o teste de sua aplicação no endereço:

http://www.seu-dominio:sua-porta-do-tomcat/pasta-do-seu-site

Por exemplo, se seu domínio é padariadojoao.com, a porta do seu TomCat é 8080, e o nome da pasta criada pelo seu arquivo war é teste, o endereço seria:

http://padariadojoao.com:8080/teste

Estando tudo certo, desejando que seu site abra diretamente esta pasta (sem aparecer a porta e sem aparecer a pasta na barra de endereços do navegador), ou desejando apenas que a porta não apareça, entre em contato com o Atendimento e faça esta solicitação (não esquecendo de informar em sua mensagem exatamente o que você deseja, o nome de seu domínio e o nome da pasta onde está seu site).

Para contas COM a pasta "ROOT2", não é preciso usar a porta, assim:

http://padariadojoao.com/teste

E nesse caso nem é preciso solicitar nada ao Atendimento depois, já que contas com a pasta ROOT2 são configuradas de outra forma, praticamente não usando mais a sua porta privativa.

Desejando que seu site abra diretamente esta aplicação (sem aparecer a pasta na barra de endereços do navegador), o nome do seu arquivo ".war" deve ser "ROOT.war" (assim mesmo, com "ROOT" em LETRAS MAIÚSCULAS), pois a pasta padrão para a aplicação principal da conta -- o seu site propriamente dito -- é a pasta "ROOT".

Se sua conta NÃO tem a pasta "ROOT2" mas, ao ler o texto acima, você gostou da independência que as contas COM a pasta "ROOT2" tem, entre em contato com o Atendimento solicitando que sua conta seja convertida para o formato novo, com a pasta "ROOT2".

 

Como iniciar e parar o TomCat

Para iniciar e parar o seu TomCat, siga as seguintes instruções abaixo:

Iniciar:

  1. Acesse sua conta via SSH.
  2. Uma vez conectado, digite o seguinte comando: cd tomcat/bin; ./startup.sh

Um ponto importante: nem sempre o site volta ao ar imediatamente assim que o comando de start do TomCat é executado. Assim como um computador leva alguns segundos para iniciar assim que você o liga, o mesmo pode ocorrer com o TomCat.

Parar:

  1. Acesse sua conta via SSH.
  2. Uma vez conectado, digite o seguinte comando: cd tomcat/bin; ./shutdown.sh
  3. Aguarde alguns segundos e verifique se o TomCat realmente foi desativado, pois às vezes ele pode travar.
    Para verificar, digite o comando: ps x
Para maiores informações sobre problemas com TomCat travado (caso descrito acima), por favor, visite a página:
 
http://wbh.st/tomcattravado
 
 
  

Como programar o TomCat para reiniciar AUTOMATICAMENTE depois de uma queda

Você já deve ter percebido que o TomCat "cai" e não retorna mais depois de algum problema, e que ele não volta sozinho, fazendo-se necessário reiniciá-lo manualmente.

Ensinamos, aqui, uma forma de fazer com que ele volte sozinho, todas as vezes que ele "cair".

Baixe o arquivo abaixo:

tomcat_check.txt

Renomeie o arquivo para "tomcat_check.sh" e envie-o para sua conta, colocando-o dentro da pasta tomcat/bin.

A seguir, dê a ele permissão para ser executado, pelo SSH, com o comando:

chmod 755 tomcat_check.sh

Ou dê a ele essas permissões (755) em seu programa de FTP (a maioria dos programas de FTP hoje tem como ajustar as permissões dos arquivos).

Depois, adicione-o em sua lista de Tarefas Agendadas (ou Tarefas de Cron, ou Crontab, dependendo do idioma), que fica em seu painel de controle cPanel:

Crontab 1

Crontab 2

Lá dentro, configure o script para rodar a cada CINCO minutos (nunca menos do que isso):

Crontab 3

Basta salvar a tarefa e pronto! Seu TomCat será reiniciado sozinho, automaticamente, sempre que ele "cair".

Como saber a versão de sua JVM

Para saber a versão de sua JVM, basta acessar seu TomCat Manager e clicar em Status, no menu Administration, do lado esquerdo da tela:

Versão da JVM

Ao acessar a página Server Status, a versão de sua JVM aparecerá na parte JVM Version, conforme ilustra o exemplo abaixo:

Versão da JVM

Como trocar o login e/ou senha de acesso ao TomCat Manager

Para trocar o login e/ou senha de acesso ao TomCat Manager, siga as seguintes instruções:

  1. Acesse sua conta via SSH ou FTP.
  2. Abra o arquivo: tomcat/conf/tomcat-users.xml
  3. Altere, neste arquivo, os valores de username e password.
    Sendo que username é o usuário (ou login) e password é a senha.
  4. Salve o arquivo.

EXEMPLO:

Antes:

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="manager"/>
<user username="fulano" password="fGhydy7" roles="manager"/>
</tomcat-users>

Depois:

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="manager"/>
<user username="sicrano" password="3Kh9dIp" roles="manager"/>
</tomcat-users>

Conta com TomCat reativada após suspensão não funciona

Se você tem uma conta da linha TomCat que foi suspensa, e após ser reativada continua não funcionando, é porque você precisa restartar o TomCat desta conta.

Quando uma conta com TomCat é reativada (após ter sido suspensa), é necessário restartar o TomCat para ele poder voltar "ao normal", pois isso não acontece automaticamente (ou seja, a Central de Pagamento apenas reativa a conta, não faz o restart do TomCat que, por ventura, esteja rodando nela).

 

Domínios adicionais no TomCat

Domínios adicionais no TomCat

Este tutorial ensina a configurar o TomCat para trabalhar com múltiplos domínios, cada qual rodando sua própria aplicação.


ATENÇÃO - Ao seguir os procedimentos deste tutorial, faça as devidas substituições:

  • LOGIN = pelo seu usuário principal do cPanel/FTP
  • DOMINIO_ADICIONAL = pelo nome completo de seu domínio adicional, sem o "www" (exemplo: samba.com.br)

OBSERVAÇÃO - tudo que está dentro do espaço negro, são comandos shell, que devem ser dados via SSH.


1) Adicione o domínio adicional no cPanel como "addon".

2) Crie uma pasta com o nome de seu domínio adicional dentro da pasta "webapps" de seu TomCat:

mkdir -p /home/LOGIN/tomcat/webapps/DOMINIO_ADICIONAL/ROOT

3) Crie outra pasta com o nome completo de seu domínio adicional dentro da pasta "conf/Catalina" de seu TomCat:

mkdir /home/LOGIN/tomcat/conf/Catalina/DOMINIO_ADICIONAL

4) Faça um backup de seu arquivo "server.xml":

cp -a /home/LOGIN/tomcat/conf/server.xml /home/LOGIN/server.xml__`date +%d_%m_%Y__%H_%M`.bkp

5) Dentro de seu arquivo "server.xml", adicione o seguinte bloco de configuração:

<Host name="DOMINIO_ADICIONAL" appBase="webapps/DOMINIO_ADICIONAL">
<Alias>www.DOMINIO_ADICIONAL</Alias>
</Host>

ATENÇÃO - o bloco deverá ser colocado imediatamente acima destas 3 últimas linhas que ficam, obviamente, no final do arquivo:

</Engine>
</Service>
</Server>

6) Crie um arquivo "ROOT.xml" dentro do diretório "tomcat/conf/Catalina/DOMINIO_ADICIONAL", com o seguinte conteúdo:

<Context path="" docBase="/home/LOGIN/tomcat/webapps/DOMINIO_ADICIONAL/ROOT" />

7) OPCIONAL - Se desejar que o domínio adicional tenha acesso ao TomCat Manager, por favor, solicite esta configuração ao nosso Atendimento.

8) Para finalizar, restarte seu TomCat:

/home/LOGIN/tomcat/bin/shutdown.sh ; sleep 2 ; /home/LOGIN/tomcat/bin/startup.sh

9) Teste o acesso ao seu domínio adicional:

http://www.DOMINIO_ADICIONAL:PORTA/

ATENÇÃO - note que na URL acima, há a presença da porta privativa de seu TomCat, que deverá ser utilizada para este teste. Caso não a recorde mais, consulte-a em sua Mensagem de Abertura de Conta.

10) OPCIONAL - Se o teste acima tiver sido bem-sucedido - e se desejar - você poderá solicitar ao nosso Atendimento a remoção da porta.

Erro - Address already in use

Erro

SEVERE: Catalina.start:
LifecycleException: service.getName(): "Catalina"; Protocol handler start failed: java.net.BindException: Address already in use:8080

Explicação

É comum aparecer nos logs do TomCat, a mensagem de erro "Address already in use".

Isso ocorre devido ao fato de que, entre os procedimentos de desligamento (shutdown) e inicialização (startup) do TomCat, o intervalo de tempo entre eles, foi muito curto.

Como o log é sempre mais rápido em gravar as informações, o erro momentâneo (porque, de fato, existiu) será registrado, porém, como o TomCat iniciou normalmente na sequência (assim que "derrubou" o processo antigo que usava a porta em questão), é seguro ignorar estas mensagens.

Há 2 procedimentos que você pode adotar, nesse caso.

1) Aguardar alguns segundos a mais, entre os comandos startup.sh e shutdown.sh.

2) Se isso não funcionar, significa que seu TomCat "travou", ou seja, ele ficou ali "congelado" e não pode ser desligado da forma convencional. Nesse caso, é preciso seguir este procedimento:

http://wbh.st/tomcattravado

 

Erro: Service Temporarily Unavailable

O erro Service Temporarily Unavailable costuma indicar que o TomCat de uma conta está inoperante (caído).

 Service Temporarily Unavailable

Para resolver este problema, um simples restart do TomCat deverá ser suficiente.

Caso não saiba como restartar seu TomCat, veja as instruções disponíveis aqui mesmo, neste Manual.

Erro: java.lang.OutOfMemoryError: Java heap space

Para este erro, por favor, experimente aplicar a mesma solução tratada neste documento:

http://manual.webhost.com.br/node/193

Erro: java.lang.OutOfMemoryError: PermGen space

O erro

java.lang.OutOfMemoryError: PermGen space

O que é

Explicando de forma simples, significa que está faltando memória para a sua aplicação poder funcionar.

Explicando detalhadamente:

O Java possui uma área de memória limitada adicional (separada do "heap"), chamada "Permanent Generation Memory" (ou "Perm Generation", "PermGen" ou "Geração Permanente"), que serve para armazenar objetos de geração permanente da VM (classes, métodos, etc), cuja desalocação é rara ou inexistente.

O tamanho padrão desta área de Geração Permanente é 64 MB.

Portanto, quanto mais objetos sua aplicação utilizar, maior deverá ser o tamanho da área de Geração Permanente.

Havendo uma quantidade de objetos sendo carregados na memória, maior que o limite do "PermGen" pode comportar, acontecerá o estouro do "PermGen" e a JVM irá lançar uma exceção que é justamente o erro "java.lang.OutOfMemoryError: PermGen space"

Por convenção, nós configuramos o tamanho do "MaxPermSize" das contas TomCat, da seguinte forma:

  • Java.TOMCAT-1 = 64 MB
  • Java.TOMCAT-2 = 96 MB
  • Java.TOMCAT-3 = 128 MB


Estes valores são à parte da memória do plano, ou seja, são como um "bônus" concedido a cada conta (e está sujeito a modificações - para mais ou para menos - sem aviso).

Assim, no total, cada conta TomCat tem, além da memória do plano contratado, mais essa memória adicional, para ser usada na área de Geração Permanente.

Veja como fica:

  • Java.TOMCAT-1 = 128MB + 64MB --> Total de 192MB
  • Java.TOMCAT-2 = 256MB + 96 MB --> Total de 352MB
  • Java.TOMCAT-3 = 512MB + 128 MB --> Total de 640MB


Se os valores acima ainda não forem suficientes para a sua demanda, você próprio poderá então, aumentar o valor de seu "MaxPermSize". Mas para isso, precisará "debitar" do valor total de seu plano, a quantidade de memória preterida.

Por exemplo, se você tem uma conta "Java.TOMCAT-3" (que oferece 512MB de RAM), e precisa de 256MB de "MaxPermSize" (ao invés dos 128MB oferecidos), precisará então, abrir mão de 128MB dos 512MB que seu plano oferece.

Assim, seu arquivo "catalina.sh", que por padrão, seria assim:

JAVA_OPTS="-Xms32m -Xmx512m -XX:MaxPermSize=128m"

Precisaria ser modificado para ficar assim:

JAVA_OPTS="-Xms32m -Xmx384m -XX:MaxPermSize=256m"

Note que com essa modificação, seus 512MB diminuiram para 384MB (que é justamente o resultado de 512 - 128). Desta forma, você pode ter 256MB como valor do "MaxPermSize".

Mas se aumentar o seu "MaxPermSize" através do recurso da "subtração" da memória for inviável para você, pode favor, considere um upgrade para um plano TomCat maior.

Consulte os planos atuais disponíveis em:

http://www.webhost.com.br/tomcat

E ainda, se para o caso de nenhum plano TomCat ser suficiente para atender sua demanda de memória, consulte nossos planos de VPS (servidor virtual), que oferecem até 4GB de RAM para você utilizar em seu TomCat como desejar:

http://www.webhost.com.br/servidores-virtuais

Nota: para informações complementares sobre VPS, é altamente aconselhável entrar em contato com nosso Atendimento antes de contratar este serviço.

Importante: não tente utilizar em sua conta TomCat, mais memória do que o seu plano oferece. Os limites são controlados não apenas via Sistema Operacional, como também pela monitoração das contas. Qualquer tentativa de alocar mais do que você tem contratado, será detectado e interpretado como Abuso. E isso ocorrendo, sua conta poderá ser suspensa ou mesmo cancelada.

Logs do TomCat

Os logs do TomCat ficam localizados na seguinte pasta:

tomcat/logs

 

Mensagens de Erro do TomCat

Erros:

  • Error occurred during initialization of VM
    Could not reserve enough space for object heap
    Could not create the Java virtual machine.
  • java.lang.OutOfMemoryError: unable to create new native thread

Sobre:

São erros referentes a memória insuficiente.

Significa que a memória disponível para a sua conta não está sendo suficiente para iniciar e/ou manter o seu TomCat em funcionamento.

Também deverá ser verificado se não existe nenhuma aplicação consumindo memória em excesso sem necessidade (talvez devido a algum erro no código).


Solução:

Caso não seja nenhuma aplicação com problemas (conforme considerado acima), então trata-se de um comportamento normal de sua conta que, por alguma razão (novas aplicações adicionadas, aumento da demanda, etc), passou a exigir mais memória dedicada para poder funcionar.

Neste caso, deverá ser considerado um upgrade para um plano que ofereça maior quantidade de memória RAM dedicada, suficiente para atender as necessidades de sua conta.


Dica:

Sempre analize os logs do TomCat para debugar problemas de memória.

A título de exemplo, pode ser utilizado o comando grep, por linha de comando, para procurar por determinadas ocorrências dentro dos arquivos de log:

grep -R "OutOfMemoryError" tomcat/logs/*

Verificando o uso de memória na conta

Este documento ensina a verificar o uso de memória para a conta.

TomCat

O limite de memória configurado para utilização pelo TomCat, pode ser visto na diretiva JAVA_OPTS, no arquivo:

/tomcat/bin/catalina.sh

Sistema Operacional

O limite de memória física, no sistema operacional, pode ser verificado por SSH, com o comando:

ulimit -a

A parte que indica a memória é a max memory size

Note que os valores estão em Kbytes. Assim, por exemplo, o valor 131072 significa 128 MB (divida 131072 por 1024).

PHP

PHP

Criando um php.ini personalizado

Para adicionar configurações personalizadas ao PHP, siga este procedimento:

(1) Crie um arquivo php.ini com as diretivas das quais você precisa, uma por linha. Veja bem: esse arquivo php.ini deve ser criado no Bloco de Notas (NotePad) do Windows ou qualquer aplicativo semelhante que trabalhe com arquivos de texto simples. Jamais faça isso no Word, por exemplo.

Seguem, abaixo, alguns exemplos de conteúdos de php.ini personalizados.

Quem precisa do register_globals ativado (on), deve usar a linha:

register_globals = on

Quem precisa do safe_mode desativado (off), deve usar a linha:

safe_mode = off

Quem precisa de um upload_max_filesize maior (ou menor), deve usar, por exemplo:

upload_max_filesize = 10M

Quem precisa configurar o session.save_path, deve usar uma linha do tipo, por exemplo:

session.save_path = /home/LOGIN/sessions

Note que "LOGIN", ali, é o login do seu cPanel/FTP.

Quem precisa do magic_quotes_gpc desativado (off), deve usar a linha:

magic_quotes_gpc = off

E assim por diante.

Clique no link abaixo para baixar um exemplo (que pode NÃO servir para o seu caso, é apenas um exemplo) de php.ini.

phpini.txt

NÃO O USE assim como ele está. Primeiro, renomeie o arquivo para "php.ini" apenas (sem o ".txt" no final) e depois abra-o no Bloco de Notas para editá-lo.

(2) Verifique se dentro de sua pasta public_html existe um arquivo chamado ".htaccess" (assim mesmo, com um ponto na frente do nome). Se tiver, baixe-o para seu computador. Se não tiver, crie você mesmo um arquivo chamado "htaccess.txt", tendo os mesmos cuidados que teve na criação do "php.ini" (texto puro, feito no Bloco de Notas, etc). Dentro desse arquivo ".htaccess" ou "htaccess.txt" (conforme tenha sido o seu caso), coloque a linha:

suPHP_ConfigPath    /home/LOGIN/public_html

Note que "LOGIN", ali, é o login do seu cPanel/FTP.

(3) Coloque os dois arquivos dentro de sua pasta "public_html", enviando-os através de um programa específico para FTP.

Se você teve que criar um arquivo "htaccess.txt" no passo 2 acima, renomeie esse arquivo, depois que ele estiver em sua conta, para ".htaccess" (assim mesmo, com um ponto na frente do nome).

 


Se esse assunto interessou você, há outras páginas do Manual que podem ser interessantes também:

http://manual.webhost.com.br/content/resolvendo-problemas-de-safemode

http://manual.webhost.com.br/content/deprecated

http://manual.webhost.com.br/content/limite-de-upload

Datas em Português em PHP

Se não estiver conseguindo exibir datas em Português, verifique se em seu script a função setlocale está definida corretamente, e se existe a presença da string strftime, que formata a data local de acordo com a definição do setlocale.

Abaixo, um exemplo para orientá-lo:

<?php
setlocale(LC_ALL, 'pt_BR');
echo strftime("%A %e %B %Y");
?>

Referências:

* http://www.php.net/manual/en/function.setlocale.php
* http://www.php.net/strftime

Deprecated

Mensagens de "Deprecated" do PHP, são mensagens de aviso que indicam que funções relevantes já não deveriam mais estar sendo usadas no código e que não serão mais suportadas pelo PHP por muito mais tempo e ocorrem (geralmente) em scripts desatualizados.

Os scripts devem ser SEMPRE atualizados com a última versão disponível pois, além de diminuir riscos de segurança, geralmente resolvem problemas de incompatibilidade como estes.

Da parte da Webhost, sistemas como PHP, MySQL e Apache são verificados diariamente. Havendo updates disponíveis, o sistema é atualizado.

Se você está tendo problemas com mensagens "Deprecated", sua primeira atitude deverá ser a de atualizar seu script com urgência, a fim de tentar resolver seu problema.

Paliativamente você poderá, se quiser, seguir os passos abaixo:

(1) Crie um arquivo php.ini no Bloco de Notas do Windows (ou em qualquer editor de texto "puro") com o seguinte conteúdo:

display_errors = Off
display_startup_errors = Off

(2) Verifique se dentro de sua pasta public_html existe um arquivo chamado ".htaccess" (assim mesmo, com um ponto na frente do nome). Se tiver, baixe-o para seu computador. Se não tiver, crie você mesmo um arquivo chamado "htaccess.txt", tendo os mesmos cuidados que teve na criação do "php.ini" (texto puro, feito no Bloco de Notas, etc). Dentro desse arquivo ".htaccess" ou "htaccess.txt" (conforme tenha sido o seu caso), coloque a linha:

suPHP_ConfigPath    /home/LOGIN/public_html

Note que "LOGIN", ali, é o login do seu cPanel/FTP.

(3) Coloque os dois arquivos dentro de sua pasta "public_html", enviando-os através de um programa específico para FTP.

Isso fará com que as mensagens "Deprecated" deixem de aparecer.
Entretanto, não significa em absoluto, que o problema foi resolvido. Ele apenas deixou de ser "visível". Continua sendo necessário que você atualize seu script com urgência, antes que novos problemas decorrentes da falta de atualização surjam, e ele deixe de funcionar completamente.
 

Formulário é enviado com nome do servidor no campo From

Quando um script em PHP envia emails com o endereço do servidor (exemplo: seu-login-do-cpanel@qualquercoisa.webhost.com.br) significa que a variável From não está corretamente declarada.

As formas corretas de se declarar a variável From são conforme mostram os exemplos abaixo:

From: "Nome de quem envia" <$email>

From: <$email>

Note que os nomes SEMPRE devem aparecer entre aspas, enquanto emails SEMPRE devem aparecer entre os sinais < e >.

 

Limite de Upload

O limite padrão do servidor, para upload de arquivos via PHP é de 2 MB. Isso significa que ao tentar enviar arquivos maiores que 2 MB, o servidor irá recusar o upload e gerar uma mensagem de erro. Porém, graças ao recurso phpSuExec, você pode sobrescrever este valor, alterando-o para qualquer outro valor de sua preferência, conseguindo desta forma, enviar arquivos maiores que o limite padrão definido.


Instruções

(1) Crie um arquivo chamado php.ini com o seguinte conteúdo:

post_max_size = 10M
upload_max_filesize = 10M

Nota: no exemplo acima, definimos os valores para somente permitir upload de arquivos cujo tamanho não ultrapasse 10 MB. Você deverá substituí-los para os valores de acordo com a sua necessidade.

(2) Verifique se dentro de sua pasta public_html existe um arquivo chamado ".htaccess" (assim mesmo, com um ponto na frente do nome). Se tiver, baixe-o para seu computador. Se não tiver, crie você mesmo um arquivo chamado "htaccess.txt", tendo os mesmos cuidados que teve na criação do "php.ini" (texto puro, feito no Bloco de Notas, etc). Dentro desse arquivo ".htaccess" ou "htaccess.txt" (conforme tenha sido o seu caso), coloque a linha:

suPHP_ConfigPath    /home/LOGIN/public_html

Note que "LOGIN", ali, é o login do seu cPanel/FTP.

(3) Coloque os dois arquivos dentro de sua pasta "public_html", enviando-os em modo ASCII através de um programa específico para FTP.

Se você teve que criar um arquivo "htaccess.txt" no passo 2 acima, renomeie esse arquivo, depois que ele estiver em sua conta, para ".htaccess" (assim mesmo, com um ponto na frente do nome).

(4) E está pronto!


Script de Exemplo

Se desejar verificar se as instruções acima deram certo, siga os seguintes passos:

(1) Acesse sua conta por FTP, e crie um diretório (pasta) para receber os arquivos enviados através da web. Como sugestão, nós sugerimos a você que crie um diretório chamado uploads dentro de seu diretório principal public_html.

(2) Crie um arquivo chamado uploadteste.php com o seguinte conteúdo:

 <?php
 if (!empty($_FILES['ourFile']['name'])) {
 $saveDirectory = 'uploads/';
 $tempName = $_FILES['ourFile']['tmp_name'];
 $fileName = $_FILES['ourFile']['name'];
 if (move_uploaded_file($tempName, $saveDirectory . $fileName)) {
 echo 'Feito!';
 } else {
 echo 'Erro!';
 }
 } else {
 ?>
 <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data" name="upload">
Selecione o arquivo:
   
 <input name="ourFile" type="file">
 
 <input name="submit" type="submit" value="Enviar">
 </form>
 <?php
 }
 ?>
 

Nota: no código acima, substitua a ocorrência uploads pelo nome do diretório que você criou para receber os arquivos enviados pelo script. Caso tenha optado por aceitar nossa sugestão e criou um diretório chamado uploads, então você não deverá alterar nada no script.

(3) Coloque o arquivo uploadteste.php (por FTP em modo ASCII) em sua conta.

(4) Acesse o arquivo uploadteste.php pela web:

http://SEU-DOMINIO-AQUI/uploadteste.php

Nota: no endereço acima, substitua a ocorrência seudominio pelo nome de seu próprio domínio.

(5) Usando o formulário do script, envie um arquivo cujo tamanho não ultrapasse os valores definidos dentro de seu arquivo php.ini.

Se o upload tiver sido bem sucedido, o script retornará a seguinte mensagem:

Feito!

Nota: verifique (por FTP) se o arquivo enviado encontra-se dentro do diretório definido para receber os arquivos.

 

Pear

 

No momento esta categoria ainda está vazia.

 

Resolvendo problemas de safe_mode ON

Para corrigir erros de safe_mode ON, siga o procedimento abaixo:

(1) Crie um arquivo chamado php.ini com o seguinte conteúdo:

safe_mode = off

IMPORTANTE: o arquivo php.ini precisa ser criado em formato de texto puro. Para isso, você deve usar, por exemplo, o Bloco de Notas do Windows (mas jamais use o Word ou outros editores similares para isso).

Você pode baixar um exemplo de php.ini aqui:

phpini.txt

NÃO O USE assim como ele está. Primeiro, renomeie o arquivo para "php.ini" apenas (sem o ".txt" no final) e depois abra-o no Bloco de Notas para editá-lo.

(2) Verifique se dentro de sua pasta public_html existe um arquivo chamado ".htaccess" (assim mesmo, com um ponto na frente do nome). Se tiver, baixe-o para seu computador. Se não tiver, crie você mesmo um arquivo chamado "htaccess.txt", tendo os mesmos cuidados que teve na criação do "php.ini" (texto puro, feito no Bloco de Notas, etc). Dentro desse arquivo ".htaccess" ou "htaccess.txt" (conforme tenha sido o seu caso), coloque a linha:

suPHP_ConfigPath    /home/LOGIN/public_html

Note que "LOGIN", ali, é o login do seu cPanel/FTP.

(3) Coloque os dois arquivos dentro de sua pasta "public_html", enviando-os através de um programa específico para FTP.

Se você teve que criar um arquivo "htaccess.txt" no passo 2 acima, renomeie esse arquivo, depois que ele estiver em sua conta, para ".htaccess" (assim mesmo, com um ponto na frente do nome).

 


Nota: é possível que apareçam outros problemas, depois que você fizer a correção acima. Se isso acontecer, dê uma olhada nos links abaixo:

http://manual.webhost.com.br/content/erro-warning-date-functiondate-it-not-safe-rely-systems-timezone-settings

http://manual.webhost.com.br/content/deprecated 

session.save_path

Para salvar dados de sessão em PHP, o recomendado é que você crie uma pasta (que pode se chamar "sessions"), dentro da raiz de sua conta (ou seja, FORA da sua pasta public_html) e a referencie dentro do seu arquivo php.ini, assim:

session.save_path = /home/ LOGIN/sessions

Caso ainda não tenha um arquivo php.ini, ou não saiba como criar um, por favor, leia o seguinte documento:

http://manual.webhost.com.br/content/criando-um-phpini-personalizado