Bom dia pessoal. estou com um probleminha chato aqui. Vou explicar direito pra vocês saberem qual é a da parada. Na faculdade em que trabalho, temos um servidor de CVS (controle de versão) rodando em linux. O site da intranet é programado em PHP, e roda em um Windows 2003 Server. Quem faz a programação no site não sou eu, mas a mim foi delegada uma tarefa de automatizar uma rotina do CVS.
O que deve acontecer é o seguinte:
Quando o usuário clicar no link, ele roda um batch que loga no CVS, dá um "checkout" no arquivo, e traz a última versão pro Win 2003. No servidor, se eu executar o batch na mão, funciona direitinho. Mas quando é executado pelo PHP, somente os comandos nativos do shell do Windows (cmd) são executados, que no caso são "del" e "move". Dentro do batch, há uma chamada pro CVS, que não é executada. No servidor Win2003, além do Wampserver/Joomla eu instalei o TortoiseCVS, pois ele cria as entradas no path (variável de ambiente) e instala o CVSNT (cliente CVS Windows) pra mim. O batch tá assim:
d: //muda para o drive (coloquei por segurança, pra não executar nada em C:\)
cd D:\wamp\www\intranet\temp //acessa o diretório pra onde o "checkout" vai rolar
cvs -d :ssh:login:senha@servidor:/cvs co repositorio/arquivo.xxx //linha de comando pra acessar o CVS. Essa não funciona
cd D:\wamp\www\intranet\dmdocuments //muda pro diretório de download
del arquivo.xxx //exclui o antigo, caso o "move" não substitua
move /Y D:\wamp\www\intranet\temp\repositorio\arquivo.xxx D:\wamp\www\intranet\dmdocuments //move o arquivo do diretório temporário pra pasta de download
Bem, pra saber que o batch funcionou, como eu não tinha o arquivo.xxx, então eu criei um fictício, como se o comando do CVS tivesse funcionado. Pude perceber que os comandos do DOS funcionaram, mas o "cvs" não.
Como dito anteriormente, se eu executar o batch ele funciona completamente, e se eu abrir um "cmd" e digitar um cvs -d ... eu tb consigo dar um "checkout" no arquivo.
Li pela internet, que poderia ser algo relacionado a um safe_mod (ou safe_mode?) dentro do php.ini. Fui olhar lá e tá definido para "off"
Alguém tem alguma sugestão??? Desde já agradeço!!!
Pergunta
LBARROS
Bom dia pessoal. estou com um probleminha chato aqui. Vou explicar direito pra vocês saberem qual é a da parada. Na faculdade em que trabalho, temos um servidor de CVS (controle de versão) rodando em linux. O site da intranet é programado em PHP, e roda em um Windows 2003 Server. Quem faz a programação no site não sou eu, mas a mim foi delegada uma tarefa de automatizar uma rotina do CVS.
O que deve acontecer é o seguinte:
Quando o usuário clicar no link, ele roda um batch que loga no CVS, dá um "checkout" no arquivo, e traz a última versão pro Win 2003. No servidor, se eu executar o batch na mão, funciona direitinho. Mas quando é executado pelo PHP, somente os comandos nativos do shell do Windows (cmd) são executados, que no caso são "del" e "move". Dentro do batch, há uma chamada pro CVS, que não é executada. No servidor Win2003, além do Wampserver/Joomla eu instalei o TortoiseCVS, pois ele cria as entradas no path (variável de ambiente) e instala o CVSNT (cliente CVS Windows) pra mim. O batch tá assim:
d: //muda para o drive (coloquei por segurança, pra não executar nada em C:\)
cd D:\wamp\www\intranet\temp //acessa o diretório pra onde o "checkout" vai rolar
cvs -d :ssh:login:senha@servidor:/cvs co repositorio/arquivo.xxx //linha de comando pra acessar o CVS. Essa não funciona
cd D:\wamp\www\intranet\dmdocuments //muda pro diretório de download
del arquivo.xxx //exclui o antigo, caso o "move" não substitua
move /Y D:\wamp\www\intranet\temp\repositorio\arquivo.xxx D:\wamp\www\intranet\dmdocuments //move o arquivo do diretório temporário pra pasta de download
Bem, pra saber que o batch funcionou, como eu não tinha o arquivo.xxx, então eu criei um fictício, como se o comando do CVS tivesse funcionado. Pude perceber que os comandos do DOS funcionaram, mas o "cvs" não.
Como dito anteriormente, se eu executar o batch ele funciona completamente, e se eu abrir um "cmd" e digitar um cvs -d ... eu tb consigo dar um "checkout" no arquivo.
Li pela internet, que poderia ser algo relacionado a um safe_mod (ou safe_mode?) dentro do php.ini. Fui olhar lá e tá definido para "off"
Alguém tem alguma sugestão??? Desde já agradeço!!!
Editado por LBARROSLink para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.