php shell_exec () tramite cygwin
-
03-07-2019 - |
Domanda
Ho scritto uno script che compila il codice LaTeX attraverso pdftex
. Il problema è che pdftex
funziona solo su linux.
Sto completando questo compito con l'uso di shell_exec ()
.
Non ho davvero la possibilità di configurare un box Linux come server web. Ho il mio computer client, ma è dietro un firewall che non controllo. Ho il controllo del mio server di lavoro che esegue SBS 2003 con una macchina virtuale Windows 2000 che esegue apache e php. Per quanto ne so, non è possibile installare pdftex
in Windows e, se fosse possibile, non funzionerebbe con shell_exec ()
.
Esiste un modo per aggirare questo problema con Cygwin? Potrei installare pdftex in cygwin e quindi configurare php per eseguire i comandi shell_exec ()
all'interno di cygwin. Se questo è possibile, qualcuno potrebbe indicarmi la giusta direzione?
Inoltre, mi chiedo se ci sia un altro corso d'azione. Non mi dispiacerebbe acquistare hosting, ma qualsiasi piano di hosting condiviso non supporterà l'app. Dovrebbe essere un piano di hosting virtuale o dedicato; qualcosa che non posso permettermi.
Soluzione
pdfTeX funziona perfettamente su Windows, senza richiedere Cygwin. Prova MiKTeX .
Altri suggerimenti
Per chiunque si stia chiedendo di eseguire shell_exec ()
attraverso Cygwin, controlla questo link per un commento nel manuale di PHP:
http://us.php.net/manual /en/function.shell-exec.php#68647
$result = shell_exec("C:\cygwin\bin\bash.exe --login -c '/cygdrive/c/cygwin/bin/convert.exe --version'");
La chiave è il " - login " opzione che aggiunge tutto il comune richiesto percorsi binari e librerie cygwin verso $ PATH. Senza questa opzione alcuni di i binari cygwin che si collegano ad altre librerie (come ImageMagick i binari che si collegano a X11) non funzioneranno e potresti vedere degli errori come " cygX11-6.dll non trovato, impossibile avviare convert.exe "