Марат-блог
Услуги по продвижению и разработке сайта
Отправить заявку
Заказать обратный звонок

Спасибо, Ваша заявка принята.

В ближайшее время менеджер свяжется с Вами.

Главная Инструкции PHP Установка PDFlib PHP5 на сервер CPanel

Установка PDFlib PHP5 на сервер CPanel

Установка которая описана ниже для версии PHP 5.

Далее описано подробно как установить PDFlib на сервер Linux по управлением CPanel, а так же без проблем можно установить PDFlib если у вас нет WHM/CPanel.

1. Заходим на сервер по средством SSH

[/]# cd /usr/local/src/

2. Заходим на оф. сайт http://www.pdflib.com и скачиваем пакет PDFlib Lite

Качаем PDFlib Lite 7 для Linux системы
http://www.pdflib.com/download/pdflib-family/pdflib-lite-7/

На данные момент это PDFlib Lite 7.0.5

[/]# wget http://www.pdflib.com/binaries/PDFlib/705/PDFlib-Lite-7.0.5.tar.gz

3. Распаковываем и устанавливаем PDFlib Lite

[/]# tar xvzf PDFlib-Lite-7.0.5.tar.gz
[/]# cd PDFlib-Lite-7.0.5/
[/]# ./configure
[/]# make
[/]# make install

4. Устанавливаем расширение pdflib для PHP

[/]# pecl install pdflib

Когда у вас спросить, куда установить PDFlib (Path to PDFlib installation?)
указываем /usr/local/

[/]# Path to PDFlib installation? /usr/local/

Если при инсталляции выдало ошибку,
.....
checking whether the C compiler works... configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details.
ERROR: `/root/tmp/pear/pdflib/configure --with-pdflib=/usr/local/' failed

то не расстраивайтесь, тогда делаем так:

[/]# cd /root/tmp/pear/cache/
[/]# rm -rf pdflib-2.1.8/
*[/]# tar -zxvf pdflib-2.1.8.tgz
*[/]# cd pdflib-2.1.8/
*[/]# phpize
*[/]# ./configure --with-pdflib=/usr/local/
*[/]# make
*[/]# make install

или скачиваем с сервера PECL : http://pecl.php.net/package/pdflib
[/]# cd /usr/local/src/
[/]# wget http://pecl.php.net/get/pdflib-2.1.8.tgz
Как установить, написано чуть раннее
начиная с *[/]# tar -zxvf pdflib-2.1.8.tgz (помеченное звездочкой * )
.....

Процесс установки должен пройти без проблем.

5. Добавляем расширение pdf.so для PHP в ваш файл php.ini

Если вы не знаете где находится ваш php.ini файл, то смотрим путь так:
[/]# php -i | grep php.ini
[/]# Configuration File (php.ini) Path => /usr/local/lib
[/]# Loaded Configuration File => /usr/local/lib/php.ini


[/]# vi /usr/local/lib/php.ini

Где то в конце файла, где другие расширения, добавляем :

extension=pdf.so

Сохраняем файл :wq и перезапускам апачь (Apache)

[/]# service httpd restart

Если все прошло успешно то установка на этом закончена.
теперь проверяем.

6. Проверяем наличие PDFlib

[/]# php -i | grep PDF
[/]# PDF Support => enabled
[/]# PDFlib GmbH Version => 7.0.5

Если посмотреть через браузер, создать файл в выводом phpinfo
то будем видеть следующую картину

7. Тестовый пример работы библиотеки PDFLib

Примеры можете взять для теста с папки
[/]# /usr/local/src/PDFlib-Lite-7.0.5/bind/pdflib/php/examples.php5

т.е. там где был распакован архив PDFlib-Lite-7.0.5.tar.gz

Пример взят из файла hello.php

Обратите внимания! В начале строки кода PHP (примера ниже): не должно быть пустых строк и пробелов, т.е. код файла должен начинаться сразу с <?php ...., иначе не будет работать, ошибки типо "Warning: Cannot modify header information - headers already sent by (output ......"


<?php
/* $Id: hello.php,v 1.6.2.1 2008/04/06 17:55:03 rp Exp $
*
* PDFlib client: hello example in PHP
*/

try {
$p = new PDFlib();

# This means we must check return values of load_font() etc.
$p->set_parameter("errorpolicy", "return");

/* This line is required to avoid problems on Japanese systems */
$p->set_parameter("hypertextencoding", "winansi");

/* open new PDF file; insert a file name to create the PDF on disk */
if ($p->begin_document("", "") == 0) {
die("Error: " . $p->get_errmsg());
}

$p->set_info("Creator", "hello.php");
$p->set_info("Author", "Rainer Schaaf");
$p->set_info("Title", "Hello world (PHP)!");

$p->begin_page_ext(595, 842, "");

$font = $p->load_font("Helvetica-Bold", "winansi", "");
if ($font == 0) {
die("Error: " . $p->get_errmsg());
}

$p->setfont($font, 24.0);
$p->set_text_pos(50, 700);
$p->show("Hello world!");
$p->continue_text("(says PHP)");
$p->end_page_ext("");

$p->end_document("");

$buf = $p->get_buffer();
$len = strlen($buf);

header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=hello.pdf");
print $buf;

}
catch (PDFlibException $e) {
die("PDFlib exception occurred in hello sample:\n" .
"[" . $e->get_errnum() . "] " . $e->get_apiname() . ": " .
$e->get_errmsg() . "\n");
}
catch (Exception $e) {
die($e);
}

$p = 0;
?>


На кране будет PDF документ с текстом

Hello world!
(says PHP)