sábado, 30 de junho de 2012

Descobrindo a Versão do Banco de Mysql Linux

Utilizando um Comando Simples Mysql , Va  na ABA "SQL" do phpmydmin e pegue o resultado dele.

Comando:
Select VERSION() 

Instalando e configurando servidor SSH (Ubuntu)

Este tutorial tem por objetivo ensinar como realizar as configurações básicas de um servidor SSH. Antes de começarmos a configurar o SSH no GNU/Linux precisamos compreender o que ele é e para o que ele serve, pois só assim conseguiremos saber como aplicá-lo para atender nossas necessidades administrativas.

No mundo onde necessitamos a cada dia mais de mecanismos que facilitem a administração de servidores Linux, surgiu uma ferramenta para possibilitar o acesso remoto ao servidor. Essa ferramenta é o SSH, ela permite que de qualquer lugar da rede, você estando em uma máquina com Linux ou Windows, consiga comunicar-se com o servidor a fim de realizar rotinas administrativas como se estivesse diante do próprio servidor.

Uma observação interessante é que para utilizar o Windows para administrar o Linux é necessário utilizar uma aplicação leve e gratuita chamada Putty, que deve ser instalada no Windows.

Antigamente tínhamos o telnet, ferramenta que era utilizada para administração remota e hoje temos o SSH, que é uma ferramenta muito mais segura e eficiente.

Instalando e configurando o SSH no servidor

Para instalarmos o SSH no Ubuntu é muito simples. Basta, estando no shell como root, digitarmos:

# apt-get install openssh-server

E esperar que ele realize o download e instalação automática. O SSH, após instalado, gera alguns arquivos de configuração e o principal deles é o /etc/ssh/sshd_config - arquivo de configuração do servidor SSH.

Primeiro passo: vamos começar editando o principal arquivo de configuração, o sshd_config encontrado em: /etc/ssh/sshd_config. Para tal, estando no shell como root, digite:

# vim sshd_config

E realize as seguintes alterações dentro do arquivo:

Em port coloque o padrão 22 ou uma de sua escolha. Esse campo diz ao SSH que ele estará escutando as requisições vindas de outros computadores por esta porta ficando assim:

port 22

Na linha #AllowUsers, que pode existir ou não (se não existir crie-a), você pode deixá-la comentada para que todos os usuários possam acessar o servidor ou retirar o comentário ("#") e especificar um usuário. A linha pode ficar assim, caso deseje especificar um usuário único em poder de acesso ao servidor remotamente:

AllowUsers racy

Na linha "#PermitRootLogin yes" (caso não exista, crie-a) você pode remover o comentário se desejar que o root possa se logar remotamente, caso não deseje remova o comentário ("#") e troque o yes por no.

Obs. 1: Se você deseja que o root se conecte, não coloque a linha AllowUsers.

Obs. 2: Se você deseja que o seu usuário comum conecte-se e não o root, você deverá coloca as duas linhas, então só seu usuário irá conectar, mas ele não poderá virar root.

Feito essas configurações, salve o arquivo. ;-)

Segundo passo: agora precisamos parar e iniciar o serviço fazendo com que nossas configurações entrem em vigor. Para isso, ainda estando como root, digite:

# /etc/init.d/ssh stop # /etc/init.d/ssh start

Agora nós já temos o servidor SSH em pleno funcionamento pronto para as requisições de administração remota.

Instalando e configurando o SSH no cliente Linux

Basta realizar a instalação do SSH cliente. Estando no shell como root, digitaremos:

# apt-get install openssh-client

Wireless não funciona no laptop Philco com Ubuntu

Tenho um Philco PHN 11053 com o trio SIS M 672 FX + SIS 198, SIS 307 ELV e, apesar de, no Windows XP, estar detectando as redes wireless, no Ubuntu, isto não estava ocorrendo. Vai ai uma dica de ouro.

Para fazer detectar o wireless, eu fui em Sistema -> Administração -> Drivers Adicionais e lá, havia um driver de modem não ativado. Isto ocorre porque o driver não é open-source e o Ubuntu tem que fazer uma burocracia pra se certificar que você quer usar algo não-aberto, ou as vezes ele acha sozinho e já instala sem vc ver qualquer coisa.



Cliquei, então, em ativar. Pediu a senha de root. É importante que exista algum acesso direto à internet por um cabo, ou o driver não será instalado (on clouds).
Feito isto, reiniciei e o wireless foi corretamente detectado. Um detalhe: não sei por quê o wireless vem desativado por padrão. Não esqueça, então de apertar a tecla Fn mais a tecla correspondente ao wireless (aqui é F10). O LED indicador do wireless deve estar ligado.

sexta-feira, 29 de junho de 2012

Criando Links com o Comando LN no Linux

O comando ln permite criar links. Existem dois tipos de links suportados pelo Linux, os hard links e os links simbólicos. Os links simbólicos têm uma função parecida com os atalhos do Windows, eles apontam para um arquivo, mas se o arquivo é movido para outro diretório o link fica quebrado. Os hard links são semelhantes aos atalhos do OS/2 da IBM, eles são mais intimamente ligados ao arquivo e são alterados junto com ele. Se o arquivo muda de lugar, o link é automaticamente atualizado.
O comando ln dado sem argumentos cria um hard link, como em:
$ ln /home/morimoto/arquivo.txt arquivo
Onde será criado um link chamado "arquivo" no diretório corrente, que apontará para o arquivo.txt dentro do diretório /home/morimoto
Para criar um link simbólico, basta acrescentar o argumento "-s", como em:
$ ln -s /home/morimoto/arquivo.txt arquivo
Você pode criar tanto links apontando para arquivos, quanto links apontando para diretórios. Por exemplo, se você acha muito trabalhoso acessar o CD-ROM através do diretório /mnt/cdrom, você pode simplesmente criar um link para ele dentro do seu diretório de usuário, ou onde você quiser. Ao clicar sobre o link no gerenciador de arquivos, você acessará o CD-ROM.
Para criar um link chamado "CD" dentro do seu diretório de usuário apontando para o CD-ROM, o comando seria:
$ ln -s /mnt/cdrom ~/CD
O interpretador de comandos se encarregará de substituir automaticamente o "~" pela localização correta da sua pasta de usuário, não importa qual seja.
Você pode ainda criar links que funcionarão em qualquer parte do sistema. Por exemplo, imagine que você armazene seus arquivos de trabalho na pasta /home/seu_nome/trabalho/arquivos. Ao invés de digitar o caminho completo, você poderia criar um link simbólico "arquivos" que poderia ser acessado a partir de qualquer pasta do sistema. Para isto, basta acessar o diretório /usr/bin e criar o link por lá, usando os comandos:
$ cd /usr/bin
$ ln -s /home/seu_nome/trabalho/arquivos arquivos
Você verá muitos links espalhados pela estrutura de diretórios do Linux, um recurso muito usado quando os arquivos de sistemas mudam de lugar numa nova versão. Mantendo um link na localização antiga, todos os programas antigos continuam funcionando sem problemas.

segunda-feira, 25 de junho de 2012

Pingando IP, Máquinas, Endereços e URLs

Há dois modos básicos de pingar uma máquina. Com exec e com Sockets.

Função exec()

Utilizando o exec() do PHP, você pode executar algo na linha de comando do sistema. Mas há duas ressalvas aí:
1. Requer que esteja liberado o acesso ao shell via PHP, senão seus códigos do exec() serão bloqueados.
2. O sistema que está rodando o PHP deve ter o “ping” habilitado, ou seja, não deve estar bloqueado por firewalls ou qualquer coisa assim.
Se você não preenche os dois requisitos acima, pule para a próxima etapa.

O código para pingar uma máquina, via exec(), é o seguinte:

<?php
    exec('ping 127.0.0.1', $saida, $retorno);
    if (count($saida)) {
        print 'A Máquina está online e os dados do PING foram gravados
               em $saida. :)';
    } else {
        print 'A Máquina NÃO está online ou o host não pode ser 
               encontrado. :(';
    }
?>
Só não esqueça de trocar o IP que vai ser pingado! :P

Pingando via Sockets
Se você não pode ou não quer usar o exec(), há outra alternativa.
Usando sockets, você tenta conectar a um computador usando uma 
determinada porta e verifica se ele responde.
 A única coisa que você precisa saber é uma porta que esteja aberta no host.
O exemplo abaixo utiliza a porta 135, mas você pode usar a porta 80 se estiver
tentando pingar um site, até mesmo para descobrir se ele existe.


<?php
$conectado = @ fsockopen('127.0.0.1', 135, $numeroDoErro, $stringDoErro,
10); // Este último é o timeout, em segundos
if ($conectado) {
   print 'A máquina está online! :)';
} else {
   print 'A máquina NÃO está online! :(';
}
?>


Conclusão
É sempre bastante útil ter um Ping por perto. Com ele você pode 
monitorar máquinas e redes de qualquer lugar.
Uma boa aplicação destas funções é no monitoramento de sistemas via Web.
Um grande abraço a todos e fiquem com Deus!

Descobrindo a idade através da data de nascimento em PHP



Algumas vezes você pode necessitar descobrir a idade exata do seu usuário. As vezes ele acaba sendo barrado, apesar de ter a idade correta, mas pelo fato de ele ter completado a idade necessária no ano corrente, acabamos por restringir um usuário que deveria ter acesso.
A idéia básica nesse script é encontrar a timestamp de hoje, a timestamp do nascimento do fulano, subtrair um do outro, dividir pelos 60 segundos, pelos 60 minutos, pelas 24 horas e pelos 365.25 dias do ano. (Ufa!)

Mas aí você me pergunta: “Peraí! 365.25 dias do ano?!”.
Lembra-se dos anos bissextos? (Rápida aula de história :P)
Em 238 a.C., lá no Egito, durante a monarquia de Ptolomeu III, foi decretada a adição de 1 dia a cada 4 anos, pra compensar a diferença que existia entre o ano do calendário e o ano solar. Depois aconteceram diversos fatos, que não vêm ao caso agora, e finalmente foi dada origem ao que provavelmente é a maior gambiarra da história: o ano bissexto. Por isso cada ano teria aproximadamente 365.25 (por causa do 1/4 de dia que fica sobrando)…
Bom… Está respondida a pergunta, então..

Mão na massa

Vamos supor que temos apenas a data, no formato brasileiro…

<?php
    // Declara a data! :P
    $data = '29/08/2008';
    // Separa em dia, mês e ano
    list($dia, $mes, $ano) = explode('/', $data);
    // Descobre que dia é hoje e retorna a unix timestamp
    $hoje = mktime(0, 0, 0, date('m'), date('d'), date('Y'));
    // Descobre a unix timestamp da data de nascimento do fulano
    $nascimento = mktime( 0, 0, 0, $mes, $dia, $ano);
    // Depois apenas fazemos o cálculo já citado :)
    $idade = floor((((($hoje - $nascimento) / 60) / 60) / 24) / 365.25);
    print $idade;
?>


Conclusão
Há outros métodos de se fazer isso, mas esse é um dos mais simples, pois utiliza apenas cálculos e não vários IFs.
Espero que tenham gostado! :)

Entendendo as Expressões Regulares

E o assunto hoje é Expressões Regulares!
Com algumas vasculhadas pela internet podemos encontrar inúmeras definições para expressões regulares, porém, vou ficar com a da Wikipédia de lingua portuguesa.
Uma expressão regular, na Informática, define um padrão a ser usado para procurar ou substituir palavras ou grupos de palavras. É um meio preciso de se fazer buscas de determinadas porções de texto.
Por exemplo, se o conjunto de palavras for {asa, carro, jardim, ovos, terra} e a expressão regular buscar por um padrão rr, obterá as palavras carro e terra.
Existem diferentes formatos para definir-se expressões regulares, porém com algumas noções gerais é possível entender boa parte das expressões.
Fonte: Wikipédia – Expressão Regular

Conceito

As Expressões Regulares (ER, Ereg ou RegEx – para os mais íntimos), então, são um método rápido e simples de manipulação e combinação avançada de strings.
Vamos partir do princípio! Uma expressão regular é essencialmente um padrão. É com base nesse padrão que a expressão em questão será avaliada. Primeiro vamos aprender a sintaxe das expressões para depois aprender como fazê-las funcionar…

sábado, 23 de junho de 2012

Replica de servidores MySQL Master/Slave

Para que fazer uma replica da base de dados ?
Replicação de base de dados é a capacidade das bases de dados num servidor MySQL serem duplicadas para outros servidores. Ela tem o objectivo de aumentar a velocidade e confiabilidade de uma estrutura de base de dados.
O MySQL permite diversos tipos de replicação. Pode-se por exemplo utilizar diversas máquinas numa rede trabalhando como servidores de base de dados, todas com o mesmo conteúdo, e balancear as requisições de consultas entre esses servidores para aumentar a velocidade. Em caso de problemas críticos com o servidor master, pode redireccionar todo o tráfego para os slaves com o objectivo de manter o serviço em funcionamento sem interrupções, enquanto se faz no servidor master.
Vamos tratar aqui nesse artigo a replicação de bases MySQL entre servidor Master para um Slave.
A configuração é bem simples como vai ser mostrado.
  1. Hostname: master
  2. IP address: 10.0.0.1/24
  3. V. MySQL: 5.1
  1. Hostname: slave
  2. IP address: 10.0.0.2/24
  3. V. MySQL: 5.1
OBS: Esta configuração tem que ser feita nos 2 servidores.
Vamos parar o servidor mysql
/etc/init.d/mysql stop
Agora vamos configurar o arquivo /etc/mysql/my.cnf
Temos que mudar o parametro bind-address = 127.0.0.1 para bind-address = 0.0.0.0
vim /etc/mysql/my.cnf
[...]
bind-address = 0.0.0.0
Esse parametro é utilizado para definir quem o servidor vai escutar, quando temos ele como 127.0.0.1 entao somente podemos ter conexoes locais, então liberamos ele em 0.0.0.0 que seria qualquer host e fazemos a segurança nas permissões.
Configuração do /etc/mysql/my.cnf para o servidor que vai trabalhar como MASTER.
vim /etc/mysql/my.cnf
[...]
[mysqld]
server-id  = 1
log_bin      = /var/log/mysql/mysql-bind.log
Agora já podemos iniciar o serviço do servidor MASTER.
Configuração do /etc/mysql/my.cnf para o servidor que vai trabalhar como SLAVE
vim /etc/mysql/my.cnf
[...]
[mysqld]
server-id  = 2
log_bind   = /var/log/mysql-bind.log
Agora já podemos iniciar o serviõ do servidor SLAVE.
Essa configuração é feita no servidor MASTER.
Agora vamos criar o usuário que vai ser utilizado para replicação.
Aqui estou criando um usuário chamado replica e ele pode se logar neste servidor de qualquer outro, o que podemos fazer tambem é ao invez de informar que usuário pode se logar de qualquer lugar como no exemplo: replica@'%', o sinal de % significa qualquer host então podemos informar o ip do servidor slave exemplo: replica@'10.0.0.2', assim garantimos que o usuário replica só pode se logar neste servidor se ele vier do ip 10.0.0.2.
Vamos logar no mysql e criar o nosso usuário.
mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 35
Server version: 5.1.56-0.dotdeb.1-log (Debian)
 
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> GRANT REPLICATION SLAVE,SUPER,RELOAD ON *.* TO replica@'%' IDENTIFIED BY 'senha';
Query OK, 0 rows affected (0.00 sec)
 
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
 
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      347 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.01 sec)
 
mysql> quit
Bye
Agora vamos configurar o nosso servidor SLAVE troque os valores em vermelhos pelos que você definiu.
O valor de MASTER_LOG_FILE é o valor do File que é mostrado em SHOW MASTER STATUS no servidor MASTER e o MASTER_LOG_POS é o valor retirado do mesmo comando so que no campo Position.
mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 35
Server version: 5.1.56-0.dotdeb.1-log (Debian)
 
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> CHANGE MASTER TO
 -> MASTER_HOST='10.0.0.2',
 -> MASTER_USER='replica',
 -> MASTER_PASSWORD='senha',
 -> MASTER_LOG_FILE='mysql-bin.000001',
 -> MASTER_LOG_POS=347;
Query OK, 0 rows affected (0.04 sec)
 
mysql> START SLAVE;
Query OK, 0 rows affected (0.00 sec)
 
mysql> SHOW SLAVE STATUS\G
*************************** 1. row ***************************
 Slave_IO_State: Waiting for master to send event
 Master_Host: 10.0.0.2
 Master_User: replica
 Master_Port: 3306
 Connect_Retry: 60
 Master_Log_File: mysql-bin.000001
 Read_Master_Log_Pos: 347
 Relay_Log_File: mysqld-relay-bin.000002
 Relay_Log_Pos: 251
 Relay_Master_Log_File: mysql-bin.000001
 Slave_IO_Running: Yes
 Slave_SQL_Running: Yes
 Replicate_Do_DB: 
 Replicate_Ignore_DB: 
 Replicate_Do_Table: 
 Replicate_Ignore_Table: 
 Replicate_Wild_Do_Table: 
 Replicate_Wild_Ignore_Table: 
 Last_Errno: 0
 Last_Error: 
 Skip_Counter: 0
 Exec_Master_Log_Pos: 347
 Relay_Log_Space: 407
 Until_Condition: None
 Until_Log_File: 
 Until_Log_Pos: 0
 Master_SSL_Allowed: No
 Master_SSL_CA_File: 
 Master_SSL_CA_Path: 
 Master_SSL_Cert: 
 Master_SSL_Cipher: 
 Master_SSL_Key: 
 Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
 Last_IO_Errno: 0
 Last_IO_Error: 
 Last_SQL_Errno: 0
 Last_SQL_Error: 
1 row in set (0.00 sec)
 
mysql> quit
Bye
Pode ser notado que não temos nenhum erro em nossa replicação senão teriamos aviso em Last_SQL_Error na saída do comando SHOW SLAVE STATUS\G.
Agora vamos fazer alguns testes.
Logue no servidor MASTER e digite os comandos abaixo.
mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 38
Server version: 5.1.56-0.dotdeb.1-log (Debian)
 
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
+--------------------+
3 rows in set (0.00 sec)
 
mysql> 
Podemos notar que temos somente 2 tabelas no servidor MASTER.
Agora vamos logar no servidor SLAVE.
mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 41
Server version: 5.1.56-0.dotdeb.1-log (Debian)
 
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
+--------------------+
3 rows in set (0.00 sec)
 
mysql> 
No servidor SLAVE temos tambem somente 2 tabelas, agora podemos fazer os nossos testes.
No servidor MASTER agora.
mysql> create database douglas;
Query OK, 1 row affected (0.01 sec)
 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| douglas            |
| mysql              |
+--------------------+
3 rows in set (0.00 sec)
Agora vamos ver se no servidor SLAVE ja foi replicada a nossa tabela.
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| douglas            |
| mysql              |
+--------------------+
3 rows in set (0.00 sec)
Podemos notar que a nossa tabela foi replicada do MASTER para o SLAVE.
OBS: Se criarmos qualquer coisa no servidor MASTER vai ser replicado para o servidor SLAVE porém se criarmos algo diretamente no servidor SLAVE não vai ser replicado para o servidor MASTER, com isso teriamos que fazer um backup dos dados que foram inseridos no servidor SLAVE e importar no servidor MASTER.
Referências

Limite de banda de download com WGET

A dica de hoje é muito útil e rápida na hora de fazer um download grande sem deixar o mesmo utilizar toda a banda passante de nosso link de Internet seja ele empresarial ou residencial.
Segue vídeo de como fazer este limite de banda de um download em 50 kbit/s (opção –limit-rate=50k) quando se está utilizando a ferramenta wget.

sexta-feira, 22 de junho de 2012

Recuperar a senha de root do MySQL

Primeiro passo é verificar se o seu MySQL está realmente parado:
[root@vostrolab ~]# /etc/init.d/mysqld status
mysqld is stopped
Segundo passo é criar um arquivo de inicialização pro banco de dados:
[root@vostrolab ~]# vim /var/lib/mysql/mysql-init
No exemplo acima utilizei o vim mas você pode utilizar o seu editor de texto predileto(nano, jed, joe, gedit, emacs e por aí vai…). Dentro do arquivo de configuração você pode colocar o seguinte conteúdo:
UPDATE mysql.user SET Password=PASSWORD(‘123456‘) WHERE User=’root’;
FLUSH PRIVILEGES;
Este comando acima será responsável por alterar a tabela mysql.user configurando sua nova senha para o usuário root. Note que grifei em vermelho acima onde você deve configurar sua nova senha.
Agora basta iniciar o MySQL em modo seguro e apontando para o seu arquivo de inicialização que acabamos de configurar. Para isso usamos o mysqld_safe conforme abaixo:
mysqld_safe –init-file=/var/lib/mysql/mysql-init &
Para testar, basta tentar conectar novamente no MySQL com a nova senha:
[root@vostrolab ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.56 Source distribution
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql>
Feito… Agora basta parar o serviço mysqld_safe e iniciá-lo do modo convencional, que tudo estará funcionando normalmente com sua nova senha…
[root@vostrolab ~]# /etc/init.d/mysqld stop
110609 22:45:59 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
Stopping mysqld:                                           [  OK  ]
[1]+  Done                    mysqld_safe –init-file=/var/lib/mysql/mysql-init
[root@vostrolab ~]# /etc/init.d/mysqld start
Starting mysqld:                                           [  OK  ]
Referências:  http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html 

quinta-feira, 21 de junho de 2012

Resolvendo o Erro 500 Internal Server Error

Em servidores cPanel, cuja manipulação do PHP é feita com o suPHP ativado, grande parte dos erros 500 podem ser resolvidos apenas verificando-se e alterando conforme necessários as permissões dos arquivos e pastas. Se você utilizar permissões 777 em uma pasta ou arquivo, provavelmente este erro ocorrerá. Então, o ideal é sempre utilizar 755 para as pastas e 644 para os arquivos (exceto se especificado o contrário na documentação do software ou script).
Existe uma maneira de fazer esta modificação em todas as pastas e em todos os arquivos, no caso de você ter diversos arquivos e diretórios com permissões erradas.
Para modificar as permissões de todos os diretórios para 755, no SSH digite:
find /home/*/public_html -type d -exec chmod 755 {} ;
Para modificar as permissões de todos os arquivos para 644, no SSH digite:
find /home/*/public_html -type f -exec chmod 644 {} ;
Outra causa desses erros pode ser o arquivo .htaccess, tentando modificar algum parâmetro do PHP. Abra o .htaccess e veja se há linhas com comandos do tipo php_flag e php_value. Se houver, apague-as.

Fazendo backup e restaurando o banco de dados MySQL utilizando PHPMyAdmin

Fazendo backup do seu banco de dados MySQL utilizando PHPMyAdmin
- Abra seu PHPMyAdmin, clicando no ícone correspondente no cPanel. No menu ao lado esquerdo, clique no banco de dados que deseja fazer backup;
- Clique na aba Exportar no lado direito;
- Certifique-se de selecionar para exportar toda a base de dados, não somente uma tabela. Todas as tabelas deverão aparecer na lista de exportação, e por ali você pode escolher as que deseja fazer backup;
- Selecione “SQL” como formato de saída, marque “Structure” e “Add AUTO_INCREMENT”. Selecione “Enclose table and field name with backquotes”. Selecione “DATA”, e marque “hexadecimal for binary field”. Ajuste o tipo de exportação (export type) para “INSERT”.
- Selecione “Save as file” (Enviado), não modifique o nome do arquivo, e use a compressão de sua preferência.  Clique em OK para fazer o download do seu backup.
Restaurando backup de um banco de dados MySQL usando PHPMyAdmin
- Para restaurar um backup, clique na aba SQL;
- Na página “SQL”, desmarque Mostrar esta consulta SQL novamente;
- Cole o conteúdo do backup do seu banco de dados;
- Clique Executar;
Alternativamente você pode ir na aba Import e selecionar o arquivo que deseja restaurar, e clicar em Executar.