Ubuntu 18.04 安装 LibreOffice(用于 Word 在线预览转换)
适用场景: 服务器端需要将
.doc/.docx转换为 HTML 或 PDF操作用户: root 或具有 sudo 权限的用户
一、安装命令(稳定版)
⚠️ 避免踩坑: 不要安装 libreoffice-writer-nogui,容易与系统源冲突导致依赖问题。
执行以下命令:
bash
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
libreoffice-writer \
libreoffice-common \
libreoffice-java-common \
fonts-noto-cjk
参数说明:
| 包名 | 作用 |
|---|---|
libreoffice-writer |
Writer 文字处理组件(核心) |
libreoffice-common |
公共基础文件 |
libreoffice-java-common |
Java 运行时支持(部分转换依赖) |
fonts-noto-cjk |
中日韩字体,避免中文乱码 |
二、验证安装是否成功
2.1 查看 soffice 路径
bash
which soffice
预期输出:/usr/bin/soffice
2.2 查看版本号
bash
soffice --version
预期输出类似:
text
LibreOffice 6.0.7.3 00m0(Build:3)
三、(可选)指定自定义路径
如果 soffice 不在默认路径,可在 .env 中配置(以 Laravel 为例):
bash
CONTRACT_LIBREOFFICE_PATH=/usr/bin/soffice
四、测试转换功能(推荐执行)
用一个测试文件验证是否能正常转换:
bash
# 准备测试文件
echo "test content" > /tmp/test.doc
# 执行转换
soffice --headless --nologo --nofirststartwizard --norestore \
--convert-to html --outdir /tmp /tmp/test.doc
# 查看输出
ls -la /tmp/test.html
如果生成了 /tmp/test.html 文件,说明安装成功且可用。
五、常见问题速查
| 问题 | 解决方法 |
|---|---|
soffice: command not found |
检查是否安装成功,或使用 find /usr -name soffice 查找路径 |
| 中文转 HTML 出现方块/乱码 | 确保已安装 fonts-noto-cjk,或补充安装 fonts-wqy-zenhei |
| 转换无报错但无输出文件 | 检查 --outdir 目录是否可写 |
| 例子:PHP 调用 soffice 失败(程序已装好,但接口仍报错) | 检查 PHP 配置文件 php.ini 中的 disable_functions 是否禁用了 exec 或 shell_exec。查看命令: `php -i |
六、安装完成
执行完以上步骤,LibreOffice 即可供 PHP/Python/Java 等后端程序通过 exec / shell_exec 调用,用于 Word 文档的无界面转换。
原创整理,转载注明出处。