All Projects → EdsonMSouza → tutorial_lamp_virtualbox

EdsonMSouza / tutorial_lamp_virtualbox

Licence: CC-BY-SA-4.0 license
Tutorial para instalação da VirtualBox, Linux, Apache, MySQL e PHP.

Projects that are alternatives of or similar to tutorial lamp virtualbox

Devilbox
A modern Docker LAMP stack and MEAN stack for local development
Stars: ✭ 3,598 (+11506.45%)
Mutual labels:  apache, lamp
Docker Lamp
Docker with Apache, MySql, PhpMyAdmin and Php
Stars: ✭ 276 (+790.32%)
Mutual labels:  apache, lamp
Ansible Role Apache
Ansible Role - Apache 2.x.
Stars: ✭ 341 (+1000%)
Mutual labels:  apache, lamp
Config
Armbian configuration utility
Stars: ✭ 317 (+922.58%)
Mutual labels:  apache, lamp
Lamp
Install LAMP(Linux + Apache + MySQL/MariaDB + PHP ) for CentOS/Debian/Ubuntu
Stars: ✭ 2,456 (+7822.58%)
Mutual labels:  apache, lamp
geostat
GeoStat, Python script for parsing Nginx and Apache logs files and getting GEO data from incoming IP's.
Stars: ✭ 50 (+61.29%)
Mutual labels:  apache
devstack
🐳 Dockette dockerized web devstack (@f3l1x)
Stars: ✭ 42 (+35.48%)
Mutual labels:  apache
osschat
Apache Open Source Software Chat BOT
Stars: ✭ 115 (+270.97%)
Mutual labels:  apache
hive-jdbc-driver
An alternative to the "hive standalone" jar for connecting Java applications to Apache Hive via JDBC
Stars: ✭ 31 (+0%)
Mutual labels:  apache
docker-apache-letsencrypt
This docker-image contains a simple Apache webserver and supports https-encryption by great Let's Encrypt certificates!
Stars: ✭ 65 (+109.68%)
Mutual labels:  apache
docker-magento
🐳 Environment for a Magento1 application using Docker.
Stars: ✭ 16 (-48.39%)
Mutual labels:  apache
cloudworkstation
A linux desktop in the cloud - reachable via browser using Apache Guacamole. Deployed automatically via Terraform ( + Ansible ).
Stars: ✭ 66 (+112.9%)
Mutual labels:  apache
MonitoFi
MonitoFi: Health & Performance Monitor for your Apache NiFi
Stars: ✭ 40 (+29.03%)
Mutual labels:  apache
mod fastcgi
FastCGI.com mod_fastcgi apache 2 module fork from http://repo.or.cz/mod_fastcgi.git + last SNAP-0910052141 snapshot
Stars: ✭ 23 (-25.81%)
Mutual labels:  apache
IATI.cloud
The open-source IATI datastore for IATI data with RESTful web API providing XML, JSON, CSV output. It extracts and parses IATI XML files referenced in the IATI Registry and powered by Apache Solr.
Stars: ✭ 35 (+12.9%)
Mutual labels:  apache
comdev-site
Website sources for the Apache Community Development Website
Stars: ✭ 70 (+125.81%)
Mutual labels:  apache
kafka-shell
⚡A supercharged, interactive Kafka shell built on top of the existing Kafka CLI tools.
Stars: ✭ 107 (+245.16%)
Mutual labels:  apache
lucene-geo-gazetteer
Uses Apache Lucene, OpenNLP and geonames and extracts locations from text and geocodes them.
Stars: ✭ 34 (+9.68%)
Mutual labels:  apache
pulsar-express
Simple Web Interface for Apache Pulsar
Stars: ✭ 95 (+206.45%)
Mutual labels:  apache
incubator-nlpcraft
Apache NLPCraft - API to convert natural language into actions.
Stars: ✭ 56 (+80.65%)
Mutual labels:  apache

TUTORIAL LINUX + APACHE + PHP + MySQL

Este tutorial está baseado na versão do Linux Ubuntu 20.4 LTS.

Os recursos para a instalação da máquina virtual foram configurados para atender a grande maioria de usuários. Entretanto, podem ocorrer casos em que haverá a necessidade de ajustes. Para isso, procure tutoriais no YouTube ou Google para resolução de problemas.

Aqui o objetivo é mostrar apenas a instalação e configuração do ambiente e dos programas.

Os comandos Linux não serão explicados, ficando como sugestão para estudos e aprendizagem do sistema operacional Linux.

Instalação do VirtualBox (Oracle)

A instalação está baseada em sistemas Windows. Se você já utiliza o Linux, não há a necessidade de instalar a máquina virtual e você já pode pular para "Instalação do Apache, PHP e MySQL".

Faça o download do programa VirtualBox no endereço: https://www.virtualbox.org/ e siga os seguintes passos:

  • Execute a instalação seguindo as orientações apresentadas.
  • Faça o download da imagem de instalação do Linux Ubuntu 20.4 LTS e salve em um local de sua preferência. O arquivo terá aproximadamente 3GB. Link para download: https://ubuntu.com/download/desktop/thank-you?version=20.04.2.0&architecture=amd64
  • Abra o VirtualBox.
  • Crie uma máquina virtual e dê o nome de Linux Ubunut 20.4 LTS.
  • Em "Type" (Tipo), selecione Linux.
  • Em "Version" (Versão), selecione Ubuntu (64-bit) ou (32bit) - depende a versão que foi baixada.
  • Selecione a quantidade RAM. É recomendado no mínimo 1024MB (1GB).
  • Selecione a segunda opção para o tipo de "Hard Disk" (Disco Rígido) - "Virtual".
  • Ma próxima tela, selecione a primeira opção VDI.
  • Na próxima tela, selecione a primeira opção ou "Dinamicamente Alocado".
  • Informe o tamanho para o disco a ser criado. É recomendado no mínimo 10GB.
  • Clique em criar (Create) e aguarde.
  • Dê um duplo clique sobre o nome da máquina criada para inicializá-la.
  • Se não for identificada a imagem do Linux, clique no menu Dispositivos (Devices) e adicione um Disco Ótico Virtual, apontando para o local onde a imagem do Linux foi salva.
  • Aguarde a inicialização, e prossiga com a instalação do Linux, selecionando "Install Ubutuntu" (Instalar o Ubuntu).

Caso necessário, faça ajustes de acordo com a disponibilidade dos seus recursos de hardware (Memória e Vídeo).

Se ocorrer algum erro durante a instalação, procure a solução no StackOverflow ou no YouTube.

Você pode visualizar as telas de instalação (em inglês) em https://itsfoss.com/install-linux-in-virtualbox/.

Instalação do Apache, PHP e MySQL

Siga corretamente todas as etapas a seguir para a isntalação dos programas necessários, assim como suas configurações.

Para executar comandos no terminal do Linux é necessário pressionar a tecla ENTER ao final de cada instrução.

Acesse o Terminal do Linux pressionando as teclas CTRL+ALT+T. Uma outra forma é pressionar a tecla Windows e digitar cmd

Primeiro, precisaremos atualizar o índice do repositório do sistema para instalar a versão mais recente do Apache2 (Servidor Web)

sudo apt-get update

A seguir atualize os pacotes. (Pressione Y quando solicitado).

sudo apt-get upgrade

Abrindo as portas 22 (SSH), 80 (HTTP) and 443 (HTTPS) e habilitando o Firewall (ufw). Execute um comando de cada vez.

  • sudo ufw allow ssh
  • sudo ufw allow 80
  • sudo ufw allow 443
  • sudo ufw enable

Instalando o servidor Apache

sudo apt install apache2

Testando a instalação do Apache

sudo systemctl status apache2

  1. Pressione CTRL+C para sair.
  2. Em seguida, abra o navegador da web (Firefox) e acesse a página de boas-vindas do apache, digitando: http://localhost.

Instalando o PHP7.4 (Linguagem de Programação)

sudo apt install php7.4 php7.4-mysql php-common php7.4-cli php7.4-json php7.4-common php7.4-opcache libapache2-mod-php7.4

Verificando a instalação do PHP 7.4

Retorne para o Terminal do Linux e digite:

php --version

O resultado será semelhante ao apresentado a seguir.

PHP 7.3.26 (cli) (built: Jan 5 2021 15:10:35) ( ZTS MSVC15 (Visual C++ 2017) x64
) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.26, Copyright (c)
1998-2018 Zend Technologies

Reinicializando o servidor Apache para integrar o PHP

sudo systemctl restart apache2

Testando o funcionamento do servidor com o PHP

Digite no Terminal do Linux o comando a seguir para criar um arquivo que mostrará as configurações atuais do PHP no navegador.

echo '<?php phpinfo(); ?>' | sudo tee -a /var/www/html/phpinfo.php > /dev/null

Teste no navegador o funcionamento com a url: http://localhost/phpinfo.php

Se tudo estiver "OK", será mostrada uma página com as informações do PHP.

Exclua o arquivo criado com o seguinte comando:

sudo rm /var/www/html/phpinfo.php

Instalando o servidor de banco de dados MariaDB (MySQL)

sudo apt install mariadb-server mariadb-client

Verificando o status da instalação do MariaDB

sudo systemctl status mariadb

  • Se o comando não finalizar, pressione CTRL+C para sair.

Protegendo o MariaDB

sudo mysql_secure_installation

Como não existe uma senha de root definida para o banco de dados, você deve simplesmente pressionar Enter quando receber a seguinte mensagem: Enter current password for root (enter for none):

Na próxima pergunta, pressione Y para definir uma senha de root (mantenha-a segura e protegida!) e siga as orientações.

Para as próximas perguntas, você pode pressionar Enter para cada um dos itens.

Acessando o MySQL via CLI (Command Line)

Digite o seguinte comando:

sudo mysql

Você terá na tela algo semelhante a:

MariaDB [(none)]>

Criação de usuário no MariaDB

Criando um usuário admin padrão no banco de dados diferente de root.

Para isso, digite as linhas abaixo (uma linha por vez) e pressione ENTER para executá-la.

Não esqueça de colocar o ponto-e-vírgula ";" no final de cada linha.

  1. CREATE USER 'admin'@'localhost' IDENTIFIED BY 'admin';
  2. GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost';
  3. FLUSH PRIVILEGES;
  4. quit;

Acessando o MariaDB

Para acessar o MariaDB com o novo usuário criado, digite o comando a seguir e informe a senha definida anteriormente (admin) quando solicitado:

sudo mysql -u admin -p

Criando um banco de dados no MariaDB

CREATE DATABASE bd_teste;

Selecionando o banco bd_teste

USE bd_teste;

Criando uma tabela de dados

CREATE TABLE tb_teste (id int primary key not null auto_increment, nome varchar(50));

Inserindo registros na tabela (tb_teste)

  1. INSERT INTO tb_teste (nome) VALUES ("Primeiro Nome");
  2. INSERT INTO tb_teste (nome) VALUES ("Segundo Nome");

Verificando as inclusões realizadas

SELECT * FROM tb_teste;

O resultado deverá ser igual ao mostrado abaixo.

+----+---------------+
| id | nome          |
+----+---------------+
|  1 | Primeiro Nome |
|  2 | Segundo Nome  |
+----+---------------+
2 rows in set (0.000 sec)

Sair do MariaDB

quit;

Testando a conexão do PHP com o banco de dados MariaDB

Criando um diretório para colocar um arquivo de teste de conexão do PHP com o banco de dados criado anteriormente bd_teste:

sudo mkdir /var/www/html/teste

Acessando o diretório criado

cd /var/www/html/teste

Execute o comando ls -la para realizar a listagem do diretório e verificar se ele está vazio. O resultado deste comando pode ser visualizado abaixo.

drwxr-xr-x 2 root root 4096 ago  8 21:22 .
drwxr-xr-x 3 root root 4096 ago  8 21:22 ..

Para criar o script PHP (programa) e fazer a conexão com o banco de dados bd_teste, vamos utilizar a biblioteca PDO de acesso a dados. Para isso, digite o seguinte comando para abrir o editor de textos (Nano):

sudo nano index.php

Digite as instruções a seguir no arquivo aberto:

<?php
try {
    $conn = new PDO('mysql:host=localhost;dbname=bd_teste', 'admin', 'admin');
    
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $data = $conn->query('SELECT * FROM tb_teste');

    foreach($data as $key => $value) {
        print("Id: " . $value[0] . "</br>");
        print("Nome: " . $value[1] . "</br>");
        print("</br></br>");
    }
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

Para salvar o arquivo, pressione as teclas CTRL+X simultaneamente, depois digite Y e, por fim, pressione ENTER para fechar o editor de textos.

Execute novament o comando ls -la para realizar a listagem do diretório e verificar se o arquivo foi criado corretamente. O resultado deste comando pode ser visualizado abaixo, mostrando o arquivo index.php.

drwxr-xr-x 2 root root 4096 ago  8 21:27 .
drwxr-xr-x 3 root root 4096 ago  8 21:22 ..
-rw-r--r-- 1 root root  469 ago  8 21:27 index.php

Testando o funcionamento do programa

Acesse novamente o navegador e digite: http://localhost/teste

Se tudo ocorreu como o esperado, deverá ser mostrado no navegador os dados cadastrados anteriormente no banco de dados.

Agora é só estudar e desenvolver suas aplicações.

Como citar este conteúdo

Souza, Edson Melo de. (2021, August 7). Tutorial Linux-PHP-MySQL no VirtualBox.
Available in: https://github.com/EdsonMSouza/tutorial_lamp_virtualbox

Ou BibTeX para LaTeX:

@misc{Souzaem2021LAMP,
  author = {Souza, Edson Melo de},
  title = {Tutorial Linux-PHP-MySQL no VirtualBox},
  url = {https://github.com/EdsonMSouza/tutorial_lamp_virtualbox},
  year = {2021},
  month = {August}
}

License

CC BY-SA 4.0

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

CC BY-SA 4.0

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].