Firefox Java Plugin — Debian Wheezy

By default Firefox has no Java plugin because of security issues.
One can install plugin by following next steps:
0. Exit Firefox browser if it is running
1. Make directory if it does not exist -> /usr/lib/mozilla/plugins
2. Make a symbolic link for libnpjp2.so file which resides in JRE directory, e.g.:

sudo ln -s /usr/lib/jvm/jdk1.8.0_20/jre/lib/amd64/libnpjp2.so /usr/lib/mozilla/plugins/libnpjp2.so

Please note, that amd64 is an architecture of the OS you have installed, possibly it could be i386 in your case.
3. Start Firefox and type about:plugins in address box to check if browser able to see Java plugin.

Install proprietary Oracle JDK in Debian 7.0 Wheezy

This is a YAP (yet another post) about how one can manually install Oracle’s proprietary JDK/JRE version (in Debian 7.0 Wheezy as an example).

First of all, download fresh version of JDK/JRE from the Oracle website.
Copy archive to desired location, in the following example we will use

/usr/lib/jvm

as an installation source directory.
Unpack the archive and run next commands:

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk/bin/java 1071
sudo update-alternatives --install /usr/bin/javac javac /media/mydisk/jdk/javac 1071
sudo update-alternatives --install /usr/bin/jcontrol jcontrol /media/mydisk/jdk/bin/jcontrol 1071

You may need read man pages for update-alternatives to check out the parameters and what they mean.

Now, if you want freshly installed version of java/javac to be default in your system, run next commands:

sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config jcontrol

Follow the instructions issued by update-alternatives to select default version among the list of available installations.
After that, check if everything worked fine by issuing commands

java -version
javac -version

You should see 1.8.0 for both.

PHP 5.4 установка из DotDeb

Если Вам вдруг захотелось использовать последнюю версию php-5.4.x на Debian squeeze (где по-умолчанию из пакетов устанавливается php-5.3.x),
будет проще и быстрее установить его с помощью apt-get.
Первым делом необходимо добавить новые источники пакетов в файл sources.list:

deb http://packages.dotdeb.org squeeze all
deb-src http://packages.dotdeb.org squeeze all
deb http://packages.dotdeb.org squeeze-php54 all
deb-src http://packages.dotdeb.org squeeze-php54 all

Вы может получить такую ошибку при обновлении кеша:

W: GPG error: http://packages.dotdeb.org stable Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY E9C74FEEA2098A6E
W: GPG error: http://nginx.org squeeze Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY ABF5BD827BD9BF62

в этом случае необходимо добавить ключи и повторно обновить кеш:

gpg --keyserver keys.gnupg.net --recv-key 89DF5277
gpg -a --export 89DF5277 | sudo apt-key add -
gpg --keyserver keyserver.ubuntu.com --recv-key ABF5BD827BD9BF62
gpg -a --export ABF5BD827BD9BF62 | sudo apt-key add -
sudo apt-get update

Ну а теперь просто обновите установленные пакеты и обязательно нужно проапгрейдить дистрибутив:

sudo apt-get upgrade
sudo apt-get dist-upgrade

Для PHP-5.4 Debian — нет suhosin, xcache, xdebug расширений

Сегодня проапгрейдил свою Debian OS 6.0 (настроено apt-pinning).
Среди прочих апдейтов при выполнении dist-upgrade привалили и обновления для ряда установленных модулей php5.  Обновился и сам PHP, собственно до версии 5.4.0-2. Но… тут начались непонятные проблемы — ни один локальный сайт не работал! В логах были непонятные ошибки, скажем, для сайта, основанного на фреймворке  YII было сообщение:

[Sun Mar 25 13:32:51 2012] [error] [client 127.0.0.1] PHP Fatal error:  Call to undefined function (null)() in /home/web/ccc/frontend/index.php on line 4

А на той строке 4 ничего не было особенного, окромя dirname(__FILE__)!
Порыскав-поискав в интернете похожие ошибки, не нашел ничего. Запостил баг на php.net.
Но дело-то неприятное! Ничегошеньки ведь не работает…
Начал копаться дальше. Попробовал запустить скрипты php из консоли, дабы проверить — неужто dirname() убрали? 🙂 И обнаружил еще ряд замечательных уведомлений warnings:

rodush@rdushko:/var/www$ php test.php
Failed loading /usr/lib/php5/20090626+lfs/xdebug.so: /usr/lib/php5/20090626+lfs/xdebug.so: cannot open shared object file: No such file or directory
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib/php5/20100525+lfs/suhosin.so’ — /usr/lib/php5/20100525+lfs/suhosin.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib/php5/20100525+lfs/xhprof.so’ — /usr/lib/php5/20100525+lfs/xhprof.so: cannot open shared object file: No such file or directory in Unknown on line 0

А дальше директива dirname() отработала и подключился файл, который я подключал.
Заглянув в директорию, указанную в сообщении, я обнаружил, что таких библиотек действительно нету!
Пока решил не морочить голову: допишут — обновлюсь; решил убрать конфиги php для данных библиотек.
Они расположены в директории /etc/php5/conf.d/
просто переименовал все конфиги, на которые не пришли обновления файлы с суффиксом «old» (на будущее пригодятся :), думаю)

suhosin.ini.old xdebug.ini.old xcache.ini.old xhprof.ini.old

Попробовал вызов из консоли — не ругается php. Попробовал зайти на сайты в броузере и — о чудо! — всё работает!!
Вот такие вот причуды могут быть, если php ругается на невозможность подключить дополнительные модули-библиотеки.