Artigos

16 de maio de 2016

FAMP – Freebsd + Apache + MySQL + PHP

Mais artigos de »
Escrito por: Leonardo Souza
Tags:

FAMP – Freebsd + Apache + MySQL + PHP

Introdução

A pilha FAMP (FreeBSD, Apache, Mysql e PHP) é semelhante uma pilha LAMP no Linux (Linux Apache, Mysql e PHP), ou seja, um conjunto de softwares de código aberto que implantados em um mesmo ambiente permitem ao servidor FreeBSD hospedar websites dinâmicos. Dessa forma é possível desenvolver e disponibilizar sistemas em PHP com conexão com banco MySQL.

Neste artigo vamos realizar a configuração do servidor FAMP e no fim vamos criar um arquivo básico PHP que vai realizar a conexão com o banco e inserir registros nele, ou seja, vamos por meio deste arquivo inserir dados no banco.




Todas as aplicações instaladas neste artigo serão feitas por meio do utilitário “pkg”, ou seja, utilizaremos pacotes binários, porém todos podem ser instalados por meio de ports, caso assim desejemos. Para mais detalhes sobre a instalação de aplicativos no FreeBSD leia nosso artigo sobre o tema.

Sendo assim as partes deste artigo são:

1 – Instalação e configuração do Apache;

2 – Instalação e configuração do PHP;

3 – Instalação e configuração do Mysql;

4 – Criação de arquivo PHP que conecta no banco e insere dados nele.

I – Instalação do Apache

Iniciaremos nosso servidor FAMP com a instalação do Apache. Já explicamos em outro artigo como realizar a instalação e configuração do Apache + PHP, porém faremos novamente neste artigo por se tratarem de versões diferentes na implementação. Utilizaremos aqui a instalação por meio de pacotes binários, sendo assim basta digitar o comando “pkg install apache24”.

FAMP - Instalação do Apache

O sistema vai listar todas as dependências e solicitar a confirmação para instalar tudo. Digite “y” e clique a tecla “ENTER”. Ao finalizar o sistema mostra uma mensagem de confirmação.

Finalizada a instalação precisamos realizar algumas configurações. Primeiro vamos acessar o arquivo de configuração do Apache e editar a cláusula “ServerName”, inserindo o hostname, nome do servidor, ou endereço IP do servidor.

Para isso precisaremos acessar o arquivo “/etc/local/etc/apache24/httpd.conf” com o editor de textos ee :”ee /usr/local/etc/apache24/httpd.conf”:

ee /usr/local/etc/apache24/httpd.conf

Com o arquivo aberto procure a cláusula “ServerName”:

2

Neste exemplo inseri o IP do servidor que é 192.168.25.112.

 Agora vamos configurar o Apache para iniciar com o boot do sistema. Para isso precisamos acessar o arquivo /etc/rc.conf e inserir a linhas “apache24_enable=”YES“. Vamos utilizar, mais uma vez o editor “ee” (editor fácil):

ee /etc/rc.conf

3

Dessa forma finalizamos a instalação e configuração do Apache, por enquanto. Vamos agora testar as configurações.

Para isso inicie o apache digitando o comando “/usr/local/etc/rc.d/apache24“.

# /usr/local/etc/rc.d/apache24 start

Pronto o serviço está “rodando”.

Para testar estas configurações precisamos digitar no navegador o IP do servidor Apache. Se estivermos utilizando ambiente gráfico podemos abrir no navegador e digitar: “http://127.0.0.1” ou “http://localhost”.

Porém neste exemplo estou utilizando o FreeBSD apenas com modo texto, dessa forma precisamos descobrir qual o IP do servidor acessá-lo de outro computador da rede. Para saber qual o IP do servidor digite o comando “ifconfig”.

ifconfig

Veremos uma série de informações referentes as interfaces de rede do servidor. Porém podemos filtrar a saída deste comando para visualizar melhor as informações. Como o que me interessa é apenas o IP da interface “em0”, vou filtrar este resultado digitando o comando “ifconfig vtnet0 | grep “inet ” | awk ‘{ print $2 }‘”.

4

Vemos aqui que nosso IP é o 192.168.25.112. Agora basta digitar este número no navegador de qualquer computador que está na mesma rede do servidor.

5

Perceba que ao digitar o IP do servidor Apache no navegador podemos ver a mensagem “It works!“, esta é uma mensagem padrão do apache, indicando que a instalação foi bem sucedida.

ATENÇÃO: embora tenhamos utilizado a instalação por meio de pacotes binários, é possível, se desejarmos utilizar o Port “www/apache24” para instalá-lo no sistema. Basta para isso acessar o diretório “/usr/ports/www/apache24” e digitar o comando “make install clean“.

Vamos agora á instalação do PHP e módulo PHP para Apache.

II – Instalação e configuração do PHP

Instalaremos o PHP por meio do utilitário “pkg“, para isso digite o comando “pkg install php56“. A versão instalada é a 5.6.21.

# pkg install php56

php1

O sistema solicitará a confirmação da instalação, digite “y” e confirme com a tecla “ENTER“.

Agora vamos instalar o módulo do apache que habilita o PHP. Para isso digite o comando “pkg install mod_php56″.

 

# pkg install mod_php56

php2

No fim da instalação veremos uma mensagem que nos diz que precisamos inserir algumas linhas no arquivo de configuração do Apache:

php3

Sendo assim vamos acessar o arquivo de configuração do Apache, novamente, e inserir estas linhas no fim do arquivo.

# /usr/local/etc/rc.d/apache24 start

php5

Estas linhas habilitam o Apache a interpretar os códigos PHP.

Após a instalação o “mod_php56″ insere uma linha no arquivo de configuração do Apache, habilitando-o para uso. Por isso antes de fechar o arquivo vamos na parte do arquivo que trata dos módulos habilitados para checar esta linha.

php4

Perceba a linha que habilita o módulo PHP, ela foi inserida após a instalação dele.

Dessa forma as configurações estão finalizadas. Agora vamos testa-las, para isso vamos criar um arquivo PHP e tentar acessá-lo pelo navegador.

Crie o arquivo “teste.php” dentro do diretório “/usr/local/www/apache24/data/“.

# ee /usr/local/www/apache24/data/teste.php

Insira o seguinte conteúdo:

<?php

phpinfo();

?>

O “phpinfo()” é uma função do PHP que retorna as configuração básicas do servidor. Salve o arquivo e reinicie o Apache.

# /usr/local/etc/rc.d/apache24 start

Agora retorne ao navegador e digite o IP do servidor Apache seguido do arquivo criado.

http://192.168.25.112/teste.php

php6

Vemos na imagem que o arquivo PHP criado foi devidamente interpretado pelo Apache, ou seja, a configuração foi bem sucedida.

ATENÇÃO: embora tenhamos realizado a instalação do PHP e seu módulo por meio de pacotes binários, podemos fazê-lo também por meio da coleção de Ports. Para isso basta utilizar os Ports “/usr/ports/lang/php”. Para isso acesse os respectivos diretórios e utilize o comando “make install clean“.

Vamos agora para a instalação do “MySQL” .

Instalação e configuração do MySQL

Para instalar o MySQL vamos utilizar o comando “pkg install mysql56-server”

# pkg install mysql56-server

mysql1

O sistema vai listar todas as dependências e solicitar confirmação. Digite “y” e confirme com a tecla “ENTER”.

Agora vamos configurar o MySQL para iniciar junto com o boot do sistema. Para isso acesse o arquivo “/etc/rc.conf” e insira a seguinte linha “mysql_enable=”YES”

mysql2

Dessa forma todas as vezes que o sistema iniciar, o MySQL iniciará também.

Agora vamos iniciar o MySQL, para isso digite o comando “service mysql-server start”.

# service mysql-server start

O MySQL já está instalado e rodando, porém precisamos agora realizar algumas configurações básicas de segurança do banco. Para isso vamos executar o script do MySQL digitando o comando “mysql_secure_installation”.

# mysql_secure_installation

Este script realiza algumas perguntas com o intuito de realizar uma configuração básica de segurança. Entre as opções estão definir senha do usuário “root” do sistema e remover usuários anônimos.

mysql4

Informe a senha do usuário “root” e utilize a “y” para todas as opções, a não ser que tenha um bom motivo para utilizar o “n“.

Para acessar o MySQL com a senha criada digite o comando “mysql -u root -p” e digite a senha configurada.

# mysql -u root -p

Finalizamos aqui a instalação do MySQL, agora vamos testar todas as configurações feitas até aqui. Para isso criaremos um código PHP que insere dados no banco de dados que vamos criar.

Nosso servidor FAMP está configurado, agora vamos testar as configurações.

Testando todas as configurações

Para testar as configurações do nosso servidor FAMP, vamos criar uma conexão PHP como banco MySQL e inserir dados nele. Não vamos realizar selects no código PHP, para não perder o foco do artigo. Sendo assim criaremos um banco de dados, uma tabela para ele e alguns arquivos PHP para realizar estas alterações no banco.

Seguiremos agora o seguinte roteiro

1 – Criação do banco de dados livro.

2 – Criação da tabela “famosos” neste banco. É nesta tabela que vamos inserir algumas informações, e ela terá os seguintes campos: id, nome e autor.

3 – Criação de um mini-sistema para cadastrar dados no banco:

a) arquivo chamado config.php que realiza a conexão com o banco;

b) arquivo chamado index.php que será nosso formulário para inserção dos dados;

c) arquivo chamado gravar.php que vai inserir os dados no banco.

1 – Criando banco: para criar o banco de dados, digitamos o comando “CREATE DATABASE nome_do_banco”.

mysql6

Desta forma temos o banco criado, agora vamos criar uma tabela chamada “famosos” que vai conter os livros famosos. Para isso precisamos nos conectar ao banco. Para isso digite o comando “use livro”.

use livro

2 – Para criar esta tabela digitamos o comando:

mysql>create table famosos (id int(4) auto_increment, nome varchar 20) NOT NULL, autor varchar(20)), primary key (id);

tabelas

Dessa forma criamos uma tabela que contém 3 campos (id, nome, autor), sendo o campo “id” auto incremental.

Podemos agora visualizar a tabela criada digitando o comando “show tables”.

show tables1

Podemos ver que a tabela foi criada com sucesso.

3 – Criando o mini-sistema:

a) arquivo que conecta no banco. Vamos criar o arquivo “config.php” e inserir o seguinte conteúdo:

<?php
// Criando a conexão
$servername = “localhost”;
$username = “root”;
$password = “”;
$dbname = “livro”;
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Checando a conexão
if (!$conn) {
die(“Connection failed: ” . mysqli_connect_error());
}?>

config

Salve o arquivo.

b) – Criação do arquivo PHP contendo o formulário a ser preenchido. Preencha o arquivo com o seguinte conteúdo:

<?php
include “config.php”;
?>

form action=”gravar.php” method=”POST”>
input type=”text” name=”id” class=”form-control” placeholder=”Digite o ID” maxlength=”20″ required autofocus></li>
<br><input type=”text” name=”nome” class=”form-control” placeholder=”Digite o Nome” maxlength=”20″ required autofocus></li>
<br><input type=”text” name=”autor” class=”form-control” placeholder=”Digite o Autor” maxlength=”20″ required autofocus></li>
<p><input type=”submit” value=”gravar” ></li>
</form>

index1

c) – Criação do arquivo PHP que vai inserir os dados no banco. Insira o seguinte conteúdo:

<?php
include “config.php”;
?>
<?php
$sql = “INSERT INTO famosos (id,nome, autor) VALUES (‘$_POST[id]’,’$_POST[nome]’, ‘$_POST[autor]’)”;
if ($conn->query($sql) === TRUE) {
echo “New record created successfully”;
} else {
echo “Error: ” . $sql . “<br>” . $conn->error;
}
$conn->close();
echo ‘<h3><a href=”index.php”>Gravar mais dados</a></h3>’;
?>

gravar

Agora temos  o banco criado e o código PHP que vai inserir os dados no banco. Vamos utilizar nosso mini-sistema.

Para isso acesse o mini-sistema criado através do navegador:

sistema1

Veja que temos dois campos para inserção e um botão para submeter os dados preenchidos. Insira alguns dados e clique no botão “gravar”.

sistema3

Vamos inserir os dados nome: “A VOLTA” e autor: “ERIC”.

sistema4

Como podemos ver na mensagem os dados foram gravados com sucesso.

Podemos confirmar isso ao realizar um select na tabela. Para isso digite o comando “select * from famosos”.

select

Neste nosso exemplo não realizaremos o select no mini-sistema, afinal nosso intuito é apenas mostrar que os dados estão funcionando corretamente.

Pronto, nosso servidor FAMP está devidamente configurado e testado.

Conclusão

O servidor FAMP, semelhante ao LAMP do Linux, é muito fácil de ser implementado no FreeBSD, assim como quase tudo no FreeBSD. Nossa intenção não era mostrar o funcionamento de um sistema completo, ou a criação de códigos PHPs, e sim a implementação do servidor com os serviços disponíveis.

Espero que o conteúdo tenha sido útil, em caso de dúvidas utilize os comentários.





Sobre o Autor

Foto de perfil de Leonardo Souza
Leonardo Souza
Bacharel em Informática, pós graduado em Segurança de Redes de Computadores e analista de Segurança da Informação. Entusiasta de Segurança da Informação e usuário FreeBSD, porém sem xiismo.





  1. Foto de perfil de Gustavo

    Explicações bem claras, já instalei todos. Caso seja do seu domínio e seja possível publique um passo-a-passo para instalar o Tomcat e integra-lo ao Netbeans. Essa é umas das configurações mais importantes. Instalei o Tomcat e consigo iniciá-lo no Netbeans, mas quanto tento criar um simples jsp “Hello world” ocorre o erro “build-impl.xml:1045: O módulo não foi implantado.”. Pesquisei em vários lugares mas ainda não encontrei uma explicação definitiva para resolve-lo.


    • Foto de perfil de Gustavo

      Executei o Netbeans como root e o erro não ocorreu, então o problema é com permissões mas não sei ao certo o que fazer, e parece que nem o pessoal nos fóruns pela quantidade de “soluções” diferentes que vi. Minha intuição diz para alterar as permissões referentes a pasta lib, é o que tentarei no momento. Já alterei três do Tomcat que davam problema colocando meu usuário como proprietário: tomcat-users.xml, web.xml e server.xml.


      • Foto de perfil de Gustavo

        Me tornei proprietário do diretório lib e bin do Tomcat mas continuou dando o erro, então dei o comando para me tornar proprietário do diretório inteiro do Tomcat:

        chown -R gustavo /usr/local/apache-tomcat-8.0/

        Não sei se era a solução correta/segura, mas foi o que funcionou.



You must be logged in to post a comment.