Como instalar Apache, MySQL e PHP (LAMP) no CentOS 6.3
30/09/2012

Neste artigo vou descrever a maneira mais simples e rapida para configurar um servidor LAMP Apache, MySQL e PHP

Instalar o Apache

yum install httpd

instalar MySQL

yum install mysql-server

Iniciar o serviço do MySQL
service mysqld start

mysql_secure_installation

yum install php php-mysql

chkconfig httpd on
chkconfig mysqld on

service http start

Transferência de arquivos por FTP

Fazendo um download

No console do Linux digite:

ftp ftp.nome_servidor.com.br ou ftp 127.0.0.1(IP)

Você deverá entrar agora com nome e senha, logo após aparecerá o prompt do servidor ftp.
Alguns comandos importantes.
Para saber em que diretório estamos:

ftp> pwd

Para listar o conteúdo: (mesma funcionalidade do ls -l)

ftp> dir

Comando para mostrar simbolos de # durante o download do arquivo:

ftp> hash

Desligar o modo interativo do ftp. Isso evita que o ftp peça a confirmação para cada arquivo a ser transferido:(Importante no caso da transferência de muitos arquivos)

ftp> prompt

Desse modo setamos a transferência para modo binário. A transferência pode ser tanto no modo binário para arquivos não texto e AscII para arquivos texto. Mas prefira sempre usar o modo binário:

ftp> binary

Sair temporariamente do modo ftp e ir para o shell: (portanto ao retornar é preciso digitar novamente os comandos hash,prompt e binary se for o caso.)

ftp> !

Digite exit para voltar ao ftp.
Dessa forma o ftp assume que o diretório corrente passa a ser o local onde indicamos:

ftp> lcd nome_diretorio

Usando get, para transferir um arquivo por vez. O get não suporta o uso de metacaracteres:

ftp> get name_file

Com mget, podemos transferir vários arquivos de uma vez e podemos usar metacaracteres. O comando abaixo transfere todos os arquivos.

ftp> mget*

Sair do ftp

ftp> bye

Para fazer upload o procedimento é o mesmo a única diferença é que usamos put e mput no lugar de get e mget respectivamente.

ftp> put name_file
ftp> mput*

Digitando help listamos uma série de comandos aceitos pelo ftp

mkdir -> cria diretório no servidor ftp
rmdir -> apaga diretório no servidor ftp
status -> estado da conexão com o servidor ftp
mdelete -> apaga arquivo no servidor ftp

get: Para baixar os arquivos
put: Para subir arquivos
lid: Especifica o diretório local sobre o que vamos trabalhar
cd: Utiliza-se para se mover através dos diretórios
delete: Elimina um arquivo do servidor remoto
oppend: permite recompor um download que tenha sido interrumpido
open: abre uma sessão no FTP
close: termina a sessão com o FTP
bye: fecha a sessão e sai do programa de forma que todas as sessões abertas se fechem
ls: mostra o conteúdo do servidor remoto
mput: sobe vários arquivos ao servidor
mget: baixa vários arquivos ao computador local
user: serve para mudar o usuário com o qual nos conectamos ao FTP
bynary: situa-nos em modo binário
ascii: situa-nos em modo de arquivos de texto

Origem: http://marcosdalte.blogspot.com.br/2008/02/transferncia-de-arquivos-por-ftp.html
http://flaviotorres.com.br/fnt/artigos/ftp.php

A configuração é bem rápida e de grande utilidade,
pois alterando a porta padrão você evita que as pessoas tentem ficar acessando seu servidor.

Localize e abra o arquivo de configuração

vi /etc/ssh/sshd_conf

Descomente a linha
#Port 22

Port 2222

Você também poderá configurar mais de uma porta de acesso,
acrescentando outra linha com a porta desejada, conforme abaixo. Isto ajuda quando precisa fazer manutenções remotas em redes de terceiros onde algumas portas são bloqueadas.

Port 2222
Port 5555

e reinicie o serviço.

/etc/init.d/sshd restart
ou
service sshd restart

Não esqueça de configurar seu firewall para liberar o acesso a nova porta configurada.

iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 2222 -j ACCEPT
iptables -A INPUT -p tcp -m state –state NEW -m tcp –dport 22 -j ACCEPT

Salvar a regra no firewall

/sbin/service iptables save

/etc/init.d/iptables restart
ou
service iptables restart

http://wiki.centos.org/HowTos/Network/SecuringSSH

Agora é so abrir o Putty e conectar!

Zebra – Impressora de Pulseiras HC 100

A Zebra HC100 foi desenvolvida especificamente para atender às necessidades de hospitais, clinicas de saude, laboratórios de analises clínicas e lugares que precisem ter uma identificação constante das pessoas, como lugares de lazer, hotéis, academias.

Com a Zebra HC100 o custo da pulseira fica mais barato e ainda é mais fácil e mais eficaz que as soluções em impressão a laser.

Zebra HC100

Zebra HC100


// Código de Barras
^FO60,2625^BCN,100,N,N,N,N^FD&variavel^FS

^FO200,2000^A0B,70,60^FD&nm_paciente^FS
alto
^FO40,2000^A0B,20,60^FDPRONTUARIO:&nr_prontuario^FS
Comprido e baixo
^FO90,2000^A0B,30,40^FDATENDIMENTO:&nr_atendimento^FS
Curto e alto

^XA
^FO60,2625^BCN,100,N,N,N,N^FD&nr_atendimento^FS
^FO30,2250^A0B,30,40^FDPRONTUARIO: &nr_prontuario^FS
^FO60,2225^A0B,30,40^FDATENDIMENTO: &nr_atendimento^FS
^FO100,2050^A0R,70,60^FD&nm_paciente^FS
^FO40,1500^A0B,30,40^FDNASC: 26/04/1990^FS
^FO40,1200^A0B,30,40^FDIDADE: 24a2m^FS
^FO200,1950^A0B,30,30^FDMEDICO: &nm_medico^FS
^FO250,2200^A0B,30,30^FDRESPONSÁVEL: &nm_responsavel^FS
^FO270,1450^A0B,20,30^FD** &ds_estab **^FS
^PRA
^PQ&nr_etiquetas
^FDvertical^FS
^XZ

Vertical

^FO40,240^A0,24,20^FDRESPONSÁVEL: &nm_responsavel^FS
^FO40,31^A0,30,30^FD&nm_paciente^FS
^FO40,60^BCN,70,N,N,N,N^FD&atend^FS
^FO400,75^A0,24,20^FDPRONT: &nr_prontuario^FS
^FO550,75^A0,24,20^FDINTER: &atend^FS
^FO400,95^A0,24,20^FDENTRADA: &dt_entrada^FS
^FO40,150^A0,24,20^FDNASC: &dt_nascimento^FS
^FO235,150^A0,24,20^FDIDADE: &ds_anos_meses^FS
^FO400,150^A0,24,20^FDSEXO: &ds_sexo^FS
^FO40,180^A0,24,20^FDEND: &ds_endereco^FS
^FO390,180^A0,24,20^FD&nr_endereco^FS
^FO440,180^A0,24,20^FD&ds_complemento^FS
^FO510,180^A0,24,20^FD&ds_bairro^FS
^FO40,210^A0,24,20^FDCIDADE: &ds_municipio^FS
^FO330,210^A0,24,20^FDUF: &sg_estado^FS
^FO400,210^A0,24,20^FDTEL: &nr_telefone^FS
^FO40,240^A0,24,20^FDRESPONSÁVEL: &nm_responsavel^FS

Para aprender mais sobre a programaçaõ ZPL II, clique nos links abaixo para ver o manual.

Guia de programação ZPL II

Manual da Impressora Zebra HC100

Conectar com usuário que possui permissão.

conectar_oracle

Digite @ e o nome do arquivo .sql para executá-lo:

SQL > @arquivo.sql

Se for em um diretório especifico você deve informar.

SQL > @c:/arquivo.sql

Atualização do post em 12/05/2020.

Para executar vários arquivos, você precisa criar um arquivo com a lista dos outros arquivos a serem executados.
Exemplo:

Criei 3 arquivos, sendo;
a.sql

b.sql

e o arquivo teste.sql


Ao chamar o arquivo teste.sql, ele irá chamar os arquivos a.sql e b.sql.

PADRONIZAÇÃO

A- Padrão
Modelo

B- Padronização
Estabelecer e utilizar os padrões

C- Finalidade / Para que serve a padronização
Garantir a qualidade, (Auditoria e Capacitação), eliminar falhas, desperdícios seja de tempo ou material

D- Benefícios (Empresa, Gerente, Executores, Fornecedores, Clientes)
-“Conceito, domínio tecnológico”, projeto de processos
-Garante delegação,
-facilidade, mais segurança para quem executa,
-receber produtos dentro dos padrões,
-satisfação, eficácia, qualidade,
(estrutura organizacional para os níveis gerenciais)

1º. – Mapear os principais processos de trabalho;
2º. – Formalizar em layout padronizado;
3º. – Analisar e ajustar quanto a potenciais melhorias.
4º. – Treinar os colaboradores envolvidos.

Origem: http://www.rildosan.com/2011/06/o-que-e-mapeamento-de-processo.html

O que é Mapeamento de Processo ?

O Mapeamento de Processo é uma atividade do Ciclo de Gerenciamento do Processo de Negócio, que é composto por Mapeamento, Modelagem, Análise, Melhoria e Monitoramento de Processos.

Ciclo BPM

Ciclo BPM

O que é Mapeamento de Processos ?
O Mapeamento de Processo é uma ferramenta gerencial e de comunicação que tem a finalidade de fazer a descoberta das informações, partes interessadas, capacidades, recursos que são necessários para entender os processos de negócio.
Esse entendimento imprescindível para promoção de melhorias dos processos existentes ou para implantar uma nova estrutura voltada à processos.

Objetivo do Mapeamento de Processos:
Identificar, entender e conhecer os processos de negócios existentes (AS-IS) e dos futuros (TO-BE) para melhorar o nível de satisfação do cliente, e melhorar a qualidade dos produtos ou serviços, reduzir custos e aumentar desempenho do negócio.

Benefícios do Mapeamento:
O mapeamento também ajuda a empresa enxergar claramente os pontos fortes, pontos fracos (pontos que precisam ser melhorados tais como: complexidade na operação, custos altos, gargalos, falhas de integração, atividades redundantes, tarefas de baixo valor agregado, retrabalhos, excesso de documentação, aprovações e etc), além de ser uma excelente forma de aprimorar o entendimento sobre os processos e aumentar a performance do negócio.

Técnicas comuns que são utilizadas no Mapeamento de Processos:
– Entrevistas
– Reuniões
– Workshop Colaborativo
– Questionários
– Observação de Campo
– Coleto de Documentos
– Brainstorming

Experiência e Conhecimento:
O Mapeamento é uma atividade empírica, ou seja, baseada no conhecimento do analista por isso a ter experiência e conhecimento do negócio é fundamental para um bom mapeamento de processos.

Resultados esperados da atividade de Mapeamento de Processo:
– Conhecimento do processos
– Documentação do Processo

Acessar pasta tmp

cd /tmp

1- Download
64 bit
wget http://www.zvps.co.uk/downloads/centos/10-1-0/installer-10-1-0-centos-64.sh.x.tar.gz
32
wget http://www.zvps.co.uk/downloads/centos/10-1-0/installer-10-1-0-centos-32.sh.x.tar.gz

2- Descompactar
64 bit
tar -xf installer-10-1-0-centos-64.sh.x.tar.gz

32 bit
tar -xf installer-10-1-0-centos-32.sh.x.tar.gz

3- permissão
64 bit
chmod +x installer-10-1-0-centos-64.sh.x

32 bit
chmod +x installer-10-1-0-centos-32.sh.x

4-Pré requisitos

yum install ld-linux.so.2 curl

5-Instalando
64 bit
./installer-10-1-0-centos-64.sh.x

32 bit
./installer-10-1-0-centos-32.sh.x

America/Sao_Paulo
server.fabianobento.com.br
y

Após a instalação acess o diretório root, e abra o arquivo passwords.txt para ver os dados de acesso.

Caso perca a senha do

Login to your SSH console or open a console windows if you have physical acces to your server, then type in:
http://docs.zpanelcp.com/?node=43
setzadmin –set new-password

Links:

Informações:http://docs.zpanelcp.com/?node=7
Desinstalar: forums.zpanelcp.com/thread-4648.html
http://www.zpanelcp.com/download/
http://www.zvps.co.uk/zpanelcp/centos-6
http://www.php.net/manual/pt_BR/timezones.america.php

http://www.google.com.br/#biw=1280&bih=852&sclient=psy-ab&q=instalar+zpanel+centos&oq=instalar+zpanel+centos&gs_l=hp.3..0i13i30l3j0i10i30.1043.6089.0.6177.24.24.0.0.0.0.312.5315.2-22j1.23.0…0.0…1c.1.16.psy-ab.BNtvjnemK5Q&pbx=1&bav=on.2,or.r_qf.&bvm=bv.47534661,d.dmg&fp=9034b8c58fa6c127

Arquivo db/conexao.php

/*
arquivo de conexão com o banco
bd/conexao.php
*/
$host = "localhost";
$database = "enquete";
$login_db = "root";
$senha_db = "";
$conexao = mysql_connect ($host, $login_db, $senha_db) or die (mysql_error());
$db = mysql_select_db($database);

arquivo enquete.php


 
= '$data' LIMIT 1"; $limite_enquete = mysql_query("$sql_enquete"); $row_enquete = mysql_num_rows($limite_enquete); if ($row_enquete != 1){ echo "Neste momento, não existe enquete para votação!"; }else { $dados_enquete=mysql_fetch_array($limite_enquete); $cod_enquete = $dados_enquete['CD_ENQUETE']; $DtInicio = $dados_enquete['DT_INICIO']; $arrayinicio = explode('-', $DtInicio); $DtInicio_dta = $arrayinicio[0]; $DtInicio_dtm = $arrayinicio[1]; $DtInicio_dtd = $arrayinicio[2]; $DtFinal = $dados_enquete['DT_FIM']; $arrayfinal = explode('-', $DtFinal); $DtFinal_dta = $arrayfinal[0]; $DtFinal_dtm = $arrayfinal[1]; $DtFinal_dtd = $arrayfinal[2]; $nome_enquete = $dados_enquete['NM_ENQUETE']; echo '
Inicio da enquete:' . $DtInicio_dtd."/".$DtInicio_dtm."/".$DtInicio_dta; echo '
Fim da enquete:' . $DtFinal_dtd."/".$DtFinal_dtm."/".$DtFinal_dta; $pergunta_enquete = $dados_enquete['DS_PERGUNTA']; echo '
' . ucfirst($nome_enquete); echo '
'; echo '
' . ucfirst($pergunta_enquete); echo '
'; $limite_opcoes = mysql_query("SELECT * FROM `enquete_opcoes` WHERE `CD_ENQUETE` = ".$cod_enquete.""); while ($dados_opcao =mysql_fetch_array($limite_opcoes)){ $NR_SEQUENCIA = $dados_opcao['NR_OPCAO']; $DS_OPCAO = $dados_opcao['DS_OPCAO']; echo " $DS_OPCAO
"; } } ?> Resultado parcial

Ficará como a imagem abaixo.

arquivo_enquete

arquivo enquete-salvar-voto.php


require('db/conexao.php');


				$resultado = $_POST['enquete'];

				if($resultado==""){
echo "nenhuma opção foi selecionada.";
				exit;
				}else {

				$data_envio		= date('Y-m-d');
				$hora_envio		= strftime("%H:%M:%S");
				$ip_envio		= getenv('REMOTE_ADDR');

				$cod_enquete = $_POST['cod_enquete'];

				 mysql_query("INSERT INTO  `enquete_logs` (`NR_SEQUENCIA`, `CD_ENQUETE`, `NR_OPCAO`, `DT_ENVIO`,`NR_IP`) VALUES ('NULL',  '$cod_enquete', '$resultado', CURRENT_TIMESTAMP ,  '$ip_envio');");


				echo "obrigado pelo voto!";

				}

Editado em 01/05/2013 19:20h
Desenvolvendo um sistema de enquete (Novo) PHP/MySQL Parte 1 (Planejamento)

A pedido de alguns de visitantes estou reformulando o tutorial antigo de enquete.
O primeiro passo é definirmos a estrutura que iremos trabalhar. Esta estapa é um levantamento das informações que vamos precisar.
Este será um sistema para enquetes com ilimitadas opções, sendo que no tutorial anterior eu havia criado o banco de dados com varias colunas, porém não é o ideal, pois não devemos ter colunas na tabela que não serão utilizadas.

Na segunda parte, estarei fazendo um código mais simplificado pois o foco deste tutorial é trabalhar mais o conceito da enquete.

Abaixo vou colocar o código das tabelas do banco e irei explicar o que será armazenado em cada uma.

Para entender o porque usei algumas siglas nas colunas, sugiro a leitura do Artigo:
Padrões para Nomenclatura em um banco de dados
http://blog.fabianobento.com.br/2011/09/padroes-para-nomenclatura-em-um-banco-de-dados/

Diagrama
diagram_enquete
Começando pela tabela das perguntas.

Precisamos, de um código para a enquete, a data do cadastro para sabermos quando foi cadastrada. Eu coloquei a coluna DT_INICIO, DT_FIM, para configuramos no código fonte quando a enquete será iniciada e encerrada, desta forma não seria necessário acessar o painel de controle para esta tarefa.

CREATE TABLE IF NOT EXISTS `enquete_perguntas` (
  `CD_ENQUETE` int(11) NOT NULL AUTO_INCREMENT COMMENT 'codigo da enquete',
  `DT_CADASTRO` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'data do cadastro',
  `NM_ENQUETE` varchar(150) NOT NULL COMMENT 'nome da enquete',
  `DS_PERGUNTA` varchar(150) NOT NULL COMMENT 'pergunta da enquete',
  `DT_INICIO` date NOT NULL COMMENT 'data inicio que será exibida',
  `DT_FIM` date NOT NULL COMMENT 'data final da exibição no site',
  `IE_SITUACAO` enum('A','I') NOT NULL COMMENT 'situação da enquete, Ativa ou Inativa',
  PRIMARY KEY (`CD_ENQUETE`),
  UNIQUE KEY `DT_INICIO` (`DT_INICIO`),
  UNIQUE KEY `DT_FIM` (`DT_FIM`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 COMMENT='Entidade para armazenar as perguntas das enquetes' AUTO_INCREMENT=2 ;

--
-- Extraindo dados da tabela `enquete_perguntas`
--

INSERT INTO `enquete_perguntas` (`CD_ENQUETE`, `DT_CADASTRO`, `NM_ENQUETE`, `DS_PERGUNTA`, `DT_INICIO`, `DT_FIM`, `IE_SITUACAO`) VALUES
(1, '2013-04-25 17:48:15', 'Operadora de Celular', 'Qual sua operadora de celular?', '2013-04-25', '2013-04-30', 'A');

Como estamos fazendo um sistema para ilimitadas opções, precisamos de uma outra tabela para armazenas estes dados.

--
-- Estrutura da tabela `enquete_opcoes`
--

CREATE TABLE IF NOT EXISTS `enquete_opcoes` (
  `NR_OPCAO` int(11) NOT NULL AUTO_INCREMENT COMMENT 'numero da opção',
  `CD_ENQUETE` int(11) NOT NULL COMMENT 'FK codigo da enquete',
  `DS_OPCAO` varchar(150) NOT NULL COMMENT 'descrição da opção',
  `QT_VOTO` int(11) NOT NULL DEFAULT '0' COMMENT 'quantidade de votos',
  PRIMARY KEY (`NR_OPCAO`),
  KEY `FK_enquete_opcoes` (`CD_ENQUETE`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 COMMENT='Entidade para armazenar as opções das enquetes' AUTO_INCREMENT=7 ;

--
-- Extraindo dados da tabela `enquete_opcoes`
--

INSERT INTO `enquete_opcoes` (`NR_OPCAO`, `CD_ENQUETE`, `DS_OPCAO`, `QT_VOTO`) VALUES
(1, 1, 'Claro', 0),
(2, 1, 'Tim', 0),
(3, 1, 'Vivo', 0),
(4, 1, 'Oi', 0),
(5, 1, 'Não tenho celular.', 0),
(6, 1, 'Outra operadora', 0);

Tabela para armazenar os comentários das enquetes.

--
-- Estrutura da tabela `enquete_comentarios`
--

CREATE TABLE IF NOT EXISTS `enquete_comentarios` (
  `NR_SEQUENCIA` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Numero sequencial',
  `CD_ENQUETE` int(11) NOT NULL COMMENT 'FK codigo da enquete',
  `DT_ENVIO` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Data que o comentário foi enviado',
  `NR_IP` varchar(20) NOT NULL COMMENT 'numero de IP da pessoa que enviou',
  `NM_PESSOA` varchar(30) NOT NULL COMMENT 'nome da pessoa',
  `DS_EMAIL` varchar(60) NOT NULL COMMENT 'email da pessoa',
  `DS_COMENTARIO` tinytext NOT NULL COMMENT 'comentario sobre a enquete',
  `IE_SITUACAO` enum('A','P','R') NOT NULL COMMENT 'situação, Ativo, Bloqueado, Pendente de aprovação',
  PRIMARY KEY (`NR_SEQUENCIA`),
  KEY `FK_enquete_comentarios` (`CD_ENQUETE`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Entidade para armazenar os comentários' AUTO_INCREMENT=1 ;

Esta tabela é uma das mais importantes, pois estaremos armazenando os logs de tudo o que acontecer com nossa enquete como; quem votou, quando, IP, e caso algum engraçadinho tente negativar sua enquete você poderá analisar os logs para identificar se houve alguma tentativa de burlar a enquete.

--
-- Estrutura da tabela `enquete_logs`
--

CREATE TABLE IF NOT EXISTS `enquete_logs` (
  `NR_SEQUENCIA` int(11) NOT NULL AUTO_INCREMENT,
  `CD_ENQUETE` int(11) NOT NULL,
  `NR_OPCAO` int(11) NOT NULL,
  `DT_ENVIO` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `NR_IP` varchar(20) NOT NULL,
  PRIMARY KEY (`NR_SEQUENCIA`),
  KEY `NR_OPCAO` (`NR_OPCAO`),
  KEY `CD_ENQUETE` (`CD_ENQUETE`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 COMMENT='Entidade para armazenar os LOGs' AUTO_INCREMENT=19 ;

--
-- Extraindo dados da tabela `enquete_logs`
--
INSERT INTO `enquete_logs` (`NR_SEQUENCIA`, `CD_ENQUETE`, `NR_OPCAO`, `DT_ENVIO`, `NR_IP`) VALUES
(6, 1, 4, '2013-04-30 03:26:58', '127.0.0.1'),
(7, 1, 1, '2013-04-30 03:27:01', '127.0.0.1');

Relacionamentos entre as tabelas

--
-- Restrições para a tabela `enquete_comentarios`
--
ALTER TABLE `enquete_comentarios`
  ADD CONSTRAINT `FK_enquete_comentarios` FOREIGN KEY (`CD_ENQUETE`) REFERENCES `enquete_perguntas` (`CD_ENQUETE`);

--
-- Restrições para a tabela `enquete_logs`
--
ALTER TABLE `enquete_logs`
  ADD CONSTRAINT `FK_enquete_logs` FOREIGN KEY (`NR_OPCAO`) REFERENCES `enquete_opcoes` (`NR_OPCAO`);

--
-- Restrições para a tabela `enquete_opcoes`
--
ALTER TABLE `enquete_opcoes`
  ADD CONSTRAINT `FK_enquete_opcoes` FOREIGN KEY (`CD_ENQUETE`) REFERENCES `enquete_perguntas` (`CD_ENQUETE`);