Não é possível usar fontes do Ubuntu no script PHP usando a função exec () por causa da permissão / propriedade

0

Estou trabalhando no VPS do Ubuntu 14.04 Server de 64 bits e quero usar XeLaTeX para criar arquivos PDF com as fontes desejadas. Eu instalei fontes e o XeLaTex funciona bem se eu o executar do terminal:

xelatex sample.tex

E produz sample.pdf sem nenhum problema. Mas se eu executar o mesmo comando da função PHP exec() como o seguinte comando:

$cmd = "cd folder && xelatex sample.tex";

$excute  = shell_exec($cmd);

Eu enfrento 'fonte não é encontrada' problema. Porque está tudo bem, acho que o problema é com permissões ou propriedade de fontes. Tentei alterar a permissão de uma pasta e arquivos de fontes específica para 744 e até tentei alterar a propriedade para alguém que possui o arquivo PHP, mas não consegui resolver o problema. Eu não quero usar sudo para executar o comando por causa de preocupações de segurança.

Como devo disponibilizar as fontes do Ubuntu para o script PHP?

Atualização 1:

Aqui está o meu arquivo sample.tex, eu uso settextfont para selecionar fontes:

\documentclass[a4paper,12pt]{report}    
\usepackage{amsthm,amsmath}
\usepackage{amssymb}    
\usepackage{mathrsfs}    
\usepackage{graphicx}    
\usepackage[top=3cm,right=3cm,bottom=2.5cm,left=2.5cm]{geometry}    
\usepackage{xepersian}    
\settextfont[Scale=1.1]{XB Yas}    
\setdigitfont{XB Yas}

\begin{document}    
    Hello, This is a test file.
\end{document}

Atualização 2:

Eu alterei o código para o seguinte:

\documentclass[a4paper,12pt]{report}    
\usepackage{amsthm,amsmath}
\usepackage{amssymb}    
\usepackage{mathrsfs}    
\usepackage{graphicx}    
\usepackage[top=3cm,right=3cm,bottom=2.5cm,left=2.5cm]{geometry}   
\setmainfont{Yas}[Path = /var/www/html/fonts/,UprightFont = *-Rg,Extension = .ttf]

\begin{document}    
    Hello, This is a test file.
\end{document}

Mas agora enfrento o seguinte erro:

fontspec error: "font-not-found"

The font "Yas-Rg" cannot be found.

Existem fontes Yas-Rg.ttf, Yas-Bd.ttf e outras em / var / www / html / fonts e a propriedade foi definida como uma que possui o script PHP e também as permissões foram definidas para 774.

    
por getoku 10.10.2016 / 23:06

1 resposta

0

Supondo que você esteja usando o pacote fontspec e de acordo com o fontspec documentação do pacote (página 9), você deve conseguir colocar as fontes desejadas em uma pasta onde o apache obtenha os direitos corretos:

To load a font that is not in one of the default search paths, its 
location in the filesystem must be specified with the Path feature:

\setmainfont{texgyrepagella}[
    Path           = /var/www/myProject/Fonts/ ,
    UprightFont    = *-regular ,
    BoldFont       = *-bold ,
... ]
    
por ponsfrilus 10.10.2016 / 23:55