anúncios

Mostrando postagens com marcador CentOS. Mostrar todas as postagens
Mostrando postagens com marcador CentOS. Mostrar todas as postagens

sexta-feira, 11 de dezembro de 2020

Transformando o CentOS em Oracle Linux

Em 8 de dezembro de 2020, foi anunciado o cronograma para o patrocínio do CentOS Linux e do CentOS Stream pela Red Hat:

  • Não haverá CentOS Linux 9.
  • As atualizações para a distribuição CentOS Linux 8 continuam até 31 de dezembro de 2021.
  • As atualizações para a distribuição CentOS Linux 7 continuam como antes até 30 de junho de 2024.
  • As atualizações para a distribuição CentOS Linux 6 terminaram em 30 de novembro de 2020.
  • O CentOS Stream 9 será lançado no segundo trimestre de 2021 como parte do processo de desenvolvimento do RHEL 9.
  • As atualizações para a distribuição do CentOS Stream 8 continuam durante toda a fase de suporte RHEL.

Uma opção seria transformar o CentOS que tem no servidor em Oracle Linux, para isso, execute como root os procedimentos abaixo:

# curl -O https://linux.oracle.com/switch/centos2ol.sh

# sh centos2ol.sh

# yum distro-sync

Pronto, o CentOS, agora é Oracle Linux.

Referências:

https://www.redhat.com/en/blog/faq-centos-stream-updates

https://www.zdnet.com/google-amp/article/red-hat-resets-centos-linux-and-users-are-angry/

Feito!

sexta-feira, 16 de outubro de 2020

Resolvendo o CentOS (minimal) sem rede após instalado

Após instalar o CentOS (minimal), fica sem rede e internet por default.

O objetivo deste post é explicar os procedimentos para tornar o CentOS (minimal) acessível na rede e com internet no boot do sistema.

Use o TAB após digitar ifcfg- para autocompletar a interface de rede, pois isso varia, no meu caso foi enp3s0.

# vim /etc/sysconfig/network-scripts/ifcfg-enp3s0

Altere o "ONBOOT=no" para "ONBOOT=yes".

Salve e feche o editor vim com ESC + :x.

Reinicie o servidor ee agora a rede irá funcionar.

# reboot

Feito!

sábado, 12 de setembro de 2020

Habilitando o Instant Client Oracle no PHP com CentOS

Ambiente PHP com MariaDB e OCI8 habilitado no CentOS

# yum update
# yum install epel-release -y
# yum install php php-cli php-pdo php-curl php-gd php-xml php-mbstring systemtap-sdt-devel php-pear php-devel mariadb-server make curl

Configuração de segurança do MySQL/MariaDB

# mysql_secure_installation

Logar no usuário administrador do MariaDB

# mysql -u root

Criar o banco de dados, usuário e permissão do usuário no MariaDB

MariaDB [(none)]> CREATE DATABASE ;
MariaDB [(none)]> CREATE USER 'usuario'@'127.0.0.1' IDENTIFIED BY 'secret';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nomedb.* TO user@127.0.0.1;
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)

Download do Instant Client Oracle.

Se a versão do Oracle for 10g ou 11g, faça o download da versão 11.2.x do Instant Client Oracle. Nesse post, foi instalado a versão 11.2.0.4.0-1.

Como essa versão não é atual, então precisará criar uma conta no site do Oracle para poder fazer o download pelo link mencionado.

Após de ter feito o download Instant Client Oracle (basic, devel, sqlplus), segue o procedimento para instalação.

# rpm -Uvh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
# rpm -Uvh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm
# rpm -Uvh oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm

# dnf install libnsl

Definição de variáveis de ambiente e adicionar no PATH

export LD_LIBRARY_PATH="/usr/lib/oracle/11.2/client64/lib/"
export ORACLE="/usr/lib/oracle/11.2/client64/"
export PHP_DTRACE=yes
export PATH=$PATH:$LD_LIBRARY:$ORACLE:$PHP_DTRACE

Download OCI8

Acesse https://pecl.php.net/package/oci8 e faça o download do OCI8 e segue os procedimentos.

$ tar xzvf oci8-2.2.0.tgz
$ cd oci8-2.2.0/
$ phpize
$ ./configure --with-oci8=instantclient,/usr/lib/oracle/11.2/client64/lib/
$ make
# make install

Installing shared extensions: /usr/lib64/php/modules/

Criar o arquivo oci8.ini no /etc/php.d

# vim /etc/php.d/oci8.ini

Adicionar a linha abaixo

extension=oci8.so
# systemctl reload httpd

Verificar se o OCI8 foi habilitado no PHP

# php -i | grep oci8
/etc/php.d/oci8.ini
oci8
oci8.connection_class => no value => no value
oci8.default_prefetch => 100 => 100
oci8.events => Off => Off
oci8.max_persistent => -1 => -1
oci8.old_oci_close_semantics => Off => Off
oci8.persistent_timeout => -1 => -1
oci8.ping_interval => 60 => 60
oci8.privileged_connect => Off => Off
oci8.statement_cache_size => 20 => 20

Inicialização dos serviços Apache (httpd), MariaDB (fork do MySQL)

# systemctl stop httpd
# systemctl start httpd
# systemctl enable httpd
# systemctl start mariadb
# systemctl enable mariadb

Liberar a porta 80 no firewall para o acesso no INPUT e FORWARD

# firewall-cmd --add-port=80/tcp --permanent

Teste básico

Testar com a função phpinfo() no info.php se a extensão OCI8 foi habilitada corretamente.

# vim /var/www/html/info.php
    <?php 
       phpinfo();

Confere o screenshot abaixo

Caso não exibir o OCI8 habilitado no phpinfo() e tenha feito a configuração conforme os procedimentos descritos de forma correta, então reinicie no comando
# reboot

Feito!

quarta-feira, 9 de setembro de 2020

Instalando e Configurando o ZoneMinder no CentOS

O que é ZoneMinder?

É um sistema com licença GPL, código aberto, de CFTV/IP que possui as principais funções de visualização, gravação, detecção de movimento, possui suporte a câmeras USB, IP e DVR.

O objetivo deste post é explicar os procedimentos de instalação e configuração do ZoneMinder no CentOS 8

Instalação dos pacotes necessários

# yum -y install httpd mariadb mariadb-server mod_ssl php-mbstring php php-mysql wget
# yum -y install epel-release

# dnf install --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm
# dnf install zoneminder

Desabilitar o SELINUX

# setenforce 0
# sed -i --follow-symlinks 's/^SELINUX=.*/SELINUX=disabled/g' /etc/sysconfig/selinux


Habilitar e inicializar o serviço do MySQL/MariaDB


# systemctl enable mariadb
# systemctl start mariadb


Configuração de segurança do MySQL/MariaDB

# mysql_secure_installation
# mysql -u root

MariaDB [(none)]> CREATE DATABASE zm;
MariaDB [(none)]> CREATE USER 'zmuser'@'127.0.0.1' IDENTIFIED BY 'secret';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON zm.* 'zmuser'@'127.0.0.1';
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)


Importação do banco de dados criado

# mysql -uroot -p < /usr/share/zoneminder/db/zm_create.sql

Adicionar as credenciais do banco de dados no arquivo de configuração

# vim /etc/zm/zm.conf
ZM_DB_HOST=127.0.0.1
ZM_DB_NAME=zm
ZM_DB_USER=zmuser
ZM_DB_PASS=secret

Inicializar o serviço

# systemmctl enable httpd
# systemctl enable zoneminder
# systemctl start zoneminder


Criar o link símbolico

# ln -s /etc/zm/www/zoneminder.httpd.conf /etc/httpd/conf.d/zoneminder.conf

Reiniciar o Apache

# systemctl restart httpd

O CentOS tem firewall com regras restritivas por padrão, então precisa liberar as portas necessárias, se caso for utilizar certificado SSL, deve ser liberado a porta 443.

# firewall-cmd --zone=public --add-port=80/tcp --permanent
# firewall-cmd --zone=public --add-port=443/tcp --permanent
# firewall-cmd --reload


No browser acesse http://IPSERVIDOR/zm

Feito!

quarta-feira, 12 de agosto de 2020

Instalando e Configurando a stack LEMP no CentOS

O que é LEMP?

O termo LEMP é a junção do sistema operacional Linux, servidor web Nginx, SGBD MySQL e a linguagem PHP, formando o ambiente PHP completo.

Atualize o repositório

# yum update
# yum install epel-release

Instalação dos pacotes LEMP


# yum install nginx mariadb-server mariadb php php-mysql php-pdo php-cli php-curl php-fpm php-mbstring php-xml

Ajuste de configuração do MySQL


# mysql_secure_installation

Pressione Y e ENTER para aceitar as configuração padrão para todas as perguntas. Isso irá remover alguns usuários anônimos e o banco de dados teste, desativará os logins remotos ao root, e carregará essas novas regras do MySQL/MariaDB.

Inicializar os serviços e habilitar no boot do Nginx e MySQL


Nginx

# systemctl start nginx
# systemctl enable nginx

MySQL/MariaDB

# systemctl start mariadb
# systemctl enable mariadb

O CentOS vem com firewall habilitado e precisa liberar a porta 80 para acessar o servidor

# firewall-cmd --permanent --add-port=80/tcp
# firewall-cmd --reload

Edite o arquivo /etc/php-fpm.d/www.conf, substituir em user e group de apache por nginx, conforme abaixo:

; RPM: apache user chosen to provide access to the same directories as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx

Por padrão, php-fpm irá escutar em um host e porta específicos sobre TCP. Queremos alterar essa configuração para que ela ouça um arquivo de socket local, pois isso melhora o desempenho geral do servidor.

Altere a linha que contém a diretiva de escuta no arquivo /etc/php-fpm.d/www.conf para o seguinte:

listen = /var/run/php-fpm/php-fpm.sock;

Por fim, no mesmo arquivo, altere a configuração do dono e grupo no socket definido na diretiva listen. Pesquise as diretivas listen.owner, listen.group e listen.mode. Por padrão essas linhas estão comentadas. Descomente, removendo o ; dessas linhas e altere para nginx, conforme abaixo:

listen.owner = nginx listen.group = nginx listen.mode = 0660

Habilitar o PHP-FPM


# systemctl start php-fpm

Configuração do Nginx para o processo PHP


# vim /etc/nginx/conf.d/default.conf

server {
    listen       80;
    server_name  server_domain_or_IP;

    root   /var/www/html
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;

    location = /50x.html {
        root /var/www/html;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Reinicie o serviço Nginx


# systemctl restart nginx

Criar o arquivo info.php para testar a execução do PHP

# vim /var/www/html/info.php

 <?php 
  phpinfo();

ESC+x (salva e sai do editor Vim)

No browser acesse http://IPSERVIDOR/info.php

Feito!

segunda-feira, 29 de abril de 2019

Instalando o VSCode no Linux

O que é VSCode?

O Visual Studio Code é um editor de código-fonte desenvolvido pela Microsoft para Windows, Linux e macOS. Ele inclui suporte para depuração, controle Git incorporado, realce de sintaxe, complementação inteligente de código, snippets e refatoração de código.

Instalação do VSCode
Primeiro faça o download conforme a distro e arquitetura 32 bits ou 64 bits no https://code.visualstudio.com/download

OBS:

Até a presente data de publicação desta postagem, a versão do VSCode é 1.33.1, então verifique o arquivo .deb ou .rpm no download na instalação que segue substituindo pela versão atual.

Debian e Ubuntu:
$ sudo dpkg -i code_1.33.1-1554971066_amd64.deb

CentOS e Fedora:
$ sudo rpm -i code-1.33.1-1554971173.el7.x86_64.rpm

Após instalar o VSCode, o atalho para abrir pelo terminal é: code.

Feito!

segunda-feira, 10 de dezembro de 2018

Instalando o Sublime Text no Linux

O que é Sublime Text?

O Sublime Text é um editor de código fonte proprietário de multiplataforma, isto é, Windows, GNU/Linux, MacOS, desenvolvido em Python. Ele suporta nativamente muitas linguagens de programação, de marcação, e funções podem ser adicionadas por usuários com plug-ins, geralmente construídos pela comunidade e mantidos sob licenças de software livre.

O Sublime Text é o editor preferido dos desenvolvedores web, concorre com os editores, como o VSCode e Atom.

Chega de papo e vamos instalar o editor Sublime Text na distro conforme segue abaixo.

Instalação do Sublime Text
Slackware
$ wget -c https://packages.slackonly.com/pub/packages/14.2-x86/development/sublime_text/sublime_text-3.1.26-i586-1_slonly.txz
# upgradepkg --install-new sublime_text-3.1.26-i586-1_slonly.txz


Debian e Ubuntu
$ wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -
$ echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list
$ sudo apt-get update
$ sudo apt install sublime-text


CentOS e Fedora
YUM
$ sudo rpm -v --import https://download.sublimetext.com/sublimehq-rpm-pub.gpg
$ sudo yum install sublime-text

DNF
$ sudo rpm -v --import https://download.sublimetext.com/sublimehq-rpm-pub.gpg
$ sudo dnf config-manager --add-repo https://download.sublimetext.com/rpm/stable/x86_64/sublime-text.repo


Arch e Manjaro
$ curl -O https://download.sublimetext.com/sublimehq-pub.gpg && sudo pacman-key --add sublimehq-pub.gpg && sudo pacman-key --lsign-key 8A8F901A && rm sublimehq-pub.gpg
$ echo -e "\n[sublime-text]\nServer = https://download.sublimetext.com/arch/stable/x86_64" | sudo tee -a /etc/pacman.conf
$ sudo pacman -Syu sublime-text


openSUSE
$ sudo rpm -v --import https://download.sublimetext.com/sublimehq-rpm-pub.gpg
$ sudo zypper addrepo -g -f https://download.sublimetext.com/rpm/stable/x86_64/sublime-text.repo
$ sudo zypper install sublime-text


Após instalar o Sublime Text, o atalho para abrir pelo terminal é: subl
Então é comum abrir pelo terminal em background, ou seja, dessa forma: subl &

Referências
https://www.sublimetext.com/docs/3/linux_repositories.html

Feito!

segunda-feira, 5 de novembro de 2018

Instalando MariaDB no CentOS

O que é MariaDB ?

MariaDB é um sistema gerenciador de banco de dados, fork do MySQL.

O presente howto foi testado no CentOS 7. Você deve escolhar a versão 10.2 ou 10.3 do MariaDB que deseja instalar.

Primeiramente adicionar o repositório no arquivo etc/yum.repos.d/MariaDB.repo
# vim /etc/yum.repos.d/MariaDB.repo
# MariaDB 10.2 CentOS repository list - created 2018-11-03 20:15 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
OU caso preferir a versão 10.3.x
# MariaDB 10.3 CentOS repository list - created 2018-11-03 20:19 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
ESC + :x (salva e sai do editor Vim)

Instalação do MariaDB via repositório
# yum install MariaDB-server MariaDB-client

Feito!

sábado, 29 de setembro de 2018

Configurando Vhost do Apache no CentOS

O que é Vhost?

Vhost é a capacidade de ter diversos sites ou sistemas no mesmo servidor de forma isolada. Assim é possível ter vários domínios ou subdomínios no mesmo servidor.
O presente howto tem como objetivo explicar os procedimentos de configurar Vhost do Apache no RHEL/CentOS, mas também funciona em distros derivadas do RHEL/CentOS, como o Fedora por exemplo.

Configuração do Vhost

Considerando que já tenha o ambiente com Apache, PHP e os módulos PHP necessários já instalado, caso ainda não tenha, então segue o howto de configuração do ambiente PHP 7 no Linux (CentOS/Fedora) .

Caso já tenha o ambiente PHP 7 no CentOS/Fedora, então segue os procedimentos abaixo:
Primeiro é necessário adicionar a linha seguinte no final do arquivo /etc/httpd/conf/httpd.conf
# vim /etc/httpd/conf/httpd.conf
IncludeOptional sites-enabled/*.conf

No CentOS/Fedora é necessário criar os diretórios sites-enabled e sites-available, pois esses diretórios são fundamentais dos arquivos Vhosts.

# mkdir /etc/httpd/sites-available
# mkdir /etc/httpd/sites-enabled

O nome app.conf coloca o nome que quiser, geralmente é comum colocar o nome do domínio/subdomínio do Vhost correspondente.

# vim /etc/httpd/sites-available/app.conf

Altere o arquivo para ficar como este, apenas altere o diretório de localização do seu site ou sistema.


< VirtualHost *:80>
ServerName app.local
DocumentRoot "/var/www/html/app/public"
ErrorLog ${APACHE_LOG_DIR}/app.error.log
CustomLog ${APACHE_LOG_DIR}/app.access.log combined
  < Directory "/var/www/html/app/public">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
  < /Directory>
< /VirtualHost>

Nota: A configuração do Vhost acima é de uma aplicação web, que funciona na rede interna, para rede externa, só alterar o ServerName para o nome de domínio válido no registro.br.

Habilitar o Vhost app.conf

# ln -s /etc/httpd/sites-available/app.conf /etc/httpd/sites-enabled/app.conf

Reiniciar o Apache2


# systemctl restart httpd.service

Liberação do serviço HTTP no Firewalld

# firewall-cmd --zone=public --permanent --add-service=http
# firewall-cmd --reload


Adicionar o nome definido no ServerName do Vhost no arquivo hosts

Como neste caso o Vhost é na rede interna, então para simular o domínio é necessário adicionar no arquivo /etc/hosts o IP do servidor seguido do nome ServerName definido no arquivo Vhost.

# vim /etc/hosts
IPSERVIDOR    app.local

Para que uma máquina com Windows possa acessar a aplicação com o Vhost, o arquivo hosts é C:\Windows\System32\drivers\etc\hosts
Abrir com Bloco de Notas como Administrador o arquivo hosts no caminho mencionado.

Abre o browser e acesse http://app.local

Para criar outro Vhost, copie o arquivo do Vhost e troque o ServerName, DocumentRoot e Directory para o Vhost corresponde, habilita o novo Vhost, reiniciar o Apache e adicione no arquivo hosts.

Feito!

sábado, 16 de setembro de 2017

Configurando ambiente de desenvolvimento PHP com framework CakePHP

O que é CakePHP ?

CakePHP é um framework PHP que tem os principais objetivos, oferecer uma estrutura que possibilite aos programadores PHP de todos os níveis desenvolverem aplicações robustas rapidamente, sem perder flexibilidade. O CakePHP utiliza conceitos de engenharia de software e padrões de projeto, tais como: ActiveRecord, Association Data Mapping, Front Controller e MVC (Model-View-Controller). Lançado em Abril de 2005, com licença MIT, até a data de publicação deste post, a versão estável é 3.5.

Requisitos para executar o CakePHP
Servidor HTTP Server, por exemplo: Apache, Nginx, com módulo rewrite habilitado
PHP >= 5.6.4
OpenSSL PHP Extension
PDO PHP Extension
Mbstring PHP Extension
mbstring PHP Extension
Tokenizer PHP Extension
intl PHP Extension
simplexml PHP Extension
Caso não tenha o Apache, SGBD MySQL e PHP instalado, segue o howto Configurando ambiente PHP 7 no Debian e CentOS , se caso já tiver, vá para a próxima etapa.

Instalando os requerimentos
Mbstring PHP Extension
Debian:
PHP 5.6 # apt-get install php5-mbstring
PHP 7 # apt-get install php7.0-mbstring
CentOS:
PHP 5.6 # yum install php56w-mbstring
PHP 7 #yum install php7-mbstring
Debian: #apt-get install php-tokenizer
XML PHP Extension
Debian: #apt-get install php-xml

Instalando o Composer
Debian:
# apt-get install curl
CentOS:
# yum install curl
Download do Composer
# curl -sS https://getcomposer.org/installer | php
Setar permissão de execução
$ chmod +x composer.phar
Mover para o diretório local
# mv composer.phar /usr/local/bin/composer
Atualizar o Composer
# composer self-update

Instalação do CakePHP no Document Root do servidor HTTP
Nesse howto, é abordado o servidor HTTP Apache, no caso em Linux, o document root é /var/www/html É necessário executar para permissão no seu usuário
# chown -R usuario:usuario /var/www/html/projeto
Execute o comando no diretório correspondente ao document root
$composer create-project --prefer-dist cakephp/app projeto

Criar um VirtualHost para o projeto
# vim /etc/apache/sites-available/projeto.conf

ServerAdmin webmaster@localhost
DocumentRoot "/var/www/html/projeto/public"
ServerName http://projeto
ErrorLog "logs/projeto-error.log"
CustomLog "logs/projeto-access.log" common

DirectoryIndex index.php index.html index.htm
AllowOverride All
Order allow,deny
Allow from all


ESC +:wq (salva e sai do editor Vim)

Ativar o VirtualHost
# ae2nsite projeto.conf
Habilitar o módulo rewrite
# a2enmod rewrite
Reload das configurações feitas no Apache
# service apache2 reload
Após criar o VirtualHost do projeto, acessa pelo browser http://IP/projeto
Feito!

domingo, 21 de maio de 2017

Configurando ambiente de desenvolvimento PHP com framework Laravel

O que é Laravel?

Laravel é um framework PHP criado por Taylor Otwell. Laravel foi lançado em 09 de Junho de 2011.

O Laravel permite que se mantenha o foco em um projeto, minimizando a quantidade de código necessário para uma dada tarefa.

Laravel foi desenvolvido sobre o paradigma da programação Orientada a Objetos sob o padrão de arquitetura de software MVC.

Depois de conhecer o Laravel e para que serve, podemos seguir os procedimentos de configuração no ambiente de desenvolvimento PHP com Laravel na distribuição Linux Debian e/ou CentOS/RHEL/Fedora.

Instalação dos pré-requisitos

Antes é necessário instalar o servidor Apache ou Nginx, PHP e SGBD MySQL ou PostgreSQL. No presente howto será instalado o Apache, PHP e SGBD MySQL/MariaDB.

Requerimentos do Laravel
  • PHP >= 5.6.4
  • OpenSSL PHP Extension
  • PDO PHP Extension
  • Mbstring PHP Extension
  • Tokenizer PHP Extension
Caso não tenha o Apache, SGBD MySQL e PHP instalado, segue o howto Configurando ambiente PHP 7 no Debian e CentOS , se caso já tiver, vá para a próxima etapa.

Instalando os requerimentos
Mbstring PHP Extension
Debian:
PHP 5.6 # apt-get install php5-mbstring
PHP 7 # apt-get install php7.0-mbstring

CentOS:
PHP 5.6 # yum install php56w-mbstring
PHP 7 #yum install php7-mbstring

Tokenizer PHP Extension
Debian: #apt-get install php-tokenizer
XML PHP Extension
Debian: #apt-get install php-xml

Instalando o Composer
Debian:
# apt-get install curl

CentOS:
# yum install curl

Download do Composer
$ curl -sS https://getcomposer.org/installer | php
Setar permissão de execução
$ chmod +x composer.phar Mover para o diretório local
# mv composer.phar /usr/local/bin/composer
Atualizar o Composer
# composer self-update

Modos de instalação do Laravel
Escolha um dos modos de sua preferência

1. Global
$ composer global require "laravel/installer"
Depois de instalado, execute o comando laravel new projeto

2. Create-projet
No diretório raiz do servidor web (Apache ou Nginx)
$ composer create-project --prefer-dist laravel/laravel projeto

Servidor PHP embutido
$ php artisan serve
Irá exibir server at http://localhost:8000
Abre no browser e irá aparecer a página de boas vindas default do Laravel.
Isso se o projeto não tiver no diretório raiz do servidor web (Apache, Nginx)
Caso queira executar o projeto no servidor web, colocar o projeto no diretório raiz do servidor web e startar o serviço do Apache ou Ngninx, por fim acessar no browser http://localhost/projeto

Referências
https://laravel.com/docs/5.4
Feito!

sábado, 13 de maio de 2017

Configurando ambiente de desenvolvimento PHP com framework CodeIgniter

O que é CodeIgniter?

CodeIgniter é um framework PHP. A primeira versão pública do CodeIgniter foi lançada em 28 de fevereiro de 2006.

O CodeIgniter permite que se mantenha o foco em um projeto, minimizando a quantidade de código necessário para uma dada tarefa.

CodeIgniter foi desenvolvido sobre o paradigma da programação Orientada a Objetos sob o padrão de arquitetura de software MVC, mas também já dá suporte à metodologia HMVC, um nível hierárquico acima, absorvendo cada tríade MVC, tornando-a modular e, até certo ponto, independente das demais. Por ser mais recente e não nativo do CodeIgniter, o HMVC exige o download de alguns arquivos e a criação do diretório Modules para que funcione corretamente.

Depois de conhecer o CodeIgniter e para que serve, podemos seguir os procedimentos de configuração no ambiente de desenvolvimento PHP com CodeIgniter na distribuição Linux Debian e/ou CentOS/RHEL/Fedora.

Observação: A versão atual estável do CodeIgniter é 3.1.4 até a data de publicação deste post.

Instalação dos pré-requisitos

Antes é necessário instalar o servidor Apache ou Nginx, PHP e SGBD MySQL ou PostgreSQL. No presente howto será instalado o Apache, PHP e SGBD MySQL/MariaDB.

Debian: # apt-get install git-all
CentOS: #yum install git-all
Windows: Instale o Git Bash Git Bash
Se ainda não tem o ambiente PHP 7 no Windows, clique no link XAMPP e escolha o Setup Xampp com a versão do PHP 7. Faça o download e instale como qualquer software do Windows.
Se ainda não tem o ambiente PHP 7 no Debian ou CentOS, clique no link abaixo, caso já tenha ambiente PHP configurado, vá direto no próximo item do Howto.
Configurando ambiente PHP 7 no Debian e CentOS

Procedimentos de Configuração CodeIgniter
Substitua pelo seu usuário/grupo
No Linux:
# chown -R reginaldo:reginaldo /var/www/html/
$ cd /var/www/html
$ git clone "https://github.com/bcit-ci/CodeIgniter.git"
$ mv CodeIgniter/ projeto

No Windows:
Abre o Git Bash e acesse até o diretório c:/xampp/htdocs.
Considerando que fez a instalação default do XAMPP.
Execute: git clone "https://github.com/bcit-ci/CodeIgniter.git"
Move o nome default para o nome do projeto mv CodeIgniter/ projeto

NOTA: Remover o diretório oculto .git/ para não conflitar com as alterações feitas, pois esse não será versionado com o repositório do CodeIgniter, apenas no repositório do seu projeto.
$ rm -rf .git

Se for ambiente local: http://localhost/projeto
Caso seja ambiente na intranet: http://IPSERVIDOR/projeto
Se exibir a página default do CodeIgniter, como no screenshot, está correto.

Referências:
https://www.codeigniter.com/user_guide/
Feito!

segunda-feira, 9 de janeiro de 2017

Configurando servidor web Nginx integrado com PHP

Em servidores web, o mais comum ser utilizado é o Apache, porém existe outro servidor web bastante conhecido e com excelente desempenho de performance. O Nginx.

O presente howto explicará os procedimentos de instalação e configuração do servidor web Nginx integrado com PHP na distro Debian 8 e CentOS 7.

No Debian 8
# apt-get update
# apt-get install nginx php5-fpm php5 php5-mysql php5-mcrypt php5-gd php5-mysql mysql-server


No CentOS 7
# yum install epel-release
# yum update
# yum -y install nginx php php-gd php-mysql mysql-server


Startar o serviço Nginx
# service nginx start

Habilitar no boot
# systemctl enable nginx

O diretório root padrão do Nginx é /usr/share/nginx/www , mas vou alterar para deixar o mesmo diretório root do Apache, no caso /var/www/html

# mkdir -p /var/www/html

Ajustes de configuração para Nginx # vim /etc/php5/fpm/php.ini
Procure a linha cgi.fix_pathinfo=1 e troque 1 por 0
cgi.fix_pathinfo=0
# mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.orig

Se quiser ativar o SSL no Ngnix, precisará gerar o certificado auto-assinado e a chave.
Segue os procedimentos:
Criar certificados SSL auto-assinados
No Debian
# apt-get install openssl ca-certificates
No CentOS
# yum install openssl
Criar os diretórios para o certificado e a chave
# mkdir /etc/ssl/nginx/certs
# mkdir /etc/ssl/nginx/private


Criando os certificados auto-assinados
#openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/nginx/private/serverwww.key -out /etc/ssl/nginx/certs/serverwww.crt

Ajuste de permissão
chmod 600 /etc/ssl/nginx/private/serverwww.key
chmod 600 /etc/ssl/nginx/certs/serverwww.crt


Backup do arquivo default de configuração
# mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.orig
Criar o arquivo default novo de configuração
# vim /etc/nginx/sites-available/default
server {
  listen 80;
  listen 443 ssl;
  ssl_certificate /etc/ssl/nginx/certs/serverwww.crt;
  ssl_certificate_key /etc/ssl/nginx/private/serverwww.key;

  ssl_session_cache shared:SSL:10m;
  ssl_session_timeout 5m;

  ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 
EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4
EECDH EDH+aRSA RC4 !EXPORT !aNULL !eNULL !LOW !3DES
!MD5 !EXP !PSK !SRP !DSS"; ssl_prefer_server_ciphers on; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #root /usr/share/nginx/www; root /var/www/html; index index.php index.html index.htm; server_name www; location / { try_files $uri $uri/ /index.html; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { #root /usr/share/nginx/www; root /var/www/html; } ### Redirects e rewrites # Remove barras no final do endereço rewrite ^/(.*)/$ /$1 permanent; # Redirectiona antigas requisições para wp-contents rewrite ^/wp-content/.*/(.*)$ /$1/images/$2 permanent; ### Locations location ~* \.(js|css)$ { # Configurações para JavaScripts e CSS gzip_static on; # Compressão GZIP ativada expires 1w; # Browser cache de 1 semana } location ~* \.(jpg|jpeg|png|gif|ico)$ { # Configurações para imagens gzip_static on; # Compressão GZIP ativada expires 2w; # Browser cache de 2 semana } # pass the PHP scripts to FastCGI server listening on the php-fpm socket location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
Crie um arquivo info.php no diretório root configurado
< ?php
 phpinfo();
 ? >
Reinicie o serviço php5-fpm e Nginx
# /etc/init.d/php5-fpm restart
# /etc/init.d/nginx restart


Acesse no browser: http://IPSERVIDOR/info.php ou https://IPSERVIDOR/info.php
Feito!

terça-feira, 20 de dezembro de 2016

Instalando, Configurando e Provisionando o Samba4 como Controlador de Domínio Active Directory (AD)

O presente Howto mostra os procedimentos necessários para instalação e configuração do Samba 4 como controlador de domínio Active Directory (AD) realizada nas distros Debian 8 e CentOS 7.

Observação: Recomendado usar a versão 4.4.5 por ser a mais estável no momento em ambiente de produção.

1. Configuração do servidor Samba
Hostname: samba4dc
Tipo de Serviço (Role): Domain Controler
Endereço IP: 192.168.1.4
Domínio: saitam.int
DNS Cliente: 192.168.1.4
Gateway default: 192.168.1.1

1.1 Criar o mapeamento do servidor
# vim /etc/hostname
samba4dc
# vim /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.1.4 samba4dc.saitam.int samba4dc

# /etc/init.d/hostname.sh restart

2. Instalação dos pacotes pré-requisitos para o Samba4
No Debian:
# apt-get install acl attr autoconf bison gcc g++ debhelper dnsutils docbook-xml docbook-xsl flex gdb krb5-user libacl1-dev libaio-dev libattr1-dev libblkid-dev libbsd-dev libcap-dev libcups2-dev libgnutls28-dev libjson-perl libldap2-dev libncurses5-dev libpam0g-dev libparse-yapp-perl libpopt-dev libreadline-dev perl perl-modules pkg-config python-all-dev python-dev python-dnspython python-crypto xsltproc zlib1g-dev libgpgme11-dev python-gpgme python-m2crypto winbind libpam-winbind libnss-winbind
Durante o setup do Kerberos, preencha conforme solicitado
Reino por omissão do Kerberos versão 5: SEUDOMINIO.INT
No meu caso, coloquei SAITAM.INT
Servidores Kerberos para seu realm: 127.0.0.1
Servidor administrativo para seu realm Kerberos: 127.0.0.1

No CentOS:
# yum install perl gcc attr libacl-devel libblkid-devel gnutls-devel readline-devel python-devel gdb pkgconfig krb5-workstation zlib-devel setroubleshoot-server libaio-devel setroubleshoot-plugins policycoreutils-python libsemanage-python perl-ExtUtils-MakeMaker perl-Parse-Yapp perl-Test-Base popt-devel libxml2-devel libattr-devel keyutils-libs-devel cups-devel bind-utils libxslt docbook-style-xsl openldap-devel autoconf python-crypto pam-devel

3. Download e instalação do Samba4
# mkdir /opt/samba4 && cd /opt/samba4
# wget -c "https://download.samba.org/pub/samba/stable/samba-4.4.5.tar.gz"
# tar -xzvf samba-4.4.5.tar.gz
# cd samba-4.4.5

Checa as dependências
# ./configure
'configure' finished successfully (7m45.311s)

Se ocorrer OK no passo anterior, execute o make para compilação
# make
No meu caso em Debian 8.5 ocorreu o seguinte erro abaixo no final da compilação.
Build failed: -> task failed (err #139): {task: manpages/smb.conf.5 smb.conf.5.xml,parameters.all.xml -> smb.conf.5}
Depois de uma pesquisa, descobri que era o bug do pacote docbook-xsl na versão 1.78.1+dfsg-1, a solução foi remover esse pacote via APT, fazer o download deste pacote na versão corrente e instalar via dpkg.
Segue os procedimentos:
# aptitude remove docbook-xsl
# cd /opt/samba4
# wget -c "http://ftp.br.debian.org/debian/pool/main/d/docbook-xsl/docbook-xsl_1.79.1+dfsg-2_all.deb"
# dpkg -i docbook-xsl_1.79.1+dfsg-2_all.deb

Executar novamente o # make
NOTA: Esse pacote docbook-xsl está na versão TESTING do Debian até a data de publicação deste post.
Após o término de compilação
Waf: Leaving directory `/opt/samba4/samba-4.4.5/bin'
'build' finished successfully (1h2m12.706s)

A instalação propriamente
# make install
Após o término de instalação
Waf: Leaving directory `/opt/samba4/samba-4.4.5/bin'
'install' finished successfully (28m41.800s)

3.1 Adicionar os comandos do Samba no PATH do sistema
# export PATH=/usr/local/samba/bin/:/usr/local/samba/sbin/:$PATH

4. Download e instalação do Bind 9.9.9-P4
Foi necessário instalar o Bind de forma compilada para adicionar parâmetros para o Samba 4 necessários para usar o BIND9_DLZ
Dependências necessárias:
# apt-get install libglobus-gssapi-gsi-dev libgssapi-krb5-2 libkrb5-dev
# mkdir /opt/bind9 && cd /opt/bind9
# wget -c "http://ftp.isc.org/isc/bind9/9.9.9-P4/bind-9.9.9-P4.tar.gz"
# tar -xzvf bind-9.9.9-P4.tar.gz
# cd bind-9.9.9-P4
#./configure --prefix=/usr/local/bind9 --with-gssapi=/usr/include/gssapi --with-dlopen=yes
# make
# make install

4.1 Adicionar usuário e grupo para o Bind
# groupadd -g 35 named
# useradd -u 35 -g named -d /var/named -M -s /sbin/nologin named


4.2 Adicionar os comandos do Bind no PATH do sistema
#export PATH=/usr/local/bind9/bin/:/usr/local/bind9/sbin/:$PATH

5. Configuração do servidor DNS
Como o Bind foi compilado e instalado em /usr/local/bind9 os arquivos de configuração fica em /usr/local/bind9/etc que serve para as distros Debian e CentOS nesse caso.

5.1 Configuração dos arquivos essenciais do Bind
Download do servidor DNS Root
# wget -q -O /var/named/named.root https://www.internic.net/zones/named.root
# chown root:named /var/named/named.root
# chmod 640 /var/named/named.root


5.2 Configuração do arquivo named.conf
# vim /usr/local/bind9/etc/named.conf
# Global Configuration Options
options {

  auth-nxdomain yes;
  directory "/var/named";
  notify no;
  empty-zones-enable no;

  # IP addresses and network ranges allowed to query the DNS server:
  allow-query {
  127.0.0.1;   192.168.1.0/24;
  };

  # IP addresses and network ranges allowed to run recursive queries:
  # (Zones not served by this DNS server)
  allow-recursion {
  127.0.0.1;   192.168.1.0/24;
  };

  # Forward queries that can not be answered from own zones
  # to these DNS servers:
  forwarders {
  8.8.8.8;
  8.8.4.4;
  };

  # Disable zone transfers
  allow-transfer {
  none;
  };
 };

# Root Servers
# (Required for recursive DNS queries)
zone "." {
  type hint;
  file "named.root";
};

# Forward zone: localhost
zone "localhost" {
  type master;
  file "master/localhost.zone";
};

# Reverse zone: 127.0.0.
zone "0.0.127.in-addr.arpa" {
  type master;
  file "master/0.0.127.zone";
};

# Zona direta domínio rede local saitam.int
zone "saitam.in" {
  type master;
  file "master/db.saitam";
};
# Zona reversa 192.
zone "1.168.192.in-addr.arpa" {
  type master;
  file "master/db.192";
};

5.3 Configuração das zonas direta e reversa
Zona direta localhost
# vim /var/named/master/localhost.zone
$TTL 604800

@ IN SOA localhost. root.localhost. (
  2016121801 ; serial
  604800 ; refresh
  86400 ; retry
  2419200 ; expiry
  604800 ; minimum
  )
;
  NS localhost.

localhost. IN A 127.0.0.1
# chown named:named /var/named/master/localhost.zone
# chmod 640 /var/named/master/localhost.zone

Zona reversa localhost
# vim /var/named/master/0.0.127.zone
$TTL 604800

@ IN SOA localhost. root.localhost. (
  2016121801 ; Serial
  604800 ; Refresh
  86400 ; Retry
  2419200 ; Expire
  604800 ; Minimum TTL
  )
;
  IN NS localhost.

1 IN PTR localhost.
# chown named:named /var/named/master/0.0.127.zone
# chmod 640 /var/named/master/0.0.127.zone

Zona direta para domínio saitam.int
# vim /var/named/master/db.saitam
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA saitam.int. root.saitam.int. (
  2016121801 ; Serial
  604800 ; Refresh
  86400 ; Retry
  2419200 ; Expire
  604800 ) ; Negative Cache TTL
  IN A 192.168.1.4
;
@ IN NS saitam.int.

  IN MX 5 saitam.int.

www IN CNAME saitam.int.
mail IN A 192.168.1.4
router IN A 192.168.1.1
gateway CNAME router
gw CNAME router
# chown named:named /var/named/master/db.saitam
# chmod 640 /var/named/master/db.saitam

Zona reversa do domínio saitam.int
# vim /var/named/master/db.192
;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA saitam.int. root.saitam.int. (
  2016120701 ; Serial
  604800 ; Refresh
  86400 ; Retry
  2419200 ; Expire
  604800 ) ; Negative Cache TTL
;
@ IN NS saitam.int.
4 IN PTR saitam.int.
1 IN PTR router.saitam.int.
# chown named:named /var/named/master/db.192
# chmod 640 /var/named/master/db.192


5.4 Configuração do BIND_DLZ
Incluir o /usr/local/samba/private/named.conf no /usr/local/bind9/etc/named.conf na linha 1 # vim /usr/local/bind9/etc/named.conf
include "/usr/local/samba/private/named.conf";
5.5 Adicionar a atualização DNS do Kerberos em options
# vim /usr/local/bind9/etc/named.conf
Quando provisionar o samba vai criar essa chave e precisa ser adicionada aqui o path completo
tkey-gssapi-keytab "/usr/local/samba/private/dns.keytab"; 
5.6 Habilitar o DLZ_BIND
Edite o arquivo /usr/local/samba/private/named.conf e descomente a linha conforme a versão do Bind instalada, nesse caso o Bind 9.9
# vim /usr/local/samba/private/named.conf
 # For BIND 9.9.x
  database "dlopen /usr/local/samba/lib/bind9/dlz_bind9_9.so";
5.7 Adicionar o domínio no arquivo /etc/resolv.conf
# vim /etc/resolv.conf
domain saitam.int
search saitam.int
nameserver 192.168.1.4
5.8 Iniciar o serviço do Bind
Estando com os comandos do Bind no PATH do sistema, conforme feito anteriormente pode executar de qualquer lugar no terminal, caso não tenha feito ainda, reveja o procedimento no item 4.2 ou terá que executar os comandos Bind dentro do diretório /usr/local/bind9/bin e /usr/local/bind9/sbin
# named -u named
Para parar o serviço do Bind é killall named
OBS: Fica a seu critério criar um script Shell com opção start|stop no diretório de inicialização no boot.

6. Instalar e Configurar o NTP
No Debian: # apt-get install ntp
No CentOS: # yum install ntp
# vim /etc/ntp.conf
# Relogio Local
server 127.127.1.0
fudge 127.127.1.0 stratum 10

6.1 Testar o NTP
# ntpq -p
remote refid st t when poll reach delay offset jitter

 ns507230.ip-192 137.146.28.85 2 u - 64 1 192.071 2.852 1.057
 vel.itat.io 162.23.41.10 2 u 2 64 1 257.998 0.743 1.999
 alpha.rueckgr.a 131.188.3.222 2 u 4 64 1 247.913 6.323 0.004
 c.st1.ntp.br .ONBR. 1 u 1 64 1 40.179 0.290 0.863
*LOCAL(0) .LOCL. 10 l 5 64 1 0.000 0.000 0.004
6.2 Reiniciar o serviço NTP
Debian: # /etc/init.d/ntp restart
CentOS: # systemctl restart ntp
[ ok ] Restarting ntp (via systemctl): ntp.service.
7. Proversionar o Samba4
Server role: dc
NIS extensão habilidada
DNS interno back end: BIND9_DLZ
Kerberos realm e AD DNS zona: samba4dc.saitam.int
NetBIOS domínio name: samba4dc
Administrador de domínio:

7.1 Prover o Samba AD no modo interativo
Estando com os comandos do Samba no PATH do sistema, conforme feito anteriormente pode executar de qualquer lugar no terminal, caso não tenha feito ainda, reveja o procedimento no item 3.1 ou terá que executar os comandos do Samba dentro do diretório /usr/local/samba/bin e /usr/local/samba/sbin
# samba-tool domain provision --use-rfc2307 --interactive
Realm [SAITAM.INT]
Domain [SAITAM]:
Server Role (dc, member, standalone) [dc]:
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: BIND9_DLZ
Administrador password:
Retype password:
Once the above files are installed, your Samba4 server will be ready to use
Server Role: active directory domain controller
Hostname: samba4dc
NetBIOS Domain: SAITAM
DNS Domain: saitam.int
DOMAIN SID: S-1-5-21-3436644580-1722986177-1604106671

8. Configuração do Kerberos
Primeiramente renomear o arquivo original do krb5.conf para backup
# mv /etc/krb5.conf /etc/krb5.conf.orig
Copiar o krb5.conf do Samba4 para /etc
# cp /usr/local/samba/private/krb5.conf /etc
Criar um link símbolico
# ln -sf /usr/local/samba/private/krb5.conf /etc/krb5.conf
Incluir as linhas caso não exista, adapte para domínio e endereço IP de sua rede.
# vim /usr/local/samba/private/krb5.conf
[realms]
SAITAM.INT = {
kdc = 192.168.1.4
admin_server = 192.168.1.4
}
9. Serviço Samba 4
No Debian:
# systemctl restart smbd
# systemctl restart nmbd
# systemctl restart winbind

No CentOS:
Reiniciar o daemon do SystemD
# systemctl daemon-reload
# systemctl enable samba-ad-dc
# systemctl start samba-ad-dc

10. Testes de comunicação
DNS
Verificar se o arquivo de zona direta e reversa contém erros # named-checkzone saitam.int /var/named/master/db.saitam
zone saitam.int/IN: loaded serial 2016121801
OK 
# named-checkzone 1.168.192.in-addr /var/named/master/db.saitam/db.192
zone 1.168.192.in-addr/IN: loaded serial 2016121801
OK
# host -t A saitam.int
saitam.int has address 192.168.1.4

# host -t SRV _ldap._tcp.saitam.int.
_ldap._tcp.saitam.int has SRV record 0 100 389 samba4dc.saitam.int.

# host -t SRV _kerberos._udp.saitam.int.
_kerberos._udp.saitam.int has SRV record 0 100 88 samba4dc.saitam.int.
10.1 Teste do mecanismos de autenticação Kerberos
# kinit administrator@SAITAM.INT
Password for administrator@SAITAM.INT:
Warning: Your password will expire in 41 days on Qua 01 Fev 2017 16:05:34 BRST
# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@SAITAM.INT

Valid starting       Expires              Service principal
20-12-2016 16:47:15  20-12-2016 02:47:15  krbtgt/SAITAM.INT@SAITAM.INT
        renew until 20-12-2016 16:46:57
10.2 Autenticação com controlador de domínio Samba 4
# smbclient //localhost/netlogon -UAdministrator -c 'ls'
Enter Administrator's password:
Domain=[SAITAM] OS=[Windows 6.1] Server=[Samba 4.4.5]
  .                                   D        0  Sat Dec 17 18:08:21 2016
  ..                                  D        0  Sat Dec 17 18:08:48 2016

                9961324 blocks of size 1024. 5006248 blocks available
11. Administração de usuários e grupos do Samba 4 AD pelo terminal

Os comandos do Samba foram adicionados no PATH do sistema, caso não tenha adicionado ainda, reveja o procedimento no item 3.1 ou terá que executar os comandos do Samba dentro do diretório /usr/local/samba/bin e /usr/local/samba/sbin

11.1 Criar usuário no Samba 4 DC AD
# samba-tool user add usuario
New Password:
Retype Password:
User 'usuario' created successfully
11.2 Criar Grupo RH, Financeiro, TI dos setores da empresa
# samba-tool group add RH
Added group RH
# samba-tool group add Financeiro
Added group Financeiro 
# samba-tool group add TI
Added group TI 
11.3 Adicionar o usuário criado no grupo TI
# samba-tool group addmembers TI usuario
Added members to group TI 
11.4 Listar usuários
# samba-tool user list

11.5 Listar grupos
# samba-tool group list

12. Criar o arquivo smb.conf para compartilhamento de arquivos
# vim /usr/local/samba/etc/smb.conf
Arquivo smb.conf
Reinicie o serviço do Samba para efeito do smb.conf

13. Ingressar máquinas Windows no domínio Samba4 como AD
Agora é necessário ingressar as máquinas Windows no domínio, segue os procedimentos abaixo:
Maneira 1:
Clica com botão direito o atalho Meu Computador depois em Propriedades
Na aba Nome do computador, clica no botão ID de rede
Irá abrir o Assistente para identificação da rede, clique em Avançar, marque a opção Este computador faz parte de uma rede corporativa e o utiliza para conectar-me a outros computadores no trabalho, clique em Avançar, marque a primeira opção, antes de prosseguir tenha em mente o usuário,senha e nome de domínio que será pedido, clique em Avançar, e digite os dados respectivamente.
Maneira 2:
Clica com botão direito o atalho Meu Computador depois em Propriedades
Na aba Nome do computador, clica no botão Alterar, digite o nome de domínio, e OK.
No final do processo irá aparecer Bem-vindo ao domínio e avisará que deverá reiniciar o computador.

13.1 Cliente Windows 7 no domínio Samba 4 como AD


14. Instalação do RSAT no Windows 7 para gerenciar o Samba4 como se fosse o AD

Uma forma de gerenciar as novas GPOs de Windows 7 é com a ferramenta RSAT Segue abaixo o link para download e o processo de instalação/ativação caso você ainda não o conheça.

14.1. Faça o download do RSAT para Windows 7 SP1 através do link Tools RSAT for Windows 7 , respeitando o idioma e arquitetura da sua versão de Windows.
14.2.Instale esse pacote no seu PC.
14.3. Clique no botão Iniciar do Windows 7, digite Ativar Recursos e selecione “Ativar ou desativar recursos do Windows” .
14.4.Marque as opções desejadas em “Ferramentas de Administração de Servidor Remoto”, como na figura abaixo (você pode aproveitar e habilitar outros recursos como o Cliente Telnet) e clique em OK:
Após a instalação do RSAT por padrão o atalho para Ferramentas Administrativas já deve aparecer no seu Menu Iniciar do Windows.

Referências
[1] https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller
[2] https://wiki.samba.org/index.php/Time_Synchronisation
[3] https://wiki.samba.org/index.php/Setting_up_a_BIND_DNS_Server
[4] https://wiki.samba.org/index.php/BIND9_DLZ_DNS_Back_End
[5] https://wiki.samba.org/index.php/Adding_users_with_samba_tool

Feito!

terça-feira, 25 de outubro de 2016

Instalando PHP 7 no Linux

O presente post, mostra os procedimentos para instalar o PHP 7 (lançado oficialmente em 2016), juntamente com o servidor Apache e o SGBD MySQL nas distros Ubuntu, Debian 8.x e CentOS 7.x
Observação: Não pode ter o PHP 5.x instalado, antes de seguir os procedimentos abaixo deve remover por completo o PHP 5.x, pois ocorre conflito. Para isso, basta executar no Debian e Ubuntu # apt-get purge php5-*
Segue os procedimentos conforme a distribuição Linux adotada:

No Ubuntu


sudo apt-get update
sudo apt-get install ca-certificates apache2 libapache2-mod-php php-cli php php-curl php-apcu php-gd php-imap php-ldap php-mysql php-cas php-soap php-mbstring php-xml php-xmlrpc mariadb-server


No Debian
Adicionar no arquivo /etc/apt/sources.list as linhas abaixo
deb http://ftp.br.debian.org/debian/ stable main contrib non-free
deb-src http://ftp.br.debian.org/debian/ stable main contrib non-free

deb http://ftp.br.debian.org/debian/ stable-updates main contrib non-free
deb-src http://ftp.br.debian.org/debian/ stable-updates main contrib non-free

deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free


Atualiza do repositório e instala os pacotes que compõe o ambiente de desenvolvimento web completo
# apt-get update
# apt-get install ca-certificates apache2 libapache2-mod-php php-cli php php-curl php-apcu php-gd php-imap php-ldap php-mysql php-cas php-soap php-mbstring php-xml php-xmlrpc mariadb-server


No RHEL/CentOS 7.x
No CentOS 7.x, foi adotado o SGBD MariaDB (fork do MySQL)
yum install httpd mariadb mariadb-server
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install php70w


Feito!

terça-feira, 23 de agosto de 2016

Instalando e Configurando Servidor Openfire e Cliente Spark no Debian e CentOS

O que é Openfire ?
Openfire é um servidor de colaboração em tempo real (RTC) licenciado sob a Licença Open Source Apache. Ele usa o protocolo aberto apenas amplamente adotado para mensagens instantâneas, XMPP (também chamado Jabber). Openfire é incrivelmente fácil de configurar e administrar, mas oferece segurança sólida e desempenho. [1]
O que é Spark ?
Spark é um Open Source, multi-plataforma cliente IM otimizada para empresas e organizações. Ele apresenta suporte embutido para chat em grupo, integração de telefonia, e uma forte segurança. Ele também oferece uma ótima experiência do usuário final com vários recursos. Combinado com o servidor Openfire, Spark é a alternativa mais fácil e melhor para a utilização de redes de mensagens instantâneas públicas un-secure. [2]
Qual é a vantagem do Openfire em conjunto com o Spark ?
Ferramenta de comunicação instantânea corporativa interna, em substituição do Lync da Microsoft.
  • Todas as conversas são gravadas e pode ser pesquisado por usuário ou palavra chave.
  • Mostra o tempo de duração de cada conversa.
  • Fazer conferência
  • Criar grupo
Depois de conhecer o Openfire e pra que ser serve, podemos seguir os procedimentos de instalação e configuração do Openfire em seu servidor GNU/Linux Debian ou CentOS/RHEL.
Observação: Testado no GNU/Linux Debian 8 (Jessie) / CentOS 6.7 como servidor para o Openfire na versão 4.0.3 e o Windows 7 Professional e Debian como cliente para o Spark na versão 2.7.7 até a data de publicação deste post.
No Debian
Atualizando o repositório de pacotes
# apt-get update
Instalando os pacotes pré-requisitos necessários
# apt-get install apache2 libmysqlclient15-dev mysql-server php5 php5-gd php5-mysql php5-curl libmysql-java default-jre-headless

No RHEL/CentOS
Atualizando o repositório de pacotes
# yum update
Instalando os pacotes pré-requisitos necessários
# yum install httpd mysql-server mysql-devel php php-mysql php-gd
Startar o serviço do Apache
# systemctl start httpd.service

Criando o banco de dados openfire no MySQL
# mysql_install_db
# mysql -u root -p
Enter password: < digite a senha de root que foi definida na instalação do MySQL >
mysql> create database openfire character set utf8;

Criar o usuário openfireuser para o banco openfireuser
mysql> GRANT ALL PRIVILEGES ON *.* TO openfireuser@localhost IDENTIFIED BY 'senha_openfireuser' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> quit


Download do Openfire
No Debian
$ wget http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_4.0.3_all.deb -O openfire_4.0.3_all.deb
No RHEL/CentOS
$ wget http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire-4.0.3-1.i386.rpm -O openfire-4.0.3-1.i386.rpm

Instalação do Openfire
No Debian
# dpkg -i openfire_4.0.3_all.deb
No RHEL/CentOS
# rpm -i openfire-4.0.3-1.i386.rpm

Após executar o pacote openfire_4.0.3_all.deb no Debian ou openfire-4.0.3-1.i386.rpm no RHEL/CentOS, acesse no browser - http://IPSERVIDOR:9090

Segue os procedimentos dos screenshots abaixo:
Selecione o idioma que deseja instalar o Openfire e clique no botão Continuar
Coloque o seu domínio e clique no botão Continuar

Marque o radio button Conexão Padrão do Banco de Dados e clique no botão Continuar

Configuração do banco de dados MySQL com Openfire
Predefinições do Driver de Banco de Dados: MySQL.
Classe do Driver JDBC: com.mysql.jdbc.Driver
URL do banco de dados: jdbc:mysql://127.0.0.1:3306/openfire?rewriteBatchedStatements=true
Nome do Usuário: openfireuser
Senha: (criada para o usuário openfireuser)
Minimum Connections: 5
Maximum Connections: 25
Tempo de expiração da Conexão: 1.0



Marque o radio button a opção Padrão e clique no botão Continuar
Defina uma senha para o administrador do Openfire e clique no botão Continuar

Pronto. Clique no botão Logue-se no controle da administração com dados: admin e a senha que criou para o admin

Acesse como admin e a senha que definiu para o admin

Cria um usuário e uma senha default para um cliente que será usado no Spark na conexão com o Openfire


Com o Openfire instalado e configurado corretamente, conforme os procedimentos acima, precisamos instalar o Spark como cliente do Openfire.
O Spark tem disponível para os SOs Windows, Linux e MacOS, o site para download é http://www.igniterealtime.org/downloads/

Existem outros clientes do Openfire também, como pode observar no site, mas nesse Howto será utilizado o Spark, porém você pode usar outro se preferir.
Basicamente para conectar o cliente no servidor Openfire, será solicitado o IP do servidor, o usuário e a senha.
Spark Client no Windows, segue o padrão convencional de instalação de software for Windows: Next, Next e Finish
Spark Client no Linux (qualquer distro)
$ http://www.igniterealtime.org/downloadServlet?filename=spark/spark_2_7_7.tar.gz
$ tar -xzvf spark_2_7_7.tar.gz
$ cd Spark
$ ./Spark
Se preferir depois pode adicionar um atalho no menu do gerenciador de Janelas que utiliza na distro Linux
Ao abrir o Spark, digite o usuário, senha e o IP do servidor Openfire, e clicar no Login.
Caso esteja navegando na Internet por meio do Proxy, clica no botão Avançado, segue:
Marcar o checklist Usar Proxy
Selecionar o tipo de protocolo do Proxy
Endereço IP do servidor Proxy
Porta do servidor Proxy
Usuário e senha que utiliza para autenticar no servidor Proxy
Clica no botão OK.
O modo de usar o Spark Client é bem similar ao antigo MSN, podendo adicionar membros no contatos e conversar entre si.

Cliente Spark conectando com o Servidor Openfire no usuário e senha criado

Cliente Spark Linux e Windows conectados no Servidor Openfire
Veja o exemplo de conversa no screenshot abaixo:

Referências
[1] http://www.igniterealtime.org/projects/openfire/index.jsp

[2] http://www.igniterealtime.org/projects/spark/index.jsp
Feito!

quinta-feira, 21 de julho de 2016

Instalando e Configurando servidor de Backup Bacula no Debian e CentOS

O que é o Bacula ?

Bacula é uma solução de backup empresarial multi-plataforma desenvolvida sob a licença GPL (open source). É robusta, cheia de recursos e modular – se adequando a redes de qualquer tamanho e qualquer topologia. Ferramenta de backup mais usada no Brasil, e a 3ª mais usada no mundo.

É um conjunto de ferramentas que permite administrar backup, restaurar e verificar dados de computadores de uma rede de sistemas diversos.

Resumo breve sobre o Bacula
  • Cliente e Servidor
  • Modular (Diretor, Client, DataBase, Console, Administração)
  • Compatível com Windows, Linux, FreeBSD
  • Permite execução de scripts, antes/depois do início do job
  • Suporte a maioria de dispositivos de storage do mercado
  • Infinidade de recursos para customização de backups

Depois de conhecer o Bacula e pra que ser serve, podemos seguir os procedimentos de instalação e configuração do Bacula em seu servidor GNU/Linux Debian ou CentOS/RHEL

O Bacula tem suporte para os SGBDs: MySQL, PostgreSQL e SQLite

No presente howto será utilizado o SGBD MySQL

Observação: Testado no GNU/Linux Debian 8 (Jessie) / CentOS 6.7 e a versão do Bacula é 7.4.3 até a data de publicação deste post.

No Debian
Atualizando o repositório de pacotes
#apt-get update
Instalando os pacotes pré-requisitos necessários
#apt-get install gcc g++ libssl-dev libmysql++-dev libmysqlclient15-dev mysql-server
No CentOS/RHEL
Atualizando o repositório de pacotes
#yum update
Instalando os pacotes pré-requisitos necessários
#yum install gcc g++ mysql-server-devel mysql-server
#service mysqld start

Download do Bacula
Opcional: Salvar em /tmp

$ cd /tmp
$ wget -c "https://sourceforge.net/projects/bacula/files/latest/bacula-7.4.3.tar.gz"
$ tar -xzvf bacula-7.4.3.tar.gz
$ cd bacula-7.4.3
Como foi utilizado o SGBD MySQL, será incluído na compilação
$ ./configure –with-mysql
$ make
# make install


Configuração o Banco de Dados do Bacula
Acesse o diretório /etc/bacula
$ cd /etc/bacula
E execute os scripts na ordem. O primeiro cria o banco, o segundo as tabelas e o terceiro o usuário bacula no banco.
./create_mysql_database -u root -p
./make_mysql_tables -u root -p
./grant_mysql_privileges -u root -p

OBS: O argumento -p irá ser solicitado o password do root do MySQL

Copiar o serviço Bacula para o /etc/init.d
No Debian # cp -av /etc/bacula/bacula /etc/init.d
# invoke-rc.d bacula status
Startar o serviço Bacula
# /etc/init.d/bacula start
Se tiver OK na inicialização do Bacula, acesse o console
# /etc/bacula/bconsole

No CentOS
# cp -av /etc/bacula/bacula /etc/init.d
Configurar o Bacula para startar no boot
#vim /etc/rc.d/init.d/bacula
#!/bin/bash
# chkconfig: 345 99 10
# description: bacula
PS: Use :x para salvar e sair do editor Vim
# chkconfig --level 345 bacula on
# service bacula start
Arquivos de configuração do Bacula
O Bacula possui 4 arquivos de configuração, onde cada um é responsável por uma determinada tarefa.
  • bacula-dir
  • bacula-sd
  • bacula-fd
  • bconsole.conf

BACULA-DIR
O arquivo Bacula Director (bacula-dir.conf) é o arquivo principal do sistema de backup.

BACULA-SD
O arquivo Bacula Storage Daemon (bacula-sd.conf) é o arquivo de configuração onde são definidos os storages, sendo assim, iremos definir nele configurações de armazenamento do backup.

BACULA-FD
O arquivo Bacula File Daemon (bacula-fd.conf) é o arquivo de configuração responsável por pegar as informações dos computadores e encaminhar para o Storage Daemon.

BCONSOLE
É a ferramenta de acesso e administração do sistema de backup Bacula.

Depois do bacula estiver em funcionamento, pode customizar os arquivos .conf que estão no diretório /etc/bacula, de acordo com suas necessidades. Algumas informações necessitam ter alterações replicadas em mais de um lugar dentro do mesmo arquivo .conf ou em mais de um dos arquivos (por exemplo: o nome do director, quando alterado no bacula-dir.conf, precisa ser alterado também no bacula-sd.conf, bacula-fd.conf e no bconsole.conf).

Qualquer erro de sintaxe nos arquivos de configuração será apontado pelo Bacula quando do reinício dos daemons, que também é necessário para aplicar as alterações. Portanto, sempre que fizer modificações, execute:

No Debian
#/etc/init.d/bacula restart

No CentOS/RHEL
# service bacula restart

Referências
[1] http://www.bacula.com.br/
[2] http://www.bacula.com.br/manual-do-bacula/
Feito!

sábado, 30 de janeiro de 2016

Desabilitar o SELINUX em distros RHEL/CentOS e derivados

Para quem usa a distro RHEL/CentOS/Fedora deve ter notado que vem com proteção elevada extrema, isso é causado devido estar com o SELINUX habilitado por default.

Para uso em desktop e até algumas aplicações, isso pode ser um exagero.

Segue o procedimento para desabilitar o SELINUX
Para desabilitar o SeLinux acesse o arquivo /etc/selinux/config com o editor de texto de sua preferência e altere como segue:

#vim /etc/selinux/config
SELINUX=enforcing
para
SELINUX=disabled

Para efeito, reinicie o sistema # reboot

Referências sobre SELINUX

HowTos/SELinux

SeLinux Booleans

SELINUX não, não serve só para desabilitar
Feito!

terça-feira, 29 de dezembro de 2015

Instalando e configurando ambiente de desenvolvimento web no CentOS

O objetivo deste post é explicar a instalação e configuração de um ambiente de desenvolvimento web (Apache + MySQL + PHP) no CentOS.

Observação: Testado no GNU/Linux CentOS 6.7

Instalação dos pacotes Apache, MySQL, PHP
# yum install httpd mysql mysql-server php php-gd php-mysql

Após instalar os pacotes, reinicie os serviços.
Apache
#service httpd start
Starting httpd: [ OK ]


MySQL
#service mysqld start
Initializing MySQL database: Installing MySQL system tables...
OK
Filling help tables...
OK
Starting mysqld: [ OK ]


Configuração do MySQL
# /usr/bin/mysql_secure_installation
Enter current password for root (enter for none): [ENTER]
Set root password? [Y/n] [ENTER]
New password: [digite uma senha para o usuário root do MySQL]
Re-enter new password: [redigite a mesma senha criada para o usuário root do MySQL]
Password updated successfully!
Remove anonymous users? [Y/n] Y
... Success!
Disallow root login remotely? [Y/n] Y
... Success!
Remove test database and access to it? [Y/n] Y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reload privilege tables now? [Y/n] Y
... Success!
All done!

Configurando o acesso ao servidor web de outra máquina
É necessário incluir uma regra Iptables que libera a porta 80, no CentOS/RedHat vem um script Iptables.
#vim /etc/sysconfig/iptables
Adicione a linha
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

ESC + :x (salva e sai do editor Vim)

# iptables-restore /etc/sysconfig/iptables
Agora vamos criar um script PHP para testar.
#vim /var/www/html/teste.php
< ?php
phpinfo();
?>

ESC + :x (salva e sai do editor Vim)

No browser - http://IPSERVIDOR/teste.php

Estando tudo OK, vamos instalar o PHPMyAdmin, que é uma ferramenta de administração do MySQL pela interface web.

Adicionar no repositório
# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm
Instalação do pacote
# rpm -ivh rpmforge-release-0.5.3-1.el6.rf.i686.rpm
# yum install phpmyadmin
Adiciona uma sequência alfanumérica
# vim /usr/share/phpmyadmin/config.inc.php
Na linha 17 deve gerar uma sequência alfanumérica e adicionar
$cfg['blowfish_secret'] = '[COLOCAR AQUI UM SEQUÊNCIA ALFANUMÉRICA QUALQUER]';
ESC + :x (salva e sai do editor Vim)

Agora editar o arquivo phpmyadmin.conf para liberar o acesso de todos ao PHPMyAdmin # vim /etc/httpd/conf.d/phpmyadmin.conf
Comentar a linha 7 #Deny from all
ESC + :x (salva e sai do editor Vim)
Reinicie o serviço do Apache

# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]

No browser - http://IPSERVIDOR/phpmyadmin
Irá aparecer a interface web do PHPMyAdmin, digite a senha criada para o MySQL para o acesso.

Configuração dos serviços httpd, mysqld, sshd serem startados no boot do sistema CentOS

# chkconfig httpd on
# chkconfig mysqld on
# chkconfig sshd on
Feito!