我正在使用TCPDF库。我有两台机器,一台是 Debian 测试,另一台是 Ubuntu 15.10。我开发了一个用于生成 pdf 报告的类,但我遇到了一个问题,当我在 Debian 主机中测试它时,一切都很完美:
1-我在/var/www
中创建了一个名为"pdf"的文件夹2-然后我做了:sudo chown -R www-data:user /var/www/pdf
3-生成pdf文件,我得到:
-rw-r--r-- 1 www-data www-data 76113 ene 18 09:53 out.pdf
4-文件夹具有:
drwxr-xr-x 2 www-data user 4096 ene 18 09:53 pdf
我使用过:
const base_path = '/var/www';
$pdf->Output(self::base_path . '/pdf/out.pdf', 'F');
在 iFrame 中显示它:
<iframe width="100%" height="500" frameborder="0" allowfullscreen="true" src="/var/www/pdf/out.pdf" name="iFrameName" id="iframeID"></iframe>
我将整个项目复制到 Ubuntu 主机,但在浏览器中显示 pdf 文件,我收到此错误:
Forbidden
You don't have permission to access /var/www/pdf/out.pdf on this server.
我有以下文件设置:
-rw-r--r-- 1 www-data www-data 76113 ene 18 12:06 out.pdf
该文件夹具有:
drwxrwxr-x 2 www-data ubuntu-user 4096 ene 18 09:53 pdf
我怀疑错误出在我在 Ubuntu 上缺少的 apache 设置中。
将你的 ifreme 更改为你总是跳过你的DOCUMENT_ROOT路径
<iframe width="100%" height="500" frameborder="0" allowfullscreen="true" src="/pdf/out.pdf" name="iFrameName" id="iframeID"></iframe>
它有效。
我不得不补充:
<Directory /var/www/pdf>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
到apache2.conf