Автор: Dmitriy Falko
Дата публикации: 2012-08-20T13:21:00.002+04:00
Архив рубрики: Linux
Elgg: mod-rewrite для NGINX
И первый вопрос, который у меня возник: куда нужно писать эти правила?
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
sudo add-apt-repository ppa:nginx/stable sudo apt-get update sudo apt-get install nginx
Если на вашем сервере 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++
//===============================================================
// 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






