Posts TaggedWindows
Dica rápida: Executar um arquivo batch através do PHP
Uma dica rápida pra quem está tentando executar um arquivo .bat usando o php. Dê permissão ao usuário do apache ou IIS para executar o cmd.exe, feito isso, chame o seu bat usando como ponte prompt de comando: exec(“cmd.exe \c arquivo.bat”)
Lembre-se que seu script batch não deve ter interação com o usuário
Abrasss
Add comment Outubro 13, 2009
JasperServer – Backup/Export Repositório
O JasperServer é uma excelente opção gratuita para desenvolver relatórios de forma profissional, rápida (na maioria das vezes) e segura. Não sei porque parece que não ganhou muitos adaptos ou os usuários não costumam falar sobre a ferramenta
. É muito difícil achar algum material sobre Jasper/iReports. Então vou dando minhas trumbicadas diárias e postando aqui as soluções que encontro e/ou invento.
Hoje precisei publicar um repositório do JasperServer em um servidor de desenvolvimento. Já vi por ai que muita gente dizendo que faz o backup/export usando o dump do banco do jasper server. Não me pareceu uma opção muito segura e resolvi procurar uma outra forma de fazer e dai lembrei do js-export e js-import que usei para migrar do jasperserver 3.1 para o 3.5 (Upgrade do JasperServer 3.1 para o 3.5). Esses dois scripts, como o nome já diz, exportam e importam dados do repositório do JS. Para exportar todos os dados do repositório, use o comando:
Linux:
js-export.sh --everything --output-zip js-backup.zip
Windows:
js-export.bat --everything --output-zip js-backup.zip
Onde –everything diz que tudo será exportado, –output-zip indica que o formato de saída será um arquivo compactado e js-backup.zip é o arquivo de saída.
obs.: Os scripts citados estão no diretório <JASPERSERVER_HOME>/scripts
Para exportar apenas um ou N repositórios, basta usar a opção –uris.
Linux:
js-export.sh --uris /reports/samples,/reports/cms --output-zip js-backup.zip
Windows:
js-export.bat --uris /reports/samples,/reports/cms --output-zip js-backup.zip
Para importar os dados, execute o js-import:
Linux:
js-import.sh --input-zip js-backup.zip
Windows:
js-import.bat --input-zip js-backup.zip
Se o repositório já existir, use a opção –update.
Não se desespere se aparecer um erro do tipo:
blábláblá bundles.jsexceptions_messages, locale pt_BR blábláblá
jsexception.folder.details.not.found
ou ainda:
blábláblá jsexception.uri.not.found
Fique calmo, provavelmente foi um erro de digitação no js-export. Cuidado com as “/” e com as letras maiúsculas e minúsculas. Ao informar o caminho para o repositório, coloque extamente o caminho apresentado no JasperServer.
Abraços e até o próximo post.
Add comment Setembro 15, 2009
Perl + DBI + MySQL
Essa semana precisei criar alguns scripts de migração e estatística de dados em bases MySQL. Esse tipo de problema é bem a area do Perl e Python. Ambos tem uma boa performance em tratamento de dados principalmente arquivos.
Vou tentar explicar como instalar os recursos necessários para fazer uma aplicação em Perl que possa manipular bases de dados em MySQL.
DBI
O DBI é uma interface de acesso e manipulação de dados. Funciona como uma camada entre o script perl e o driver especifico de um SGBD. Com o DBI não é necessário saber a API de cada SGBD ( Oracle, MySQL, PostgreSQL, etc ). Quando um métido da interface é invocado, a ação é transferida para o driver especifico de forma transparente para o usuário final.
Vamo fazer o troço funcionar.
INGREDIENTES
- Internet
- Perl ou ActivePerl ( Caso seja usuário Windows )
- Teclado
INSTALANDO
Vá até o shell ou prompt de comando e digite:
ppm install DBI
ppm install DBD-mysql
Pronto, agora é só incluir o modulo DBI e já está pronto para usar.
use strict;
use warnings;
use DBI;
my $conexao = DBI->connect('DBI:mysql:database=meu_banco;host=servidor;port=3306','usuario','senha');
É isso ai … a documentação está aqui: http://search.cpan.org/~timb/DBI/DBI.pm
divirtam-se!
Add comment Maio 23, 2009
Tomcat 6 – Falha ao inicializar serviço
Se ao tentar iniciar o tomcat 6 numa máquina com Windows XP você recebe o erro abaixo no log
=========================
[173 javajni.c] [error] Can’t create the specified module.
[764 prunsrv.c] [error] Failed creating java
D:\Programs\Java\jdk1.6.0\jre\bin\server\jvm.dll
[982 prunsrv.c] [error] ServiceStart returned 1
=========================
Basta copiar o arquivo msvcr71.dll da pasta bin do JRE ( JRE_HOME\bin\msvcr71.dll ) para a pasta windows ou para CATALINA_HOME\bin que seu problema estará resolvido.
Esse problema aconteceu comigo essa semana, duas máquinas com as mesmas versões de JRE, Tomcat e Windows mas apenas uma funcionava. E o mais engraçado é que a máquina que funcionava não tinha o arquivo msvcr71.dll nem na pasta Windows e muito menos na pasta bin do tomcat
????????
Mas por que isso acontece? … Só Deus e agora a Oracle sabem
– I Love PHP
3 comments Maio 2, 2009
Aplicações Desktop com PHP – Parte 1
Que o PHP é uma das linguagens de programação mais usadas em ambiente web, todo mundo sabe. Mas pouca gente sabe que também é possível criar aplicações desktop com ela. E é isso que nós iremos fazer. Para tal, iremos utilizar o PHP-GTK.
O que é GTK/GTK+?
O GTK (Gimp Tool Kit) é uma poderosa biblioteca para desenvolvimento de aplicações GUI multi-plataforma, muito utilizada no mundo linux e que vem ganhando seu espaço também no windows.
PHP-GTK
É linguagem binding que permite aos desenvolvedores PHP criarem aplicações gráficas multi-plataforma sem abrir mão dos recursos do PHP.
Vamos então instalar os trecos \o/
Ingredientes
- PHP-GTK
- Uma caneca com café
Instalação do PHP-GTK no Windows
Baixe aqui http://sourceforge.net/project/downloading.php?groupname=agata&filename=php-gtk2b.exe&use_mirror=ufpr o instalador, execute-o e seja feliz.
Instalação do PHP-GTK no Linux
Baixe aqui http://sourceforge.net/project/downloading.php?groupname=agata&filename=php-gtk2b.tar.gz&use_mirror=ufpr o pacote pré-compilado e siga os passos abaixo:
# mv php-gtk2 /usr/local/
# ln -sf /usr/local/php-gtk2/bin/php /usr/bin/php-gtk2
1,2,3, testando
Para testar crie um novo arquivo chamdo exemplo.php com o código abaixo:
if (!class_exists(‘gtk’)) {
die(“O módulo php-gtk2 não foi carregado corretamente. Verifique seu php.ini.”);
}$wnd = &new GtkWindow();
$wnd->set_title(‘Exemplo’);
$wnd->connect_simple(‘destroy’, array(‘gtk’, ‘main_quit’));$label = &new GtkLabel(“Perdeu preiboy!’”);
$wnd->add($label);
$wnd->show_all();
Gtk::main();
?>
Para executar, vá até a linha de comando e execute:
No Linux
No Windows
É isso ai. No próximo post vamos explorar melhor os recursos do PHP-GTK.
Pra quem quiser saber mais sobre o projeto:
http://www.php-gtk.com.br/
http://gtk.php.net/
Abraços!
Add comment Junho 24, 2008
Ataque de pelanca do Windows Vista
No último final de semana pude finalmente tirar um tempo pra instalar o bom e velho slackware no notebook. Lembro que saiu uma matéria no WNews a um tempo atrás falando sobre o novo gerenciador de partições do Vista. Levando em conta os problemas de compatibilidade dos programas com o novo windows ( incluindo o partition magic ), um bom particionador já embutido no sistema ia quebrar um galhão.
No vídeo o cara cria, apaga, redimensiona, joga pra cima, faz um catatau de coisas com as partições. Fiquei até empolgado. Como neste final de semana resolvi instalar o slack 12 e precisava redimensionar a partição onde o vista está instalado e assim criar as outras, não tive dúvidas, fui pro gerenciador ( compmgmt.msc ) cliquei na opção Diminuir ( Shrink ) e me deparo com um botão desabilitado :S.
Isso acontece, entre n motivos, porque o desfragmentador de arquivos do vista não move os arquivos da MFT ( Master File Table ) para o início da partição. Daí você não pode diminuir a dita cuja. Vamos então a solução:
INGREDIENTES
- PerfectDisk 2008
- Algum conhecimento
- Paciência
Primeiramente, faça limpeza de disco usando o próprio assistente do windows ou o CCleaner
(http://www.ccleaner.com/download)
Desabilite restauração, arquivos de paginação e o despejo de memória fisica. Todas as opções se encontram nas propriedades do sistema (tecla win + break) nas abas Proteção do Sistema; Desempenho; Inicialização & Recuperação.
Depois que todos os itens estiverem desabilitados reinicie o computador. Baixa/instale/execute o PerfectDisk2008 ( http://www.raxco.com/products/downloadit/pd_download_home.cfm ).
É necessário fazer uma desfragmentação normal, que você pode fazer usando o próprio vista, o perfectdisk ou o auslogics disc e a outra é de arquivos de sistema … esse vai mover os famigerados MFTs. Esta última use o PerfectDisk. Escolha a opção System Files. Esse processo pode demorar um pouco eu não sei o tempo porque larguei o troço lá e fui dormir
Depois de finalizar as desfragmentações, a opção estará milagrosamente habilitada … diminua sua partição, habilite novamente as opções de sistema que desabilitou lá em cima, reinicie o PC e seja feliz
.
Add comment Maio 7, 2008
Gerando documentos PDF com FPDF – Parte 02
Antes tarde do que nunca. Hoje iremos falar do método AddFont(). Este método serve para importar uma nova font TrueType ou Type1 ao documento PDF.
Ingredientes:
- Conversor de fonts TrueType/Type1
- Fonts TrueType/Type1
- FPDF
>> ttf2pt1
Se você é usuário *nix, baixe a última versão aqui: http://ttf2pt1.sourceforge.net/download.html se for usuário windows, tente aqui: http://gnuwin32.sourceforge.net/packages/ttf2pt1.htm ou aqui: http://public.box.net/ischool
Após concluir o download, descompacte o arquivo em um diretório de sua preferência. Vá até a console ( bash, ksh, etc ou prompt de comando para os usuários do windows ) e execute o comando:
C:\Downloads\ttf2pt1>ttf2pt1 -a C:\WINDOWS\Fonts\Verdana.ttf Verdana
$./ttf2pt1 -a /mnt/WINDOWS/Fonts/Verdana.ttf Verdana
O comando acima irá produzir dois arquivos. Um com a extensão .AFM e o outro T1A. Agora vamos retornar ao PHP. Pegue os balai de gato gerados anteriormente e a fonte ttf ( em nosso caso Verdana.ttf ) e leve para o diretório font do FPDF. Agora estamos prontos pra criar o arquivo que irá gerar as fonts que serão usadas de fato em nosso script PHP. Crie um script PHP com o código abaixo.
require_once ‘makefont/makefont.php’;MakeFont( ‘Verdana.ttf’, ‘Verdana.afm’, ‘ISO-8859-1′ );
?>
Tá pronta a bagaça. Agora basta executar o arquivo via CLI ( linha de comando ) ou por HTTP mesmo.
Pronto, agora você tem dois arquivos novos: Verdana.php e Verdana.z. Agora você já pode usar sua font Verdana em suas relatórios em PDF usando o método AddFont() como no exemplo abaixo.
require_once “fpdf_dir/fpdf.php”;
$pdf = &new FPDF(”L”,”mm”,”A4″);
$pdf->Open();
$pdf->AddPage();
$pdf->AddFont(“Verdana”);
$pdf->SetFont(“Verdana”,”B”, 14);
$pdf->Text(40,20,”Título do Relatório”);
$pdf->SetLineWidth(0.7);
$pdf->Line(40,22,200,22);
$pdf->SetXY(40,26);
$pdf->SetFont(”,”,12);
$pdf->Cell(30,5,”Modelo”,0,0,”C”,0);
$pdf->Cell(30,5,”Fabricante”,0,0,”C”,0);
$pdf->Output();
?>
É isso ai, mangaba não é não? Se ainda tiverem dúvidas, olhem este artigo feito pela iSchool http://ischool.000webhost.info/php/curso-fpdf-recursos-2 que é muito bom.
Abraços e até a próxima!
4 comments Abril 28, 2008