Protweb PHP Instalação/Configuração
Protweb PHP Instalação Requisitos: Servidor Web com suporte a PHP Banco de Dados MySQL Arquivos do Protweb Exemplo: Servidor Linux com: Apache 2.0.47, PHP 4.3.0 e MySQL 4.0.11 A grande parte das distribuições Linux atuais já possui os pacotes necessários na mídia de instalação
Linux Instalação
Instalar o Linux com: Linux Instalação Servidor Web Apache Banco de Dados MySQL Linguagem PHP Navegador Mozilla ou Firefox Prever espaço em disco na partição para os arquivos do Protweb É recomendável que o Protweb fique numa partição diferente da partição do sistema operacional
Apache2/PHP Instalação/Configuração
Apache2 Instalação Pacotes básicos (mdk 9.1) apache2-2.0.44-11mdk, apache2-common-2.0.44-11mdk apache2-mod_ssl-2.0.44-11mdk apache2-mod_php-2.0.44_4.3.1-2mdk Arquivos de configuração /etc/httpd/conf/httpd2.conf /etc/httpd/conf/commonhttpd.conf /etc/httpd/conf/vhosts/vhosts.conf
Pacote básico (cl 10.0) apache-2.0.49-61250cl Arquivo de configuração Apache2 Instalação /etc/apache/conf/httpd.conf
Apache2 Configuração Parâmetros importantes: /etc/httpd/conf/commonhttpd.conf (mdk) /etc/apache/conf/httpd.conf (cl10) Usuário e grupo do servidor: User apache Group apache Directory Index: DirectoryIndex (...) index.php (...) AccessFileName: AccessFileName.htaccess
Apache2 Configuração Se o Apache for exclusivo para o Protweb, pode-se mudar o DocumentRoot para o diretório do protweb: /etc/httpd/conf/httpd2.conf (mdk) /etc/apache/conf/httpd.conf (cl10) DocumentRoot: DocumentRoot /var/www/html/protweb
Apache2 Configuração Se o Apache não for exclusivo para o Protweb, pode-se criar um Host Virtual: Configurar no servidor DNS dois nomes diferentes resolvendo para a mesma máquina Editar o arquivo de configuração e colocar um DocumentRoot para cada nome: /etc/httpd/conf/vhosts/vhosts.conf (mdk) /etc/apache/conf/httpd.conf (cl10)
Vhosts.conf - Exemplo Apache2 Configuração NameVirtualHost *:80 <VirtualHost *:80> ServerName webmail.5cta.eb.mil.br DocumentRoot /var/www/html/webmail </VirtualHost> <VirtualHost *:80> ServerName protweb.5cta.eb.mil.br DocumentRoot /var/www/html/protweb </VirtualHost>
PHP Instalação no Linux Pacotes básicos (mdk 9.1) libphp_common430-430-11mdk php-ini-4.3.0-1mdk php-mysql-4.3.0-2mdk php-xml-4.3.0-2mdk Arquivo de configuração /etc/php.ini
PHP Instalação no Linux Pacotes básicos (cl 10.0) php4-4.3.6-63187u10_2cl php4-mysql-4.3.6-63187u10_2cl Arquivo de configuração /etc/php.ini
PHP Arquivo php.ini Parâmetro register_globals Deve ser On A partir do PHP 4.2.0, o valor padrão do parâmetro é off No Mandrake 9.X e 10.X register_globals = on No Conectiva 10.0 register_globals = off Outros Parâmetros short_open_tag = On max_execution_time = 30 error_reporting = E_ALL & ~E_NOTICE file_uploads = On upload_max_filesize = 2M
Apache2/PHP Testando Colocar o Servidor Web no ar Criar um arquivo teste.php com a linha: <? phpinfo()?> Colocar o arquivo em um subdiretório Web /var/www/html (mdk) /srv/www/default/html (cl10) Acessar via navegador http://localhost/teste.php
MySQL
MySQL Linux Pacotes básicos (mdk 9.1) MySQL-4.0.11a-5mdk MySQL-client-4.0.11a-5mdk MySQL-common-4.0.11a-5mdk Pacotes básicos (cl 10.0) mysql-4.0.15-62447cl mysql-client-4.0.15-62447cl
MySQL Daemon mysqld Principais comandos mysql Cliente do mysqld mysqladmin Para procedimentos administrativos (create database, drop database, shutdown, etc) mysqlshow Mostra a estrutura de uma base (tabelas, colunas)
MySQL Principais comandos mysqldump Gera um dump das tabelas e/ou dados Possibilita o backup mysqlimport Importa dados de arquivos texto para as tabelas
MySQL O usuário root do MySQL não tem nenhuma relação com o usuário root do Linux Acesso do administrador (root) do banco Usuário root / sem senha (mdk) Executar /usr/bin/mysql_install_db (cl10) Acessando o banco # mysql -p mysql>
MySQL Dois bancos de dados mysql columns_priv db host tables_priv user test Vazio
MySQL Tabela user Nome do usuário senha Host (autorizado para a conexão) Privilégios globais (todos os bancos de dados) Tabelas db e host Privilégios para os bancos de dados Tabelas columns_priv e tables_priv Privilégios de linha e coluna
MySQL com phpmyadmin Pacote de administração phpmyadmin http://www.phpmyadmin.net/ Baixar o.tar ou o.zip Requisito: Servidor web no ar (httpd) com suporte a PHP e MySQL
MySQL com phpmyadmin Descompactar para um subdiretório de páginas web tar -xvjf phpmyadmin-2.6.2.tar.bz2 --no-same-permissions -C /var/www/html Editar o arquivo config.inc.php host, user, password Altamente recomendável proteger o diretório no Apache Acesso via browser
MySQL com phpmyadmin Arquivo config.inc.php $cfg['pmaabsoluteuri'] = ''; $cfg['pmaabsoluteuri_disablewarning'] = TRUE; $cfg['servers'][$i]['user'] $cfg['servers'][$i]['password'] = 'root'; = '';
MySQL com phpmyadmin Proteção do diretório no Apache Proteção baseada em IP Criar um arquivo.htaccess no diretório do myadmin Deny from all Allow from 127.0.0.1/32
MySQL com phpmyadmin Proteção baseada em usuário: Criação de um arquivo de senhas: htpasswd -c /etc/httpd/conf/passwords usuario Inclusão ou alteração no arquivo de senhas: htpasswd /etc/httpd/conf/passwords usuario Arquivo.htaccess: AuthType Basic AuthName "nome" AuthUserFile /etc/httpd/conf/passwords Require valid-user
Protweb Instalação
Protweb Instalação automática Executar script de instalação instala_protweb Editar o arquivo php.ini register_globals = on Editar o arquivo config/settings.php
Protweb Instalação manual 1) Descompactar o Protweb para um subdiretório de páginas web, e verificar a permissão dos diretórios documentos e mensagens tar -xvzf protweb.tar.gz -C /var/www/html 2) Criar o usuário protweb no MySQL mysql -p mysql < protweb_mysql_user.sql
Protweb Instalação manual 3) Reiniciar os privilégios do MySQL mysqladmin -p reload 4) Criar uma base chamada protweb no MySQL mysqladmin -p create protweb Se a base já existir: mysqladmin -p drop protweb mysqladmin -p create protweb
Protweb Instalação manual 5) Criar as tabelas da base protweb mysql -p protweb < protweb_db_script.sql ou mysql --user=protweb --password=protweb protweb < protweb_db_script.sql 6) Inserir os dados básicos nas tabelas criadas mysql -p protweb < protweb_db_data.sql
Protweb Instalação manual Editar o arquivo config/settings.php Configurações dos diretórios: $page_path = "/"; $img_path = "/images"; $modelo_url = "/modelos"; $document_path = "/var/www/html/protweb/documentos"; $message_path = "/var/www/html/protweb/mensagens"; $modelo_path = "/var/www/html/protweb/modelos";
Protweb Instalação manual Arquivo config/settings.php Configurações do servidor: $web_server = "http://protweb.5cta.eb.mil.br/"; $db_server = "localhost"; $db_name = "protweb"; Usuário e senha para acesso ao banco de dados: $db_user_rw = "protweb"; $db_code_rw = "protweb";
Protweb Tabelas
Protweb Tabelas AnexoMensagem Tabela para os arquivos anexos das mensagens (emails) VirtualPath = mensagens/ Anotacao Tabela para o registro de anotações e despachos Tipo=1 para despacho e Tipo=2 para anotação
Protweb Tabelas ArquivoAnexo Tabela para os arquivos anexos dos documentos O próprio documento é um arquivo anexo (ArquivoAnexoID = 0) Tipo=D para o documento e Tipo=A para os anexos VirtualPath = documentos/<abreviatura>/ ArquivoMensagemTemp e ArquivoTemporario Não são usadas (em um protweb local) Não devem ser removidas
Protweb Tabelas DespachoPadrao Tabela para os despachos pré-definidos Documento Tabela com as informações sobre o documento (expedidor, assunto, data, etc) Não guarda o nome do documento Grupo Tabela para os grupos de usuários
Protweb Tabelas Historico Tabela para armazenar as operações dos usuários Tabela com maior tamanho
Protweb Tabelas As opções do campo TIPO são: 1) Login de Usuário 2) Logout de Usuário ou Encerramento da Sessão 3) Remessa de documentos 4) Encaminhamento de documentos 5) Arquivamento de documentos 6) Anotação em documentos 7) Despacho em documentos 8) Anexo de documentos 9) Deleção de Documento pelo Administrador 10) Criação de Usuário 11) Deleção de Usuário
Protweb Tabelas Mensagem Tabela com as informações da mensagem (e-mail), inclusive o texto PostoGraduacao Tabela para a lista de postos/graduações Prioridade Tabela com a lista de prioridades (0, 1, 2 para documentos; 10, 11, 12 para mensagens)
Protweb Tabelas ServidorProtweb Tabela com informações sobre o servidor Protweb TipoDocumento Tabela com os tipos de documento As abreviaturas devem seguir o padrão de codificação URL previsto no RFC 1738 (US-ASCII) Usuario Tabela com as informações sobre o usuário Guarda a senha codificada com MD5
Protweb Tabelas UsuarioDocumento Tabela que relaciona os usuários com os documentos (UsuarioID, DocumentoID) StatusDocumento: 0 = Documento arquivado 1 = Documento recebido (não lido) 2 = Documento pendente 3 = Documento lido
Protweb Tabelas UsuarioGrupo Tabela que relaciona os usuários com os grupos (UsuarioID, GrupoID) UsuarioMensagem Tabela que relaciona os usuários com os mensagens (UsuarioID, MensagemID) StatusMensagem: 0 = Mensagem recebida (não lida) 1 = Mensagem lida
Protweb Tabelas Exemplo Arquivar todos os documentos da caixa de entrada do usuário TESTE: UPDATE UsuarioDocumento LEFT JOIN Usuario ON ( DestinatarioID = UsuarioID ) SET StatusDocumento = '0' WHERE ( StatusDocumento = '1' OR StatusDocumento = '3' ) AND Nickname = 'teste';
Protweb Backup
Protweb backup e recuperação Backup do Protweb Dump do banco de dados Cópia dos arquivos do Protweb Cópia dos arquivos de configuração do Apache e PHP No Protweb PHP, o backup pode ser feito sem tirar o banco do ar
Protweb backup e recuperação Backup do MySQL Dump do banco protweb para um arquivo texto mysqldump -u protweb -pprotweb protweb > protweb.sql Pode ser agendado no cron para ser feito automaticamente logo antes da cópia dos arquivos
Protweb backup e recuperação Backup dos arquivos Usando o tar para unidade de fita DAT tar -cvf /dev/st0 --totals --label "Backup protweb de `date +%d%b-%h:%m`" /var/www/html/protweb Usando o tar e gzip para arquivo tar -cvzf /backup/protweb.tar.gz /var/www/html/protweb
Protweb backup e recuperação Backup dos arquivos Usando o rsync e NFS mount -t nfs 10.1.2.3:/backup-protweb /backup rsync -a --delete /var/www/html/protweb /backup umount /backup
Protweb backup e recuperação Restore dos arquivos.tar tar -xvf /dev/st0 --directory / ou tar -xvzf protweb.tar.gz --directory / Restore do MySQL mysql -p mysql < protweb_mysql_user.sql mysqladmin -p create protweb mysql -u protweb -pprotweb protweb < protweb.sql