New error (Prince v.9)
Hi,
I have a very stable application of Prince that's been working fine with no tweaking for a couple of years, most recently, successfully, around mid-December. Today I tried to generate a PDF file in the usual way and it failed with the error log messages:
Array(3)
(
| ['0']=>Array(3)
| (
| | ['0']=String(3)"wrn"
| | ['1']=String(52)"
https://www.fearringtonfha.org/newprint/printing.css"
| | ['2']=String(70)"Unknown SSL protocol error in connection to www.fearringtonfha.org:443"
| )
| ['1']=>Array(3)
| (
| | ['0']=String(3)"wrn"
| | ['1']=String(55)"
https://www.fearringtonfha.org/newprint/princefonts.css"
| | ['2']=String(70)"Unknown SSL protocol error in connection to www.fearringtonfha.org:443"
| )
| ['2']=>Array(3)
| (
| | ['0']=String(3)"err"
| | ['1']=String(0)""
| | ['2']=String(18)"no available fonts"
| )
)
Can you provide any clues about what's going on? I did download the XHTML file that threw the error onto my desktop, and Prince 11 converted it without complaints. You might recall a (long) while ago I tried to install version 11 on my server to be called from a PHP program and ran into a wall - error stopped it for executing but I don't have console access so couldn't figure out what the errors were, and juust stuck with version 9 on the server.
Thanks.
It looks like the remote host has upgraded its SSL certificate/version to one that Prince 9 does not support, it may be necessary to try upgrading Prince on the server again.
Thanks for the advice, Mike. Before I undertake this, is there a simple method, say using cPanel, for me to tell for sure that they've upgraded the cert?
Aw, never mind, I found the cert, which is valid 12/5/17-3/5/18. Yet this application of Prince worked find around Dec. 20 when I know it was last used.
Perhaps it was due to a library upgrade on the server rather than a certificate change.
Mike, I have downloaded v 11.3. Is there any way I can install it without running install.sh, i.e., by copying files only? I'm not sure my service provider will grant root access on a shared server.
Thanks.
Actually the install script does not require root access to run if you are installing into your local directory.
OK. I guess I will need to set up a secure terminal connection, which is where I got stuck last time. I can't see how I can make this work. I started reading the "Getting Started" section of the User Guide and it's like reading Klingon (which I don't read).
Is there somewhere I can look to see a generic Unix install within /usr ? If I can unpack the files and move them around to the correct directories I can avoid trying to execute unfamiliar, this-can-blow-up-in-your-face command line code.
You could install it in your home directory on a local machine, then tar up that directory and copy it to the server, that should be easier.
OK, will have to install a Linux distro on a virtual machine. Will any old Ubuntu do?
Yes, although ideally it would be nice to have the same environment as the server, then you could use it for testing if necessary.
I am at long last logged into my server from Windows 7 using PuTTY. I have installed Prince, although not in it's proper directory, I'm sure. I have checked permissions (all seem to be 755) but I can't get the Bourne Shell to execute Prince. Please see screen shot. I am not trying to execute with the script, bust trying to get a response of any kind from the executable. I'm sure this is some trivial Linux thing I'm overlooking, and sorry to bother you with it, but thanks for and suggestions.
- screen.5.jpg 181.1 kB
Try "./prince", as the current directory is not always in the PATH.
Worked, with errors. Went back up the directory tree to find the shell script prince11. which reads
#! /bin/sh
exec "/home/fearrin1/usr/prince-11.3/lib/prince/bin/prince" --prefix="/home/fearrin1/usr/prince-11.3/lib/prince" "$@"
and got it to execute, but apparently missing stuff. See screen.7
- screen.7.jpg 349.0 kB
Do you know what Linux distribution is installed on the server? eg. if you run "lsb_release -a" or check /etc/redhat-release.
The lsb_release "command not found". There is no /etc/redhat-release directory. Last time I asked they were running CentOS, 6.5 IIRC. I can not install using sudo yum b/c my site is on a shared server and they don't allow changes. I'm a little surprised that they let me browse around outside my home directory, even, e.g., to the /usr and /etc directories. My home directory is /home/fearrin1 and, e.g., my website is in /home/fearrin1/public_html.
We have .tar.gz packages for CentOS 6 which can be installed without root access or yum, and there is the generic Linux package which has fewer library dependencies if there are some libraries missing on the server.
I installed prince-11.3-linux-generic-x86_64.tar.gz. Would you recommend something different?
The CentOS 6 package would be best to try; unfortunately it's quite difficult to make a single package that works on every single Linux distribution due to library compatibility issues.
If you run "rpm -qa | grep libxml" it should show which version of libxml2 is installed, that will help.
rpm or ./rpm - command not found. I got into /lib64 and found all this:
fearrin1@siteground340 [/lib64]# ls
./ libisccfg.so.1.0.10*
../ libjasper.so@
.libcrypto.so.0.9.8e.hmac libjasper.so.1@
.libcrypto.so.6.hmac@ libjasper.so.1.0.0*
.libssl.so.0.9.8e.hmac libjpeg.so@
.libssl.so.6.hmac@ libjpeg.so.62@
8.15/ libjpeg.so.62.0.0*
ImageMagick-6.6.3/ libjs.so@
ImageMagick-6.8.3/ libjs.so.1*
ImageMagick-6.9.4/ libk5crypto.so@
aspell-0.60/ libk5crypto.so.3@
gconv/ libk5crypto.so.3.1*
gnupg/ libkeyutils-1.2.so*
gtk-2.0/ libkeyutils.so.1@
ld-2.5.so* libkrb5.so@
ld-linux-x86-64.so.2@ libkrb5.so.3@
libBrokenLocale-2.5.so* libkrb5.so.3.3*
libBrokenLocale.so.1@ libkrb5support.so@
libICE.so.6* libkrb5support.so.0@
libICE.so.6.3.0* libkrb5support.so.0.1*
libMagickCore-6.Q16.la* liblber-2.3.so.0@
libMagickCore-6.Q16.so@ liblber-2.3.so.0.2.31*
libMagickCore-6.Q16.so.1@ liblcms.so.1*
libMagickCore-6.Q16.so.1.0.0* liblcms.so.1.0.18*
libMagickCore-6.Q16.so.2@ libldap-2.3.so.0@
libMagickCore-6.Q16.so.2.0.0* libldap-2.3.so.0.2.31*
libMagickCore.so.4@ libldap.so@
libMagickCore.so.4.0.0* libldap_r-2.3.so.0@
libMagickWand-6.Q16.la* libldap_r-2.3.so.0.2.31*
libMagickWand-6.Q16.so@ libldap_r.so@
libMagickWand-6.Q16.so.1@ libltdl.so@
libMagickWand-6.Q16.so.1.0.0* libltdl.so.3@
libMagickWand-6.Q16.so.2@ libltdl.so.3.1.4*
libMagickWand-6.Q16.so.2.0.0* liblwres.so.9@
libMagickWand.so.4@ liblwres.so.9.2.0*
libMagickWand.so.4.0.0* liblzma.so.0@
libORBit-2.so.0* liblzma.so.0.0.0*
libORBit-2.so.0.1.0* libm-2.5.so*
libSM.so.6* libm.so.6@
libSM.so.6.0.0* libmagic.so.1@
libSegFault.so* libmagic.so.1.0.0*
libWand.so.10@ libmcrypt.so@
libWand.so.10.0.3* libmcrypt.so.4@
libX11.so.6@ libmcrypt.so.4.4.8*
libX11.so.6.2.0* libmenu.so.5@
libXau.so.6@ libmenu.so.5.5*
libXau.so.6.0.0* libmenuw.so.5@
libXcursor.so.1@ libmenuw.so.5.5*
libXcursor.so.1.0.2* libmhash.so@
libXdmcp.so.6@ libmhash.so.2@
libXdmcp.so.6.0.0* libmhash.so.2.0.0*
libXext.so.6* libmysqlclient.so@
libXext.so.6.4.0* libmysqlclient.so.15@
libXfixes.so.3@ libmysqlclient.so.15.0.0*
libXfixes.so.3.1.0* libmysqlclient.so.15.0.0-BACKUP*
libXi.so.6@ libmysqlclient.so.16@
libXi.so.6.0.0* libmysqlclient.so.16.0.0*
libXinerama.so.1@ libmysqlclient.so.16.0.0-BACKUP*
libXinerama.so.1.0.0* libmysqlclient.so.18@
libXpm.so.4@ libmysqlclient.so.18.0.0*
libXpm.so.4.11.0* libmysqlclient.so.18.0.0-BACKUP*
libXrandr.so.2@ libmysqlclient_r.so@
libXrandr.so.2.0.0* libmysqlclient_r.so.15@
libXrender.so.1* libmysqlclient_r.so.15.0.0*
libXrender.so.1.3.0* libmysqlclient_r.so.15.0.0-BACKUP*
libXt.so.6* libmysqlclient_r.so.16@
libXt.so.6.0.0* libmysqlclient_r.so.16.0.0*
libacl.so.1@ libmysqlclient_r.so.16.0.0-BACKUP*
libacl.so.1.1.0* libncurses.so@
libanl-2.5.so* libncurses.so.5@
libanl.so.1@ libncurses.so.5.5*
libaspell.so@ libncursesw.so.5@
libaspell.so.15@ libncursesw.so.5.5*
libaspell.so.15.1.3* libnetpbm.so.10@
libatk-1.0.so.0@ libnetpbm.so.10.35*
libatk-1.0.so.0.1212.0* libnghttp2.so@
libattr.so.1@ libnghttp2.so.14@
libattr.so.1.1.0* libnghttp2.so.14.10.0*
libaudit.so.0@ libnsl-2.5.so*
libaudit.so.0.0.0* libnsl.so.1@
libavahi-client.so.3* libnspr4.so*
libavahi-client.so.3.2.1* libnss3.so*
libavahi-common.so.3* libnss_compat-2.5.so*
libavahi-common.so.3.4.3* libnss_compat.so@
libavahi-glib.so.1* libnss_compat.so.2@
libavahi-glib.so.1.0.1* libnss_db-2.2.so*
libbfd-2.17.50.0.6-14.el5.so* libnss_db.so@
libbind9.so.0@ libnss_db.so.2@
libbind9.so.0.0.11* libnss_dns-2.5.so*
libbz2.so@ libnss_dns.so@
libbz2.so.1@ libnss_dns.so.2@
libbz2.so.1.0.3* libnss_files-2.5.so*
libc-2.5.so* libnss_files.so@
libc-client.so.1* libnss_files.so.2@
libc.so.6@ libnss_hesiod-2.5.so*
libcairo.so.2* libnss_hesiod.so@
libcairo.so.2.9.2* libnss_hesiod.so.2@
libcap.so.1* libnss_ldap-2.5.so*
libcap.so.1.10* libnss_ldap.so@
libcidn-2.5.so* libnss_ldap.so.2@
libcidn.so.1@ libnss_nis-2.5.so*
libcom_err.so.2@ libnss_nis.so@
libcom_err.so.2.1* libnss_nis.so.2@
libcroco-0.6.so.3* libnss_nisplus-2.5.so*
libcroco-0.6.so.3.0.1* libnss_nisplus.so@
libcrypt-2.5.so* libnss_nisplus.so.2@
libcrypt.so.1@ libnss_winbind.so@
libcrypto.so.0.9.8e* libnss_wins.so@
libcrypto.so.10@ libnssckbi.so*
libcrypto.so.4@ libnssutil3.so*
libcrypto.so.6@ libpam.so.0@
libcups.so.2* libpam.so.0.81.5*
libcupsimage.so.2* libpanel.so@
libcurl.so@ libpanel.so.5@
libcurl.so.3@ libpanel.so.5.5*
libcurl.so.3.0.0* libpanelw.so.5@
libcurl.so.4@ libpanelw.so.5.5*
libcurl.so.4.4.0* libpango-1.0.so.0*
libdb-4.3.so* libpango-1.0.so.0.1400.9*
libdbus-1.so.3* libpangocairo-1.0.so.0*
libdbus-1.so.3.4.0* libpangocairo-1.0.so.0.1400.9*
libdbus-glib-1.so.2* libpangoft2-1.0.so.0*
libdbus-glib-1.so.2.1.0* libpangoft2-1.0.so.0.1400.9*
libdl-2.5.so* libpcre.so.0@
libdl.so.2@ libpcre.so.0.0.1*
libdns.so.26@ libpcrecpp.so.0@
libdns.so.26.0.2* libpcrecpp.so.0.0.0*
libecpg.so.6@ libpcreposix.so.0@
libecpg.so.6.1* libpcreposix.so.0.0.0*
libecpg_compat.so.3@ libpdf.so@
libecpg_compat.so.3.1* libpdf.so.2@
libedit.so@ libpdf.so.2.2.1
libedit.so.0@ libperl.so*
libedit.so.0.0.27* libpgtypes.so.3@
libenchant.so@ libpgtypes.so.3.1*
libenchant.so.1@ libplc4.so*
libenchant.so.1.4.2* libplds4.so*
libexpat.so.0@ libpng12.so@
libexpat.so.0.5.0* libpng12.so.0@
libexslt.so@ libpng12.so.0.10.0*
libexslt.so.0@ libpopt.so.0*
libexslt.so.0.8.13* libpopt.so.0.0.0*
libexslt.so.0.8.15* libpq.so@
libext2fs.so.2@ libpq.so.4@
libext2fs.so.2.4* libpq.so.4.1*
libfcgi++.so* libpq.so.5@
libfcgi++.so.0* libpq.so.5.2*
libfcgi++.so.0.0.0* libpspell.so@
libfcgi.so* libpspell.so.15@
libfcgi.so.0* libpspell.so.15.1.3*
libfcgi.so.0.0.0* libpthread-2.5.so*
libffi.so.5@ libpthread.so.0@
libffi.so.5.0.6* libpython2.4.so.1.0*
libfftw3.so.3@ libpython2.7.so@
libfftw3.so.3.2.4* libpython2.7.so.1.0@
libfontconfig.so.1@ libreadline.so@
libfontconfig.so.1.1.0* libreadline.so.5@
libform.so.5@ libreadline.so.5.1*
libform.so.5.5* libresolv-2.5.so*
libformw.so.5@ libresolv.so.2@
libformw.so.5.5* librsvg-2.so.2@
libfreebl3.chk librsvg-2.so.2.16.1*
libfreebl3.so* librt-2.5.so*
libfreetype.so@ librt.so.1@
libfreetype.so.6@ libruby.so.1.8@
libfreetype.so.6.3.10* libruby.so.1.8.5@
libgcc_s-4.1.2-20080825.so.1* libsablot.so@
libgcc_s.so.1@ libsablot.so.0@
libgconf-2.so.4* libsablot.so.0.100.3*
libgconf-2.so.4.1.0* libsasl2.so@
libgcrypt.so@ libsasl2.so.2@
libgcrypt.so.11@ libsasl2.so.2.0.22*
libgcrypt.so.11.5.2* libselinux.so.1*
libgd.so.2@ libsepol.so.1*
libgd.so.2.0.0* libslang.so.2@
libgdbm.so.2@ libslang.so.2.0.6*
libgdbm.so.2.0.0* libsmime3.so*
libgdk-x11-2.0.so.0@ libsoftokn3.chk
libgdk-x11-2.0.so.0.1000.4* libsoftokn3.so*
libgdk_pixbuf-2.0.so.0@ libsqlite3.so.0@
libgdk_pixbuf-2.0.so.0.1000.4* libsqlite3.so.0.8.6*
libglib-2.0.so.0@ libssh2.so.1*
libglib-2.0.so.0.1200.3* libssl.so.0.9.8e*
libgmodule-2.0.so.0@ libssl.so.10@
libgmodule-2.0.so.0.1200.3* libssl.so.4@
libgnomevfs-2.so.0* libssl.so.6@
libgnomevfs-2.so.0.1600.2* libssl3.so*
libgnutls.so.13* libstdc++.so.6@
libgnutls.so.13.0.6* libstdc++.so.6.0.8*
libgobject-2.0.so.0@ libt1.so@
libgobject-2.0.so.0.1200.3* libt1.so.5@
libgomp.so.1@ libt1.so.5.1.1*
libgomp.so.1.0.0* libt1x.so@
libgpg-error.so@ libt1x.so.5@
libgpg-error.so.0@ libt1x.so.5.1.1*
libgpg-error.so.0.3.0* libtermcap.so.2@
libgs.so@ libtermcap.so.2.0.8*
libgs.so.8@ libthread_db-1.0.so*
libgs.so.8.15* libthread_db.so.1@
libgs.so.8.70* libtidy-0.99.so.0@
libgsf-1.so.114* libtidy-0.99.so.0.0.0*
libgsf-1.so.114.0.1* libtiff.so.3*
libgssapi_krb5.so@ libtiff.so.3.8.2*
libgssapi_krb5.so.2@ libusb-0.1.so.4@
libgssapi_krb5.so.2.2* libusb-0.1.so.4.4.4*
libgthread-2.0.so.0* libutil-2.5.so*
libgthread-2.0.so.0.1200.3* libutil.so.1@
libgtk-x11-2.0.so.0@ libwmflite-0.2.so.7@
libgtk-x11-2.0.so.0.1000.4* libwmflite-0.2.so.7.0.1*
libhistory.so@ libxml2.so@
libhistory.so.5@ libxml2.so.2@
libhistory.so.5.1* libxml2.so.2.6.23*
libicudata.so@ libxml2.so.2.6.26*
libicudata.so.36@ libxml2.so.2.7.7*
libicudata.so.36.0* libxml2.so.2.7.8*
libicui18n.so@ libxslt.so@
libicui18n.so.36@ libxslt.so.1@
libicui18n.so.36.0* libxslt.so.1.1.17*
libicuio.so@ libxslt.so.1.1.26*
libicuio.so.36@ libz.so@
libicuio.so.36.0* libz.so.1@
libicuuc.so@ libz.so.1.2.3*
libicuuc.so.36@ libzzip-0.so.13@
libicuuc.so.36.0* libzzip-0.so.13.0.49*
libidn.so@ openssl/
libidn.so.11@ pam_ldap.so*
libidn.so.11.5.19* perl5@
libijs-0.35.so* perl5.8.8@
libijs.so@ python2.4@
libisc.so.15@ rtkaio/
libisc.so.15.0.2* ruby@
libisccc.so.0@ security/
libisccc.so.0.2.3* x86_64@
libisccfg.so.1@
(Sorry for the clutter.)
It seems most of the libraries that the CentOS 6 package requires are there, except for libgif; I'm not sure what's the best way to handle that if you can't install new libraries, I will check.
I installed giflib last time around in my usr/lib directory. Does that help?
- screen.8.jpg 27.7 kB
Yes it might! Setting the LD_LIBRARY_PATH environment variable to this directory should allow Prince to find it. So I would suggest installing the Prince tar.gz package for CentOS 6 and seeing how it goes.
OK, will do. I'll resume the quest tomorrow as I'm a bit knackered right now. Thanks for being so dogged about helping me, Very much appreciated.
Mike,
Back at it, and thanks again for bearing with me.
I installed the CentOS 6 64-bit tar.gz in /home/fearrin1/usr/prince-11.3, and in this directory I ran
./prince --help
and got one error message about missing libgif.so.4 - see
1st_test.jpg. I do have the libgif files in another directory - /home/fearrin1/usr/lib/giflib - see
giflib.jpg. So can I set the LD_LIBRARY_PATH variable in the prince shell script, which now reads
#! /bin/sh
exec "/home/fearrin1/usr/prince-11.3/lib/prince/bin/prince" --prefix="/home/fearrin1/usr/prince-11.3/lib/prince" "$@"
?
- 1st_test.jpg 124.4 kB
- giflib.jpg 108.0 kB
Found an earlier script and changed prince shell script to
#! /bin/sh
export LD_LIBRARY_PATH="/home/fearrin1/usr/lib/giflib"
exec "/home/fearrin1/usr/prince-11.3/lib/prince/bin/prince" --prefix="/home/fearrin1/usr/prince-11.3/lib/prince" "$@"
Produced a new error. See attached.
- File_Too_Short.jpg 57.0 kB
That's a weird one, is the libgif.so.4 a symbolic link to another .so file or just a zero-length regular file?
I think it's a pointer. Contents:
libgif.so.4.1.6
with no line terminator. And libgif.so.4.1.6 is a file with 40.16 KB in it.
Above, in an earlier post, is a screen shot "giflib.jpg", that shots the contents of the library. Permissions are all 644. Should they be 755?
I suspect the symbolic links are broken by the upload; if you have shell access you can fix them by deleting the 15 byte files and recreating them like this:
ln -s libgif.so.4.1.6 libgif.so.4
ln -s libgif.so.4.1.6 libgif.so
ln -s libungif.so.4.1.6 libungif.so.4
Well, inched a little closer. I googled the error and it seems to indicate that i need to find a 64-bit version of giflib somewhere. Don't bother to respond to this unless you have a resource at your fingertips. Google knows all (I hope!)
- Wrong-ELF-Class.jpg 50.7 kB
Well, this doesn't feel like progress. This version is using the CentOS tar.gz. Think the generic might work better?
- More library errors.jpg 511.6 kB
Hmm I think this server is not really running CentOS, or at least not any usual version of CentOS; we don't experience any difficulty installing on a regular CentOS 6.5 installation.
Is the uname command available? Does "uname -a" produce any output?
Yes. See attached. It doesn't look like CentOS, but tht's what they said they were running a couple of years ago.
- uname.jpg 43.8 kB
Mike-
I installed the generic Linux version into /home/fearrin1/usr/prince-11.3G and it gave fewer errors, but errors still. I'm stuck.
Jim
- Generic.jpg 407.7 kB
I think we will have to make a custom build of Prince to support this distribution. Would you be able to run "ldd --version"?
I couldn't run it and Siteground posted the following reply:
The lld command is used to compile code on the server. Usually for c or c++ applications which are not supported on our servers and thus the lld command is not available on our Shared server as the one you are using.
Do they say anything about what Linux version is installed on the server?
They said CentOS release 6.5 (Final)
By the way the earlier command was "ldd" not "lld"?
Good catch, but ldd was also "not found". Sorry.
Okay how about try running /lib64/libc.so.6 that should dump information about itself.
That seems to have provided useful information.
- libc.so.6.jpg 153.1 kB
Thanks! We have created a generic Linux package for glibc 2.5 systems, could you give this a try and see if it works:
prince-11.3.1-linux-generic-glibc2.5-x86_64.tar.gz
Thanks Mike, After installing this version I was able to run "prince --help" from my PuTTY terminal. There are two warning messages at the top of the attached screen shot - I can't tell if they will effect my PHP application.
Also, FYI, the prince bash script was created (in all the versions I have installed) with 0644 permissions, so I have to manually change it to 0755. Not a problem, just thought you might want to know.
- prince --help.jpg 349.3 kB
Progress! We will investigate the GC warnings.
For what it's worth I uploaded an HTML file test.html and tried running prince through the terminal. Result:
fearrin1@siteground340 [~/usr/prince-11.3.1FHA]# ./prince ~/public_html/newprint/test.html
GC Warning: pthread_getattr_np or pthread_attr_getstack failed for main thread
GC Warning: Couldn't read /proc/stat
Fontconfig error: Cannot load default config file
fearrin1@siteground340 [~/usr/prince-11.3.1FHA]#
The prince bash script looks like this:
#! /bin/sh
export LD_LIBRARY_PATH="/home/fearrin1/usr/lib/giflib"
exec "/home/fearrin1/usr/prince-11.3.1FHA/lib/prince/bin/prince" --prefix="/home/fearrin1/usr/prince-11.3.1FHA/lib/prince" "$@"
It may be necessary to use the --no-system-fonts option and specify the fonts you wish to use explicitly with @font-face rules, being careful to setup a default "serif" font as described here:
http://www.princexml.com/doc/redefining-font-families/#redefining-font-families
First of two applications works!I made some mods to the PHP wrapper to set --no-system-fonts in the command line ($cmdline) and to print (echo) the completed $cmdline if on Verbose or Debug mode. I did NOT add any @font-face rules, but the generated PDF file looks good.
I need to make the same mods to the front-end of my other major app, a community directory, and if that works, I'm home free and you guys will be rid of me. Will let you know.
- debug_printout.pdf 33.8 kB
- nl_distrib_order166452.pdf 376.6 kB
- prince.php 37.1 kB
Showing 1 - 50 of 53