Como posso iniciar o XServer no Linux através do usuário do Apache acionado pelo script Perl em execução em segundo plano?
Pergunta
Estou tentando lançar o MS Office através do vinho usando um script Perl hospedado por Apache
e e desencadeado por outra aplicação. Estou recebendo a seguinte mensagem de erro em
arquivos de log "Aplicativo tentando criar uma janela, mas nenhum driver não pôde ser carregado. Verifique se o servidor X está em execução e que o visor $ esteja definido corretamente".
Se eu executar o script diretamente no prompt de shell usando o usuário root, o vinho inicia
XServer corretamente e execute o ms msOffice, além disso, se eu definir xhost +local: apache no shell prompt, também funcionará bem.
Como posso iniciar o Xserver do Apache User?
Solução
É uma idéia extremamente ruim iniciar um servidor X por trabalhador httpd. Se você insistir em fazer isso, use Xvfb.
Minha recomendação seria ter um daemon separado, lidar com a conversão/criação de documentos e usar uma fila de mensagens para passar por trabalhos.