- установка из репозиториев;
- установка всех элементов в отдельности.
Первый метод конечно облегчает немного установку, но это того не стоит. Вот с чем мне собственно пришлось столкнуться. Когда мне понадобилось произвести установку на Debian. Я нашел руководство по установке, в котором описывался первый метод. Бегло прочитав его и уже успев обрадоваться (как оказалось в дальнейшем, ненадолго), я принялся выполнять в точности все этапы по установке библиотеки, описанные в руководстве. Нюансов не возникло. Вроде библиотека установилась и расширение для PHP тоже. Казалось, что все должно было работать. Но не тут то было. Сначала я подключил нейронную сеть, которую использовал на denvere. Но результат оказался нулевым. Оказалось, что не проходила даже инициализация самой библиотеки. Перечитав еще раз руководство по установке и аналогичные руководства с других ресурсов, я понимал, что все должно работать. Но в итоге ничего не работало. Два дня у меня ушло на решение проблемы с установкой. Когда все возможные варианты (а их было немного) были исчерпаны у меня “пронеслась” мысль, а что если дистрибутив из репозитариев самой библиотеки “битый”. И как оказалось в дальнейшем, так оно и было. Поэтому рекомендую вам использовать второй метод установки, в итоге все будет работать, и ваши нервы будут в полном порядке.
Начало установки
Для установки нам нужны следующие инструменты:
- программа make;
- компилятор gcc;
- утилита phpize из пакета php5-dev.
Если первые два инструмента могут уже быть проинсталлированы, то третий, скорее всего нет. Но мы на всякий случай проверим все три.
dpkg -l | grep make ii makedev 2.3.1-88 creates device files in /dev dpkg -l | grep gcc ii gcc-3.3-base 1:3.3.6-15 The GNU Compiler Collection (base package) ii gcc-4.1-base 4.1.2-25 The GNU Compiler Collection (base package) ii gcc-4.3-base 4.3.2-1.1 The GNU Compiler Collection (base package) ii libgcc1 1:4.3.2-1.1 GCC support library dpkg -l | grep php5-dev
Ну вот, как и следовало ожидать, у нас действительно ничего не проинсталлировано. До начала установки, желательно произвести обновление репозиториев. Для этого воспользуемся командой:
apt-get update
Теперь необходимо установить отсутствовавшие инструментарии:
apt-get install make apt-get install gcc apt-get install php5-dev
Далее необходимо получить информацию об архитектуре, чтобы знать какие пакеты библиотеки Fast Artificial Neural Network (хотя Debian не даст уставить пакеты с неподходящей архитектурой) устанавливать. Для этого используем команду:
uname –m
По результату видим, что сервер имеет архитектуру:
i686
Переходим в каталог /usr/local/src и скачиваем для архитектуры i686 следующие пакеты:
cd /usr/local/src wget http://ubuntu.mirror.cambrium.nl/ubuntu//pool/universe/libf/libfann1/ libfann1_1.2.0-1_i386.deb wget http://ubuntu.mirror.cambrium.nl/ubuntu//pool/universe/libf/libfann1/ libfann1-dev_1.2.0-1_i386.deb
Убедимся все ли скачалось:
ls -1 libfann1_1.2.0-1_i386.deb libfann1-dev_1.2.0-1_i386.deb
Теперь их необходимо установить в определенном порядке:
dpkg -i libfann1_1.2.0-1_i386.deb dpkg -i libfann1-dev_1.2.0-1_i386.deb
Установка расширения для PHP
Для того чтобы приступить установке расширения, его необходимо скачать:
wget http://pecl.php.net/get/fann
Проверим или архив на месте:
ls -1 fann
Далее его необходимо распаковать:
tar xvfz fann package.xml fann-0.1.1/config.m4 fann-0.1.1/fann.c fann-0.1.1/php_fann.h fann-0.1.1/demo.php fann-0.1.1/CREDITS fann-0.1.1/EXPERIMENTAL
Затем перейдем в каталог /usr/local/src/fann-0.1.1
cd fann-0.1.1
Все, осталось только все скомпилировать. Для начала необходимо выполнить команду phpize. Которая подготовит окружение PHP-расширения.
phpize Configuring for: PHP Api Version: 20090626 Zend Module Api No: 20090626 Zend Extension Api No: 220090626
Далее необходимо запустить скрипт configure.
./configure
Все, сейчас осталось собрать PHP расширение программой make.
make
Если вы увидите нечто похожее на следующие строки:
fann.c:393: error: 'zif_fannOO___set' undeclared (first use in this function) fann.c:393: error: (Each undeclared identifier is reported only once fann.c:393: error: for each function it appears in.) fann.c:403: error: Б-?zif_fannOO___getБ-? undeclared (first use in this function)
то нужно в файле php_fann.h закомментировать строку 28 #define PHP_FANN_OO 1. И повторить вызов программы make.
make libtool: install: cp ./.libs/fann.so /usr/local/src/fann-0.1.1/modules/fann.so libtool: install: cp ./.libs/fann.lai /usr/local/src/fann-0.1.1/modules/fann.la libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin: /sbin" ldconfig -n /usr/local/src/fann-0.1.1/modules ---------------------------------------------------------------------- Libraries have been installed in: /usr/local/src/fann-0.1.1/modules If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- Build complete. Don't forget to run 'make test'.
Все, расширение собрано и осталось его проинсталлировать:
make install Installing shared extensions: /usr/lib/php5/20090626/
Если вы добавили расширение в /etc/php5/cli/php.ini, то можно посмотреть подключен ли модуль следующей командой:
php -m | grep fann fann
Я лично стараюсь синхронизировать настройки сразу везде:
- /etc/php5/apache2/php.ini;
- /etc/php5/cgi/ php.ini;
- /etc/php5/cli/ php.ini.
Для того чтобы проверить работу библиотеки, требуется запустить модуль demo.php. Он находиться в каталоге /usr/local/src/fann-0.1.1.
Еще есть небольшой один нюанс. Возможно вы не сможете использовать сеть обученную в другой версии библиотеки Fast Artificial Neural Network, с этой библиотекой. Придется под Linux ее переобучать. Но ничего страшного в этом нет.
ссылка на оригинал статьи http://habrahabr.ru/post/178881/
Добавить комментарий