DEV: subdominios Dinâmicos no apache

Depois de muito tempo, querendo e não tentando, hoje eu procurei como deixar meu ambiente de desenvolvimento mais simples, sem a necessidade de a cada projeto criar uma entrada no hosts, mais uma vhost no apache  5 minutos economizados.

Voce vai precisar de:

dnsmasq
mod_vhost_alias (a2enmod vhost_alias), se você não tem providencie.

Pelo que li e testei, criar subdominio *.local não é uma boa ideia, porque tem outro serviço que faz alguma coisa com ele e deixa lento, então vamos de *.dev

No indião:

Voce vai criar um vhost generico “local.conf” tanto faz o que tem antes do .conf
Nele faça a seguinte parada:
vi /etc/apache2/sites-enabled/local.conf

<VirtualHost local.com:80>
UseCanonicalName Off
ServerAlias *.dev
VirtualDocumentRoot /home/user/projetos/%1/
<Directory /home/user/projetos/*/>
require all granted
ou
Allow from all
AllowOverride All
Options Indexes FollowSymlinks
</Directory>

</VirtualHost>

salve  o bagulho, reinicie o apache e vamos pra próxima.

Agora o DNSMASQ
eu copiei uma parada de um outro cara, muito bom o script :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ sudo nano /etc/NetworkManager/NetworkManager.conf
- search for "dns=dnsmasq"
- replace with "#dns=dnsmasq"
$ sudo apt-get install dnsmasq
$ sudo nano /etc/dnsmasq.conf
- append line: "listen-address=127.0.0.1"
- append line: "bind-interfaces"
- append line: "address=/dev/127.0.0.1"
$ sudo netstat -plant | grep :53
- look for "NUMBER/dnsmasq"
$ sudo kill -9 NUMBER
- fill in the number you found for "NUMBER"
$ sudo service dnsmasq restart
$ sudo nano /etc/dhcp/dhclient.conf
- append line: "prepend domain-name-servers 127.0.0.1;"
$ sudo service network-manager restart

Agora você cria uma pasta em ~/projetos/(projeto) e depois acessa no browser:
(projeto).dev e ta funcionando, coisa linda.

Advertisements

Alternativa à Digital Ocean

Eu tive alguns problemas com a Digital Ocean e procurei várias alternativas, até encontrar o VULTR

No VULTR, o processo é muito semelhante ao da Digital Ocean tem inclusive um plano de $5.
Nesse caso no VULTR você tem 250mb de RAM a mais que a Digital Ocean.O armazenamento também é SSD e também possui diversos DC em 4 Continentes.

Pontos fortes do Vultr: (plano de $16)

  • Memória de 2GB
  • 2 CPus
  • 45GB SSD de armazenamento
  • 3TB de tranferencia

Conta com o Básico também, Snapshots backups da máquina, gosto muito da apresentação da fatura.

Sistemas operacionais Disponíveis: (você pode subir sua própria iso também)

  • Ubuntu: 12.04, 14.04,15.0
  • Debian: Wheezy e Jessie
  • Centos 5, 6 e 7
  • FreeBSD 10.02
  • CoreOs
  • Windows 2012 R2

Existem também estâncias dedicadas e de Armazenamento, com um preço que eu nem acreditei. vou fazer uma máquina de backup em breve.

Faça um teste no VULTR

 

Verificar se ja existe registro no INSERT

Precisei esses dias de uma query que fizesse a consulta do registro no momento do Insert.
Geralmente eu utilizaria replace com um indice unico para o campo que não pode repetir.

Você pode utilizar o índice de qualquer forma, mas levantaria exceção, então eu prefiro fazer a consulta antes e só retornar a exceção caso de erro no Insert.

O princípio é simples, concatenar uma consulta com o insert.

insert into TABELA (nome)
select * from (SELECT ‘taliba’) as TEMP
where not exists (
select nome from TABELA where nome = ‘taliba’
) limit 1

No caso acima na “tabela” tem um campo “nome”, quero verificar antes de inserir se ja existe o nome ‘taliba’, caso contrario ele insere o registro.

Simples não?

Criando um tunnel no seu servidor dedicado

Caso você tenha um servidor dedicado e queira precise utilizar o IP dele em sua maquina, como um IP Fixo sem a necessidade de contratar um, você pode fazer o Seguinte:

Crie uma conexão com o seu servidor:
$ ssh -Nf usuário@host -D 8080

No seu navegador coloque o proxy:
socks 127.0.0.1 porta 8080

Para alterar o proxy no Chromium você vai precisar inicia-lo assim:
chromium-browser –proxy-server=”socks5://127.0.0.1:8080″

Criando um servidor de desenvolvimento no virtualbox

Como trabalho com meu laptop, sempre estou em uma rede diferente, o ip muda varias vezes ao dia, e manter um servidor LAMP em uma VM fica dificil.

Decidi incluir 2 placas de rede na minha vm que roda Ubuntu Server

A primeira placa NAT
A segunda Host-only

Preste atenção para incluir a host-only em preferências no virtualbox.
File-> preferences -> network

Estando setada sua maquina voce vai ter em sua maquina um ip:
192.168.56.1

e na VM:
192.168.56.101

Mas na vm ainda não aparece a segunda placa, faça assim(NA VM):

ifconfig eth1 192.168.56.101 netmask 255.255.255.0 up

ainda na VM edite o arquiv /etc/network/interfaces

Inclua esse bloco:
# The host-only network interface
auto eth1
iface eth1 inet static
address 192.168.56.101
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255

Pronto.
Texto Original:
Christopher Maier

Desenvolvendo uma loja virtual – Parte 1

Como meu negócio é banco crei esse artigo para explicar todas as funções que podemos usar em banco de dados Mysql para uma loja virtual.

Primeiro vamos levantar o que precisamos para uma loja virtual:

  1. Sistema de cadastro e alteração de produtos ( como um CMS )
    – Gerenciamento de usuários do sistema
    – Departamentos / Sub-departamentos
    – Marcas
    – Produtos
    – Gerenciamento de usuarios da loja
    – Acompanhamento de pedidos
    – Relatórios
  2. O Front-End da loja.
    – Cadastro de usuarios
    – Listagem de produtos
    – Cesta de produtos
    – Pedido / Venda

Para uma loja simples acho que isso basta. Agora vamos à criação do banco. Pra isso vamos usar o Mysql WorkBench

Crie um layer, vamos chamalo- de “ADMIN” , vamos colocar aqui as tabelas exclusivas do gestor.

Agora Insira uma nova tabela no layer, vamos chama-la de “tb_usuario”, collation latin1, innodb.
Insira os campos: usr_id, usr_nome,usr_email e usr_status conforme a imagem abaixo.

Vamos criar também uma tabela para o armazenamento das senhas. tb_senha, latin1, innodb, com os campos
snh_id e snh_senha, clique na ferramenta de relacionamento 1:n  e clique na tabela de senha e depois na tabela de usuarios. sua modelagem deve ficar como a minha:

tabela de usuarios e senhas
tabela de usuarios e senhas

 Proximo passo? Criar o índice único da tabela de senhas e o insert padrao. Em breve na Parte 2 desse artigo.

[]`s