Centos下安裝類百度文庫環境

使用php實現百度文庫功能,網上搜索到的方案,實現doc轉pdf,pdf轉swf,而後顯示出來。 php

這裏簡單的記錄下,【doc轉pdf,pdf轉swf】兩個功能的搭建流程。 html

doc轉pdf

使用到下列程序(文件): java

  1. Apache OpenOffice
  2. 字體文件(windows系統C:\Windows\Fonts目錄下的文件)
  3. JAVA環境(>=1.6)
  4. jodconverter

實現原理:調用jodconverter的包轉換doc爲pdf,而jodconverter會去鏈接OpenOffice的soffice服務,實現轉換。 linux

二者在運行時都須要java環境的支持!而字體文件能夠解決doc轉爲pdf時中文亂碼問題! nginx

字體文件須要自行打包Windows系統下字體文件(也許能夠所有打包),先上傳到服務器上,後面會用到,假設文件名爲fonts.zip vim

安裝java環境 windows

JAVA環境的安裝很簡單,首先須要確認下系統中是否安裝了java,而且確認java版本>=1.6。 安全

#直接輸入java -version
java -version

#若是安裝了java,將會顯示java的版本,若是麼有,那趕忙安裝吧!

安裝方法可使用yum安裝,或者在java.com上下載rpm包、解壓即用的壓縮包。這裏我使用解壓即用的壓縮包。 bash

java.com界面截圖: 服務器

image

我把文件放在/opt/java/jre下,那麼能夠這樣來顯示下java的版本:

/opt/java/jre/bin/java –version

添加環境變量:

vim /etc/profile

#在文件內容最後寫上:
 PATH=/opt/java/jre/bin:$PATH
 export PATH

#保存退出後,使用source使環境變量當即生效
source /etc/profile

這樣java環境的搭建就完成了!

安裝openoffice

注意,最新的openoffice 3.4.1版本再也不捆綁java環境,因此須要手動搭建java環境。

首先,下載最新的openoffice安裝包,地址:http://www.openoffice.org/download/other.html#tested-full,選擇適合本身的版本:

安裝包大概140多M大小,我選擇的簡體中文,Linux86_64 RPM包的文件名爲:Apache_OpenOffice_incubating_3.4.1_Linux_x86-64_install-rpm_zh-CN.tar.gz

安裝其實很是的簡單:

#進入解壓後的RPMS目錄
cd /opt/setup/openoffice-setup/zh-CN/RPMS

#使用rpm命令安裝
rpm -ivh *.rpm

安裝截圖:

默認安裝在/opt目錄下,有兩個文件夾:openoffice.org和openoffice.org3。

如今咱們須要把已經準備好的字體文件fonts.zip解壓到這個目錄下:/opt/openoffice.org/basis3.4/share/fonts/truetype

解壓完成後,OpenOffice環境就已經完成了,如今讓咱們來啓動openoffice。

我在/opt/openoffice.org3/目錄下新建了文件:sofficed。

內容爲:

#! /bin/bash
/opt/openoffice.org3/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &

記得修改sofficed文件的權限爲755,便於程序調用執行!

#啓動openoffice
/opt/openoffice.org3/sofficed

#將上面的命令寫入/etc/rc.local文件中,便可開機啓動了!

檢查是否成功啓動:

#進程查看
ps -ef | grep soffice

#端口查看
netstat -tunlp | grep 8100

若能看到soffice相關信息便成功了!

安裝jodconverter

此貨的安裝也很簡單,下載安裝包,解壓便可!

下載地址:http://sourceforge.net/projects/jodconverter/files/JODConverter/

我把文件放在了/opt/jodconverter下。

測試doc轉pdf

固然了,首先得準備一個doc文件,而後使用下面這個命令測試:

java -jar /opt/jodconverter/lib/jodconverter-cli-2.2.2.jar doc文件路徑 pdf文件路徑

下載生成的pdf文件,打開看看吧。

pdf轉swf

使用到的程序(文件)

  1. swftool
  2. xpdf-chinese-simplified
  3. font.zip

pdf轉swf的過程相對簡單一點,只須要調用swftool程序的pdf2swf程序,xpdf-chinese-simplified和font.zip能夠解決中文亂碼問題!

swftool程序須要編譯安裝,這裏先固定一下安裝目錄爲:/opt/swftool。

字體文件安裝

下載xpdf-chinese-simplified和font.zip文件,而後解壓。

mkdir /opt/swftool

cd /opt/swftool

wget ftp://ftp.foolabs.com/pub/xpdf/xpdf-chinese-simplified.tar.gz
wget http://www.nginxs.com/download/font.zip

#解壓兩個壓縮包
tar zxvf xpdf-chinese-simplified.tar.gz

unzip font.zip 

#將font.zip解壓出來的兩個字體文件移到xpdf-chinese-simplified/CMap/目錄下
mv Gbsn00lp.ttf gkai00mp.ttf xpdf-chinese-simplified/CMap/

#修改xpdf-chinese-simplified目錄下的add-to-xpdfrc文件,內容以下:
cidToUnicode    Adobe-GB1       /opt/swftool/xpdf-chinese-simplified/Adobe-GB1.cidToUnicode
unicodeMap      ISO-2022-CN     /opt/swftool/xpdf-chinese-simplified/ISO-2022-CN.unicodeMap
unicodeMap      EUC-CN          /opt/swftool/xpdf-chinese-simplified/EUC-CN.unicodeMap
unicodeMap      GBK             /opt/swftool/xpdf-chinese-simplified/GBK.unicodeMap
cMapDir         Adobe-GB1       /opt/swftool/xpdf-chinese-simplified/CMap
toUnicodeDir                    /opt/swftool/xpdf-chinese-simplified/CMap
displayCIDFontTT Adobe-GB1      /opt/swftool/xpdf-chinese-simplifies/CMap/gkai00mp.ttf

字體文件安裝完成。

Swftool安裝

首先安裝下swftool必要的插件程序

yum install zlib-devel libjpeg-devel giflib-devel freetype-devel

若是安裝過了,自動忽略掉,只安裝沒有的。

開始安裝swftool:

tar vxzf swftools-2012-10-15-1307.tar.gz

cd swftools-2012-10-15-1307

./configure --prefix=/opt/swftool

make

make install

若是沒有異常信息,那就ok了。

測試pdf轉swf

使用這個命令測試,一樣在使用php代碼時也能夠這麼調用:

/opt/swftool/bin/pdf2swf -o swf文件路徑 -T -z -t -f pdf文件路徑 -s languagedir=/opt/swftool/xpdf-chinese-simplified -s flashversion=9

須要注意languagedir這個參數。

其餘的好像沒什麼了,就這麼簡單。

參考了這些文章:http://www.itokit.com/2012/0914/74747.html

關於PHP中執行exec函數

若是開啓了Selinux,那麼在exec函數中調用/var/www/html外的文件很容易被禁止,致使exec函數執行失敗。

關閉Selinux:

#臨時關閉
setenforce 0

#永久關閉
vim /etc/sysconfig/selinux
#將SELUNX的值修改成disabled,重啓生效
SELINUX=disabled
不關閉selinux,那麼就要修改所調用文件的安全環境上下文。

這裏調用java時被selinux阻止了,那麼能夠這麼作:

cd /opt

#將java目錄的安全環境上下文還原
restorecon -R -v java
這樣Seliux就不會再阻止httpd程序訪問java程序了。
相關文章
相關標籤/搜索