Установка модуля php5-readline в Debian 7 (wheezy)

Функции модуля readline представляют удобную работу с командной строкой из php-скриптов.

Установка данного модуля в Debian Linux имеет некоторые «хитрости».
И просто установить его командой apt-get install php5-readline не получится.

Итак, исходная система:
$ lsb_release -a

No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 7.3 (wheezy)
Release: 7.3
Codename: wheezy


Процесс установки.

  1. Установим php и, необходимые для успешной установки readline, модули:
    sudo apt-get install php5-dev php5-cli libedit-dev libreadline6-dev
    В данном случае я указываю только обязательные пакеты, не акцентируя внимания на других php-модулях.

  2. Далее, необходимо загрузить исходники php, чтобы скомпилировать модуль:
    cd /tmp && apt-get source php5-cli

    В результате будет выведена строка на подобии следующей:
    dpkg-source: инфо: извлечение php5 в php5-5.4.4

  3. Переходим в директорию с нужным расширением php:
    cd php5-5.4.4/ext/readline

  4. Компилируем его:
    sudo -s
    phpize && ./configure && make

    • Если компиляция прервется следующей ошибкой:
      /tmp/php5-5.4.4/ext/readline/readline_cli.c:64:26: fatal error: sapi/cli/cli.h: No such file or directory
      compilation terminated.
      make: *** [readline_cli.lo] Ошибка 1


      следует создать символическую ссылку:
      ln -s ../../sapi/

      и повторить комманду:
      phpize && ./configure && make


  5. После успешной компиляции будет выведено приблизительно следующее сообщение:
    Libraries have been installed in:
    /tmp/php5-5.4.4/ext/readline/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'.

  6. Можно устанавливать модуль:
    make install

    Результатом успешной установки будет строка вида:
    Installing shared extensions: /usr/lib/php5/20100525+lfs/

  7. Подключаем модуль к php:
    cat > /etc/php5/mods-available/readline.ini << EOF
    ; configuration for php Readline module
    ; priority=20
    extension=readline.so
    EOF

  8. Включаем модуль:
    php5enmod readline

  9. Проверяем успешность загруженности модуля в php:
    php -m | grep readline
    Результатом будет строка:
    readline


Поздравляю, установка модуля php5-readline в Debian GNU/Linux 7 (wheezy) успешно завершена!

Нужен верстальщик



Нужен талантливый верстальщик со знанием JS для самизнаетекакого проекта.
Желательно на долгосрочной основе. У
мение верстать адаптивно с поддержкой ретины будет огромным плюсом.

Портфолио (на github, free-lance etc.) и ссылки на несколько ваших работ с условиями сотрудничества (цена, сроки)
присылайте мне на почту jc.guru@gmail.com с темой: «верстка».

Подробное ТЗ пришлю выбранным кандидатам. За репост/твит отдельное спасибо.


    • jc_blog

    Getphotos — cервис покупки фотографий со стоков




    Getphotos — уникальный автоматический cервис покупки фотографий, видео и аудиоматериалов со
    всемирно известных стоков
    по восхитительно низким ценам.

    Несколько лет назад я наблюдал проблему, которая и по сегодняшний день остается актуальной.
    Речь идет о покупке материалов со стоков. Признайтесь, вы хоть раз, но затирали водяные знаки на
    фотографиях ;) Общеизвестно, что наиболее популярные стоки до сих пор не принимают привычные
    для жителей СНГ методы оплаты, а цены на материалы явно не соизмеримы с бюджетами среднего
    по рынку проекта.

    Тогда я и решил: пора брать дело в свои руки! С 2009 года я предоставляю услуги по покупке
    различного контента (чаще всего изображений) со стоков в ручном режиме. Но, ручной режим — это
    тоже ряд неудобств для обеих сторон.

    Сотни довольных покупателей, внушительное количество положительных отзывов клиентов и
    востребованность такого рода услуги вдохновили меня на нечто большее.

    Рад представить вашему вниманию небольшое превью долгожданного проекта, над которым мы с
    командой работаем уже длительное время. Именно он и призван решить эту проблему в полной мере.


    И хоть он еще в разработке, но мы стремительно приближаемся к дате релиза, и поэтому, предлагаем
    вам «занять места» заранее. Ведь наверняка вы захотите поучаствовать в бета-тесте.

    Если у вас творческая профессия или вы представляете бизнес, который нуждается в высококачественных
    материалах со всемирно известных стоков — наш проект для вас.

    Хотите покупать со стоков быстро, удобно и выгодно? Тогда посетите наш сайт и подпишитесь на
    обновления, чтобы узнать об открытии сервиса первым!


    P.S. Буду благодарен за репост или распространение этой новости в социальных сетях (ставить лайки
    лучше непосредственно с сайта).


    Aptana Studio 3 shortcuts (hotkeys)

    Просмотреть, установленные сочетания клавиш для IDE Aptana Studio, можно нажав комбинацию Ctrl + Shift + L. Двойное нажатие данного сочетания клавиш, откроет окно настроек, в котором можно будет, эти самые, сочетания изменить. Детальнее про шорткаты можно почитать в документации: wiki.appcelerator.org.

    Привожу все комбинации одним скрином — удобно для распечатки.
    aptana3-shortcuts-all

    Поддержка синтаксиса Smarty в Sublime Text 2

    Думаю, прекрасный редактор для написания кода, Sublime Text 2, не нуждается в представлении. Отмечу лишь, что это быстрый, простой, красивый и удобный редактор с поддержкой множества языков программирования. Правда, среди всех плюсов есть один «минус» — редактор платный.
    Из коробки поддержка синтаксиса шаблонизатора Smarty не включена. Чтобы ее включить, необходимо выполнить несколько действий.
    Для Windows путь к директории с пакетами c:\Users\<ИМЯ_ПОЛЬЗОВАТЕЛЯ>\AppData\Roaming\Sublime Text 2\Packages\. Если вы не можете найти директорию с пакетами, то пункт меню «Preferences -> Browse Packages» в программе, поможет вам. Далее по тексту путь будет указан относительно.
    Итак, чтобы включить подсветку синтаксиса нужно выполнить следующее:
    1. Скачать файл «Smarty.plist» и сохранить в «Packages\User\Smarty.tmLanguage».
    2. Далее открыть файл «Packages\HTML\HTML.tmLanguage» и в нем дважды удалить комментарии относящиеся к Smarty — последовательность символов «<!--» и «->». Ну и, естественно, сохраниться :)
    3. Возможно, что тема по умолчанию, не будет поддерживать подсветку синтаксиса, тогда можно переключиться на тему Twilight: «Preferences -> Color Scheme -> Twilight»
    4. Перезапусть редактор, если он был открыт.

    Вот как теперь выглядит шаблон:

    Подсветка синтаксиса шаблонизатора Smarty

    Как установить PECL-расширение во FreeBSD

    Что такое PECL и с чем его едят я коротко описал в предыдущем посте "Как установить PECL-расширение в Ubuntu"

    В ОС FreeBSD PECL-расширения очень просто устанавливаются из портов.
    Имя порта формируется по следующему принципу: pecl-<имя_pecl_пакета>.
    Например, если нужно установить пакет pecl_http, то имя порта будет pecl-http, или libevent - порт будет называться pecl-libevent.


    1. Задача.
    Установить необходимые расширения. В нашем случае это pecl_http
    Ошибка которую выдает веб-сервер и свидетельствует, что расширение не установлено, выглядит вот так:
    Fatal error: Call to undefined function http_get() in some_file.php on line xxx
    

    3. Исходная система.
    FreeBSD 8.2-RELEASE, Apache-2.2.17_1, PHP 5.3.8 и т.п.

    4. Процесс установки.
    1. Ищем необходимый пакет:
      whereis pecl-http
      Результат выдаст нам путь по которому находится порт pecl-http: /usr/ports/www/pecl-http

    2. Перейдем в директорию с портом:

      cd /usr/ports/www/pecl-http

    3. Произведем установку (не забываем, что ее необходимо выполнять от суперпользователя - root):

      # make install clean

    4. Если все пройдет без ошибок, то вы увидите на экране приблизительно следующую строку:

      ===> Cleaning for pecl-http.

      В файл /usr/local/etc/php/extensions.ini будет добавлена строка, подключающая библиотеку:
      extension=http.so
    5. Перезапустим веб-сервер Apache
      # apachectl restart

    Photoshop - сохранение результатов в формате .ico

    Иногда возникает необходимость сохранить результаты работы в формате .ico или .cur.
    И, к сожалению, штатными средствами Adobe Photoshop этого сделать не удастся.
    Но, как всегда, выход найдется :)
    Существует бесплатный плагин ICOFormat.
    Скачать можно отсюда. Существуют версии как для PC так и для Mac.

    Установка:
    1. Распаковать архив.
    2. Файл с расширением .8bi скопировать в C:\Program Files\Adobe\Photoshop\Plug-Ins\File Formats
    3. Запустить/перезапустить Photoshop
    Использование плагина:
    При сохранении файла (Ctrl+Shift+S) в поле тип файла выбираем ICO (Windows Icon) (*.ICO; *.CUR)
    Сохранение файла

    Как установить PECL-расширение в Ubuntu

    1. Лирическое отступление
    PECL (англ. PHP Extension Community Library) — это репозиторий модулей для PHP, написанных на C, доступных через систему пакетов PEAR. PECL был создан, когда возникла проблема удаления некоторых модулей из стандартной поставки PHP. Модули PECL разработаны в соответствии со стандартами кодирования, которые приняты командой разработчиков PHP
    Более подробно читаем здесь: Википедия, http://pecl.php.net/.

    2. Задача.
    Установить необходимые расширения. В моем случаее это pecl_http
    Ошибка которую выдает веб-сервер и свидетельствует, что расширение не установлено, выглядит вот так:
    Fatal error: Call to undefined function http_get() in some_file.php on line xxx
    


    3. Исходная система.
    Linux Ubuntu 10.10, Apache 2.2.16, PHP 5.3.3 и т.п.

    4. Процесс установки.

    1. Устанавливаем PEAR из репозиториев:
      sudo apt-get install php-pear

    2. При установке, нам будет предложено установить пакеты php5-dev и/или php4-dev. Устанавливаем:
      sudo apt-get install php5-dev

    3. sudo apt-get install libcurl3-openssl-dev

    4. После всего этого можно будет устанавливать pecl-библиотеки. Установим нужную нам библиотеку:
      sudo pecl install pecl_http

    5. Если всё прошло удачно, инсталятор выдаст следующее: You should add "extension=http.so" to php.ini.
      Это означает, что для подключения расширения к PHP необходимо внести данную строчку в файл /etc/php5/apache2/php.ini. Если возникли ошибки, смотрите ниже.

    6. Добавим строку в файл
      sudo echo "extension=http.so" >> /etc/php5/apache2/php.ini && sudo echo "extension=http.so" >> /etc/php5/cli/php.ini

    7. Перезапустим веб-сервер
      sudo /etc/init.d/apache2 restart или sudo /etc/init.d/httpd restart

    8. Если видим [OK], значит всё сделано верно.

    Внимание!
    Во время выполнения комманды в пункте №5 может возникнуть следующая ошибка: "Fatal error: Call to undefined method PEAR::raiseErro() in /usr/share/php/PEAR/REST.php on line 165";
    Решение:
    1. Узнаем какая директория используется PEAR для кеша. Выполним комманду:
    pear config-get cache_dir
    Результат: /tmp/pear/cache
    2. Вот этой директории и не хватает. Создаем её:
    sudo mkdir -p /tmp/pear/cache

    Поддержка Smarty в PDT

    SmartyPDT - плагин подсветки синтаксиса шаблонизатора Smatry.
    Его можно использовать в Zend Studio, Eclipse, Aptana.
    Внимание! Самая новая, на данный момент, версия (0.9.0) не совместима с Aptana 3 и Zend Studio 8. 

    Smartypdt

    Установка плагина:

    1. Качаем плагин: http://code.google.com/p/smartypdt/downloads/list
    2. Открываем любимую IDE (Zend Studio, Eclipse, Aptana)
    3. Пункт меню Help -> Install New Software
    2. Жмем кнопку «Add».., далее жмем кнопку «Archive» и выбираем скачанный .zip-архив;
    Чтобы плагин появился в списке доступных для установки, необходимо снять галочку «Group items by category»;
    После этого в списке появится выбор «Smarty Feature»

    Всё готово для установки.
    Жмем «Next-Next-Finish».
    Для того чтобы изменения вступили в силу, перезапускаем редактор.
    Теперь IDE «понимает» синтаксис Smarty и программировать становиться приятнее.