Архив рубрики: Linux

Работа с git через прокси

На работе стоит прокси требующий аутефикации, в этих ваших интернетах есть полно информации как настроить работу консольных программ через прокси, они все сводятся к записи переменной окружения:

Но этот способ так и не заработал для меня, зато сработала команда для конфигурации git:

git config —global http.proxy http://login:’pa$$word’@proxyhttp:8080

одинарные кавычки обязательны. Теперь хоть git работает!

Автор: Dmitriy Falko
Дата публикации: 2012-08-20T13:21:00.002+04:00

Elgg: mod-rewrite для NGINX

Сегодня развернул Elgg на веб-сервере NGINX, и первая проблема с которой столкнулся — это небходимость замены mod-rewrite директив, которые содержатся в файле .htaccess, на соответсвующие правила для NGINX (rewrite-rules).

И первый вопрос, который у меня возник: куда нужно писать эти правила?
Rewrite-rules для Nginx указываются внутри секции server в файле настройки виртуального хоста, например /etc/nginx/sites-available/default.

Следующий вопрос был: что же туда писать?
Если подумать логически, то задача не совсем сложная, необходимо всего лишь конвертировать директивы из htaccess в соответвующие правила для nginx. Спасибо Томасу Делингу, который уже провел иследования в этом вопросе и успешно конвертировал директивы файла htaccess для Elgg 1.8.2. Все что мне осталось, это скопировать набор правил и обновить файл настройки виртуального хостинга, в результате он выглядел приблизительно так:

server {
listen 80;
server_name elgg.domain.com;
root /var/www-nginx/elgg/htdocs/;

error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;

index index.php index.html;
fastcgi_index index.php;

client_max_body_size 8M;
client_body_buffer_size 256K;

rewrite ^/pg/([A-Za-z0-9_-]+)$ /engine/handlers/page_handler.php?handler=$1&$args;
rewrite ^/pg/([A-Za-z0-9_-]+)/(.*)$ /engine/handlers/page_handler.php?handler=$1&page=$2&$args;
rewrite ^/tag/(.+)/?$ /engine/handlers/page_handler.php?handler=search&page=$1;
rewrite ^/action/([A-Za-z0-9_-/]+)$ /engine/handlers/action_handler.php?action=$1&$args;
rewrite ^/cache/(.*)$ /engine/handlers/cache_handler.php?request=$1&$args;
rewrite ^/services/api/([A-Za-z0-9_-]+)/(.*)$ /engine/handlers/service_handler.php?handler=$1&request=$2&$args;
rewrite ^/export/([A-Za-z]+)/([0-9]+)/?$ /engine/handlers/export_handler.php?view=$1&guid=$2;
rewrite ^/export/([A-Za-z]+)/([0-9]+)/([A-Za-z]+)/([A-Za-z0-9_]+)/$ /engine/handlers/export_handler.php?view=$1&guid=$2&type=$3&idname=$4;
rewrite /xml-rpc.php /engine/handlers/xml-rpc_handler.php;
rewrite /mt/mt-xmlrpc.cgi /engine/handlers/xml-rpc_handler.php;
rewrite ^/rewrite.php$ /install.php;
if (!-d $request_filename){
set $rule_11 1$rule_11;
}
if (!-f $request_filename){
set $rule_11 2$rule_11;
}
if ($rule_11 = "21"){
rewrite ^/([A-Za-z0-9_-]+)$ /engine/handlers/page_handler.php?handler=$1;
}
if (!-d $request_filename){
set $rule_12 1$rule_12;
}
if (!-f $request_filename){
set $rule_12 2$rule_12;
}
if ($rule_12 = "21"){
rewrite ^/([A-Za-z0-9_-]+)/(.*)$ /engine/handlers/page_handler.php?handler=$1&page=$2;
}

location ~ .php$ {
include fastcgi_params;

# Assuming php-fastcgi running on localhost port 9000
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
}

# Do not put CSS there or it will break simplecache
location ~* .(bmp|js|gif|ico|jpg|jpeg|png)$ {
expires max;
# log_not_found off;
}
}

Автор: Sergiy Kamolov
Дата публикации: 2012-08-06T13:42:00.001+03:00

Как установить и настроить NGINX+PHP+XDebug на Ubuntu 12.04

1. Установка NGINX-сервера:
sudo add-apt-repository ppa:nginx/stable 
sudo apt-get update 
sudo apt-get install nginx
2. Установка PHP:
 

Если на вашем сервере php еще не установлен, то необходимо выполнить следующее:

sudo apt-get install php5-cli php5-cgi php5-fpm php5-mcrypt php5-mysql

В противном же случае достаточно установить пакет php5-fpm:

sudo apt-get install php5-fpm

3. Настройка виртуального хоста в NGINX

Открываем и редактируем файл  /etc/nginx/sites-available/default:

sudo gedit  /etc/nginx/sites-available/default

Для начала поменяем параметры root и index в секции server:

server{
...
    root: /var/www;
    index: index.php
...
}

Если вы уже пользуетесь веб-сервером apache, то для правильной работы nginx нужно будет поменять номер порта с 80 на 8000:

server{ 
 listen: 8000;
...
}

Убираем комментарии со следующих строк:

 location ~ .php$ {
 fastcgi_pass 127.0.0.1:9000;
 fastcgi_index index.php;
 include fastcgi_params;
  }

4. Запускаем NGINX

sudo service nginx start

Также запускаем сервис, отвечающий за работу php:

sudo service php5-fpm start

5. Установка и настройка XDebug

Устанавливаем точно так же как описано в первой части статьи «Как настроить NetBeans для работы с XDebug»

Далее небходимо отредактировать файл /etc/php5/fpm/php.ini.

sudo gedit /etc/php5/fpm/php.ini

Перед тегом Date добавляем следующий код:

zend_extension="/usr/lib/php5/20090626/xdebug.so"

xdebug.default_enable = On
xdebug.var_display_max_depth=6
xdebug.remote_enable=on
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9900
xdebug.remote_handler=dbgp
xdebug.idekey=netbeans-xdebug
xdebug.remote_autostart=1
xdebug.remote_log=/tmp/xdebug.log
xdebug.profiler_enable_trigger=1
xdebug.profiler_enable=0
xdebug.profiler_output_dir=/tmp/profiler
xdebug.show_local_vars=1
xdebug.overload_var_dump=1

… перезагружаем сервер

 

sudo service nginx restart

так как при перезагрузке сервера параметры php.ini автоматически не обновляются, необходимо также перезагрузить сервис php5-fpm:

 

sudo service php5-fpm restart

6. Настройка NetBeans

Открываем NetBeans Tools>Options>PHP>Debugging и в строке Debugger Port вводим значение 9900, нажимаем Ok.

На этом настройка завершена.

Осталось только поместить в /var/www тестовый файл index.php с кодом:

echo phpinfo();

Автор: Sergiy Kamolov

Таймеры высокого разрешения Linux C/C++

В операционной системе Linux помимо обычных задержек(sleep) и таймеров, реализованы таймеры высокого разрешения. Таймер и задержки высокого разрешения позволяет измерять временные промежутки с точностью до наносекунд, а так же позволяют приложения «засыпать» на непродолжительное время(в зависимости от конфигурации системы) соизмеримое с несколькими микросекундами.


//===============================================================
// Name : HiTimer.c
// Author : D.Falko
// Version : 1.0
// Description : High Resolution timer test
//===============================================================
 
 
#include
#include
#include
#include
#include
#include
 
 
int main(int argc, char *argv[])
{
if(0 == geteuid()) // приложение должно быть запущенно с правами суперпользователя
{
struct sched_param sp;
memset(&sp, 0, sizeof(sp));
sp.__sched_priority = sched_get_priority_max(SCHED_FIFO);
sched_setscheduler(0, SCHED_FIFO, &sp);
mlockall(MCL_CURRENT | MCL_FUTURE);
}
else
{
printf("Not running with superuser rigthsn");
exit(1);
}
if(argc < 3)
{
printf("Using: HiTimer iterations delayn");
exit(1);
}
 
int iter = atoi(argv[1]);
int delay = atoi(argv[2]);
 
int i=0;
struct timespec tS, startT, stopT;
 
clock_getres(CLOCK_MONOTONIC, &tS); // узнаем разрешение таймера
printf("Timer res: %ld sec, %ld nsecn", tS.tv_sec, tS.tv_nsec);
 
 
struct timespec time;
clock_gettime(CLOCK_MONOTONIC, &startT); // засекаем время начала теста
 
while(i<iter)
{ // повторяем iter раз задержку delay
i++;
clock_gett ime(CLOCK_MONOTONIC, &time); получаем актуальное время
time.tv_nsec+=delay; // добавляем требуемую задержку
clock_nanosleep(CLOCK_MONOTONIC, TIMER_ABSTIME,
&time, NULL); // засыпаем
}
clock_gettime(CLOCK_MONOTONIC, &stopT);
long int nsec=stopT.tv_sec*1000000000 + stopT.tv_nsec
-startT.tv_sec*1000000000 + startT.tv_nsec;

  // iter*delay должно примерно равняться nsec, узнаем погрешность задержек
printf("Number of iterations: %d timer value: %d nsecn",
iter, delay);
printf("Time elapsed: %ld nsecn", nsec);
 
 
return 0;
}
А теперь подробней о использованных компонентах.

Используемая структура времени определена в <sys/time.h> и выглядят следующим образом:

struct timespec {
long tv_sec; /* секунды */
long tv_nsec; /* наносекунды */
};
 
Далее мы узнаем и выводим на экран точность(разрешение) системных часов, при помощи функции:

int clock_getres(clockid_t clk_id, struct timespec *res);
в структуру struct timespec *res записывается разрешения, указанных в clockid_t clk_id часов.

clockid_t clk_id может быть:

CLOCK_REALTIME: часы реального времени, доступные всем процессам в системе. Часы измеряются в секундах и наносекундах с начала эпохи (то есть 00:00:00 1 января 1970 по Гринвичу). Точность 1/HZ секунд. 

CLOCK_MONOTONIC: время непрерывной работы ОС, доступное всем процессам. В Линукс оно измеряются  в секундах и наносекундах после загрузки ОС. Точность 1/HZ с. Время в этих часах не может быть изменено каким-либо процессом, по этому рек

Установка Mac OS X Lion для Ubuntu 12.04 и Linux Mint

Многие люди ищут тему Macbuntu 12.04/Macbuntu 12.10/Macbuntu 11.10/Mac4lin, Mac Ubuntu и так далее. Итак, здесь тема Mac OS X Lion для Ubuntu 12.04 Precise Pangolin и, надеюсь, эта тема будет работать с Linux Mint 13.

Новое:
Исправлено множество ошибок в теме и значках
Тема более гладкая, блестящая и быстрая
Исправлена проблема чувствительности индикатора выполнения
Исправлены кнопки Metacity
Исправлено соответствие цветов между верхней панелью и развернутым окном
Редизайн кнопок панели инструментов
Добавлено больше округлости для панели инструментов
Изменен цвет строк
Добавлен эффект слегка жирного шрифта при наведении на ячейки и строки
Эффект жирного шрифта при наведении на кнопки
Различные цвета панели поиска и панели мусора
Удалена граница rubber band
Удалена граница плавающей панели
Примечание

Во второй версии автор предоставляет 2 пакета значков:

Mac Lion

Mac Snow Leoprad

Подготовка

Шаг 1. Скачайте обои Mac OS X Lion

Шаг 2. Установите последний Cairo Dock

Нажмите правой кнопкой мыши на Cairo Dock > Выберите «Launch Cairo-Dock at Startup (Запускать Cairo-Dock при запуске системы)»

Шаг 3. Настройка полосы прокрутки: Установите Ubuntu Tweak, перейдите на вкладку «Miscellaneous (Разное)» и выключите «Overlay Scrollbars (Наложение полосы прокрутки)»

Шаг 4. Установите новый логотип Apple в лаунчер

Выполните следующие команды, чтобы установить логотип Apple:

wget -O apple-logo.zip http://dl.dropbox.com/u/53319850/NoobsLab.com/apple-logo.zip
sudo unzip apple-logo.zip -d /usr/share/unity/5/

Подтвердите замену файла и нажмите «Enter»

Если вы хотите вернуть логотип Ubuntu обратно, выполните в терминале следующие команды:

wget -O ubuntu-logo.zip http://dl.dropbox.com/u/53319850/NoobsLab.com/ubuntu-logo.zip
sudo unzip ubuntu-logo.zip -d /usr/share/unity/5/

Подтвердите замену файла и нажмите «Enter»

Установка

Шаг 5. Для установки темы Mac OS X Lion в Ubuntu 12.04/12.10/11.10 или Linux Mint, откройте терминал (Ctrl+Alt+T) и выполните следующие команды:

sudo add-apt-repository ppa:noobslab/themes
sudo apt-get update
sudo apt-get install mac-os-lion-cursors-v2
sudo apt-get install mac-os-lion-icons-v2
sudo apt-get install mac-os-lion-theme-v2

Шаг 6. Отключение отчета о сбоях

Обычно в Ubuntu 12.04 сбоев больше, чем в предыдущих версиях, поэтому вы можете отключить отчеты с помощью следующей команды:

sudo sed -i «s/enabled=1/enabled=0/g» ‘/etc/default/apport’

Шаг 7. Установка Compiz Setting Manager для автоматического скрытия лаунчера Unity

sudo apt-get install compizconfig-settings-manager

Шаг 8. Установка Gnome Tweak Tool/Ubuntu Tweak для изменения темы, значков, курсоров

sudo apt-get install gnome-tweak-tool

Также смотрите удаление белых точек с экрана входа

Данная новость подготовлена для Вас командой сайта lintux.ru
Источник: www.noobslab.com
Автор: Umair
Перевел: Максим Левиков

Автор: ГАЗЕНВАГЕН™

NetBeans: Что делать если цвет меню сливается с заголовком окна в Ubuntu 12.04

В Ubuntu 12.04 столкнулся с проблемой, когда меню моей любимой идешки сливается с цветом заголвка окна. Изза этого очень не удобно стало работать. Нашел простое решение данной проблемы, достаточно отредактировать файл netbeans.conf, который находится в директории установки netbeans (например: /home/user/netbeans7.2/etc)

 В конец файл добавляем следующую диррективу:

 -J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd —laf Metal 

Более детальную информацию о решении проблмемы см:

http://hanynowsky.wordpress.com/2012/04/27/netbeans-ide-look-feel-under-ubuntu-12-04/

Не помогло?

Тогда ищем файлик  /usr/share/themes/Ambiance/gtk-2.0/gtkrc, открываем его для редактирования от имени админа

sudo gedit /usr/share/themes/Ambiance/gtk-2.0/gtkrc

Находим строку 338 с текстом 

style «menu» {

и меняем ее на

style «menu» = «dark» {

Сохраняем и перезапускаем NetBeans (если он был запущен)…

Автор: Sergiy Kamolov
Дата публикации: 2012-06-26T13:07:00.000+03:00