anúncios

domingo, 27 de outubro de 2019

Instalando e Configurando ambiente PHP no Fedora

Na postagem Integração do Oracle Client no PHP com Debian/Ubuntu , foi explicado os procedimentos no Debian/Ubuntu. Então, o objeto deste howto é explicar os procedimentos de instalação e configuração do ambiente PHP com as extensões dos SGBDs MySQL, PostgreSQL, OCI8 e módulos PHP usuais na distribuição Fedora 30. A maioria dos procedimentos são os mesmos, mas no Fedora tem algumas particularidades.

Observação: O Fedora 30 já inclui no repositório o PHP 7.3.

1. Instalação dos pacotes Apache, PHP e extensões ao SGBD MySQL, PostgreSQL e posteriormente do OCI8

# dnf install -y httpd php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json php-curl php-soap php-pgsql

2. Download do pacote Oracle Client
Pacotes oracle-instantclient19.3-basiclite-19.3.0.0.0-1.x86_64.rpm, oracle-instantclient19.3-sqlplus-19.3.0.0.0-1.x86_64.rpm , oracle-instantclient19.3-devel-19.3.0.0.0-1.x86_64.rpm

PS: Até a data de publicação deste howto a versão corrente do Oracle Cient é 19.3, então no geral basta substituir a versão que for a mais recente.

3. Instalação dos pacotes do download
# dnf install oracle-instantclient19.3-basic-19.3.0.0.0-1.x86_64.rpm
# dnf install oracle-instantclient19.3-devel-19.3.0.0.0-1.x86_64.rpm
# dnf install oracle-instantclient19.3-sqlplus-19.3.0.0.0-1.x86_64.rpm


4. Criar o arquivo oracle.conf no diretório /etc/ld.so.conf.d/ e dentro do arquivo adicionar
/usr/lib/oracle/19.3/client64/lib
$ sudo vim /etc/ld.so.conf.d/oracle.conf

5. Atualizar as bibliotecas compartilhadas do sistema $ sudo ldconfig

6. Exportar a variável ORACLE_HOME

$ export ORACLE_HOME=/usr/lib/oracle/19.3/client64/

7. Download do código fonte do oci8 e extrair os arquivos e fazer a compilação.

# pecl download OCI8
# tar zxvf oci8-2.2.0.tgz
# cd oci8-2.2.0/
# phpize
# ./configure --with-oci8=instantclient,/usr/lib/oracle/19.3/client64/lib
# make install


8. Habilitar o oci8.ini no diretório de módulos do PHP
# vim /etc/php.d/oci8.ini
extension=oci8.so
extension=pdo_oci.so
9. Habilitar o PHP no Apache
Adicione o .php no arquivo /etc/httpd/conf/httpd.conf
< IfModule mime_module >
   AddType text/html .php .phps
< /IfModule >
10. Habilitar, iniciar e verificar o status do Apache
# systemctl enable httpd
# systemctl start httpd
# systemctl status httpd


11. Testar com a função phpinfo() no info.php se a extensão Oracle foi habilitada
$ sudo vim /var/www/html/info.php
< ?php
phpinfo();


Confere os screenshots abaixo:





Se exibir como no screenshot, então a extensão Oracle no PHP foi habilitada corretamente.

12. Testar conexão com banco de dados Oracle no PHP
Agora para confirmar, teste a conexão com Oracle no script PHP testeconectaoracle.php
< ?php
try{
$conn = new PDO('oci:dbname=//127.0.0.1:1521/testedb; 'oracleuser','password');
if($conn) {
echo "database conectado";
}
}catch (PDOException $e){
// report error message
echo $e->getMessage();
}


No browser http://localhost/testeconectaoracle.php
Com isso, irá aparecer a mensagem "database conectado" , se as credencias do usuário, password e banco estiverem corretas.

Feito!

sexta-feira, 18 de outubro de 2019

Deploy de aplicação PHP no Heroku

O objeto deste howto é explicar os procedimentos para deploy de uma aplicação web desenvolvida em PHP com Framework Laravel no Heroku.

O que é Heroku?

Heroku é uma solução de Plataforma como Serviço ( Platform as a Service - PaaS), no qual o fornecedor entrega para o cliente um ambiente pronto para receber a aplicação. Diferente do IaaS Infraestrutura como Serviço ( Infrastructure as a Service - IaaS), no qual o cliente contrata máquinas (reais ou virtuais) e é responsável pela instalação de bibliotecas, montagem das estruturas do sistema de arquivos, entre outros recursos, o PaaS é uma solução de alto nível que abstrai este tipo de preocupação.

Como o ambiente é entregue pelo fornecedor, ao cliente basta se concentrar em desenvolver e instalar a aplicação. Normalmente nos serviços PaaS a instalação ou atualização é feita através de commits em repositórios remotos vinculados à aplicação, (e.g. GIT).

Requerimentos
  1. Criar a conta no Heroku, caso ainda não tenha;
  2. Instalar o Heroku CLI conforme o SO que estiver instalado;
  3. Instalar o sistema de versionamento GIT;
Após fizer os requerimentos obrigatórios, podemos seguir os procedimentos seguintes:

Acesse até o diretório onde encontra-se o seu projeto desenvolvido em PHP com Framework Laravel

Inicio do repositório local e adicionando os arquivos para commit
git init
git add .
git commit -m "first commit"


Crie um Procfile. Heroku lança um servidor Apache com PHP para servir o aplicativo a partir do DocumentRoot, que no nosso caso é a diretório /public.
echo "web: vendor/bin/heroku-php-apache2 public/" > Procfile

git add Procfile
git commit -m "Heroku Procfile"


Criar a aplicação no Heroku
heroku create nome-app

Buildpack PHP do Heroku
heroku buildpacks:set heroku/php

Acessar o bash do Heroku
heroku run bash

Gerar a KEY da aplicação
php artisan key:generate --show

Adicionar a KEY no .env
heroku config:set APP_KEY = [ colocar a chave gerada aqui ]

Adicionar credenciais do banco de dados no arquivo .env

heroku config:set DB_HOSTNAME = [ colocar o IP do servidor do banco de dados ]
heorku config:set DB_PORT = [ MySQL colocar 3306 ou PostgreSQL colocar 5432 ]
heroku config:set DB_DATABASE = [ colocar o nome do banco de dados ]
heroku config:set DB_USERNAME = [ colocar o usuário de conexão com banco de dados ]
heorku config:set DB_PASSWORD = [ colocar o password do usuário de conexão com banco de dados ]


Push do projeto no repositório remoto GIT no Heroku
git push heroku master --app nome-app

Executar os migrations e seeds no Heroku
php artisan migrate --app nome-app
php artisan db:seed --app nome-app


Abrir a aplicação no browser que definiu como padrão
heroku open --app nome-app

Feito!

quinta-feira, 17 de outubro de 2019

Configurando Proxy Reverso na aplicação web com Tomcat

O objetivo deste howto é explicar os procedimentos de configuração do Proxy Reverso de uma aplicação web com Tomcat no Debian 10 / Ubuntu Server 19.04, por exemplo, uma aplicação que foi desenvolvida em Java como webserver Tomcat e pretende deixar o webserver Apache na frente que faça o redirecionamento ao Tomcat, então nesse cenário se aplica Proxy Reverso.

Segue os procedimentos:

Instalação do Apache

# apt install apache2

Habilitar os módulos no Apache

# a2enmod proxy
# a2enmod proxy_http
# a2enmod proxy_balancer
# a2enmod proxy_ajp

Configuração Proxy no diretório /etc/apache2/mods-enabled/proxy.conf
# vim /etc/apache2/mods-enabled/proxy.conf
< IfModule mod_proxy.c >
ProxyRequests Off
< Proxy * >
AddDefaultCharset off
Order deny,allow
Allow from all
< /Proxy >
ProxyVia On
ProxyPass /aplicacao http://localhost:8080/aplicacao
ProxyPassReverse /aplicacao http://localhost:8080/aplicacao
< /IfModule >

Faça alteração das informações de ProxyPass e ProxyPassReverse conforme sua aplicação que deseja criar o proxy reverso. Após reiniciar o Apache, as alterações estão ativadas e pode acessar http://localhost/aplicacao que será redirecionado para aplicação na porta 8080 do Tomcat.

# systemctl restart apache2

Feito!

domingo, 13 de outubro de 2019

Instalando driver da NVIDIA no Debian e derivados

O objetivo deste howto é explicar os procedimentos de instalação da placa de vídeo NVIDIA no Debian e derivados.

Se aplica também para quem tem VGA híbridos Intel e NVIDIA.



Segue os procedimentos:

1. Acesse o site NVIDIA Drivers , selecione a versão do driver NVIDIA que tem no seu computador ou notebook. Pesquise pela versão NVIDIA
2. $ apt search nvidia
Verifique por nvidia-drivers-X, onde X é a versão mais próxima do resultado encontrado no item 1.
$ sudo apt install nvidia-driver-X
Onde o X é a versão correspondente mais próxima do resultado encontrado no item 1.
3. Verificar o nouveau esta na backlist
$ cd /etc/modprobe.d

olhar o arquivo gerado nvidia-graphics-drivers.conf que contém os conteúdos
blacklist nouveau
blacklist lim-nouveau
alias nouveau off
alias lbm-nouveau off
Caso não gerou o arquivo nvidia-graphics-drivers.conf, então crie-o e adicione o mesmo conteúdo no arquivo.

4. Gerar o arquivo initrd do Kernel

$ sudo update-initramfs -u

Antes de reiniciar, ao executar

$ sudo lsmod | grep -i nvidia
sem retorno

$ sudo lsmod | grep -i nouveau
com retorno

Após reiniciar, o resultado será ao contrário, com retorno da nvidia e nenhum do nouveau.

$ sudo reboot

Feito!

domingo, 6 de outubro de 2019

Configurando ambiente de desenvolvimento PHP no Docker

O objetivo deste howto é apresentar a configuração do ambiente de desenvolvimento PHP no Docker

Com o Docker e Docker compose instalados, adicione o docker-compose.yml na raiz do diretório onde desejar ter o ambiente PHP que ficará os projetos.

A imagem saitam10/apache2-php7.3 inclui o Apache2, PHP 7.3, os módulos usuais, extensões aos SGBD MySQL, PostgreSQL e OCI8 (Oracle) e gerenciador composer

A estrutura do ambiente PHP é essa
ambiente-docker
 apache2-php7.3
      mysql
       data
      php
        Dockerfile
        vhost.conf
      www
      docker-compose.yml

O volume no HOST é www que é mapeado no container PHP /var/www/html

docker-compose.yml



No diretório php, inclui os arquivos Dockerfile e vhost.conf
Dockerfile



vhost.conf



Build do ambiente
Executar docker-compose up -d no diretório raiz do ambiente PHP

Após o build com sucesso, acessar o container PHP docker exec -it apache2-php7.3 bash e instalar o framework PHP de sua preferência, nesse howto é utilizado o Framework Laravel

composer create-project --prefer-dist laravel/laravel projeto

Por fim, adicione no arquivo hosts, no Linux é /etc/hosts, no Windows é c:\windows\system32\drivers\etc\hosts
127.0.0.1 projeto.local
No browser http://projeto.local

Feito!

sexta-feira, 4 de outubro de 2019

Instalando o Docker no Windows

Na postagem anterior foi apresentado a instalação do Docker e Docker Compose no Linux, mas caso use Windows 10 e seu hardware atenda os requisitos necessários, pode instalar e usar o Docker no Windows 10 também.

Os pré-requisitos são:
  • Windows 10 64 bits. Pro/Enterprise/Education
  • Pelo menos 4GB de RAM
  • Suporte de virtualização habilitado na BIOS
Atendendo os pré-requisitos listados, então habilite o Hyper-V e faça o download Docker for Windows e proceda com Next>Next>Finish.

O instalador inclui o Docker e Docker Compose, os comandos são reconhecidos no PowerShell.

Feito!

quinta-feira, 3 de outubro de 2019

Instalando Docker e Docker Compose no Linux

O objetivo deste howto é de apresentar os procedimentos de instalação do Docker e Docker Compose no Linux (Debian, Ubuntu).

Qualquer distro Linux
Recomendado se quer obter a versão mais recente do Docker. Após a instalação do Docker por esse procedimento, vá para a etapa de instalação do Docker Compose.

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh


Caso prefira instalar o Docker pelo repositório da distro mesmo sendo a versão inferior da atual, então segue os procedimentos seguintes:

$ sudo apt update

Instalação de pacotes para permitir que o APT use HTTPS

$ sudo apt install \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
software-properties-common


Adiciona a chave GPG
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88
Debian
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian \
$(lsb_release -cs) \
stable"

Ubuntu
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"


Atualize o repositório
$ sudo apt update

Instalação do Docker via APT
$ sudo apt install docker-ce

Testes
Verificar se o serviço Docker esta ativo via SystemD
$ sudo systemctl status docker
Se retornar algo semelhante como abaixo, então está OK.
docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: e
   Active: active (running) 
Container Hello World para testar
$ sudo docker run hello-world

Adicionar o usuário logado no grupo docker
Para que possa ser executados comandos Docker com usuário regular, é necessário adicionar no grupo docker.
sudo usermod -aG docker $(whoami)

Instalação do Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

Feito!

terça-feira, 1 de outubro de 2019

Instalando e Configurando o Wordpress no ambiente Docker

O objetivo deste howto é apresentar a instalação e configuração do Wordpress no ambiente Docker. A premissa é ter o Docker e Docker compose instalados.

Adicione o arquivo docker-compose.yml no diretório wordpress com o seguinte conteúdo



Executar no terminal: docker-compose up -d

No Browser acessar http://localhost:8080, escolher o idioma desejado e seguir como ilustra nos screenshots abaixo.




Feito!