LINUX.ORG.RU

Сообщения RJ45

 

VPS nginx и домены

Задача такова: Есть VPS под nginx 0.6.32. На нем живет сайт site.ru Есть доменные имена mysite.net, site.com, blabla.ru и т.д., в NS которых прописан IP этого VPS Нужно чтобы nginx все домены, которые не site.ru направлял в ту же root, что и site.ru при этом применяя rewrite. Как бы так сделать, или хотя бы в какую сторону копать? site.ru.conf:

server {
	listen 80;
	server_name admin.site.ru;
	root /home/user/www/admin;
	index index.php;
	client_max_body_size 128M;
	
	location ~ \.php {
		#fastcgi_split_path_info ^(.+\.php)(.*)$;
		fastcgi_pass backend;
		fastcgi_index index.php;
		fastcgi_param SCRIPT_FILENAME /home/user/www/admin$fastcgi_script_name;
		include fastcgi_params;
		fastcgi_param QUERY_STRING $query_string;
		fastcgi_param REQUEST_METHOD $request_method;
	}
}

server {
	listen 80;
	server_name site.ru www.site.ru;
	root /home/user/www/site;
	index index.php;
	client_max_body_size 10M;

....
тут правила rewrite. Вырезал, дабы не нагромождать пост "водой"
....
  
	location ~ \.php {
		#fastcgi_split_path_info ^(.+\.php)(.*)$;
		fastcgi_pass backend;
		fastcgi_index index.php;
		fastcgi_param SCRIPT_FILENAME /home/user/www/site$fastcgi_script_name;
		include fastcgi_params;
		fastcgi_param QUERY_STRING $query_string;
		fastcgi_param REQUEST_METHOD $request_method;
	}
}

 

RJ45
()

Переключение wifi в режим g

Доброго времени суток. Проблема такова. Купил ноут HP ProBook 4740, на котором wifi адаптер с поддержкой 802.11n, в квартире имеется DLINK DIR 300 (у которого n режим драфтовый). Так вот, когда я коннекчусь к роутеру, то все остальные клиенты (которые в g режиме) отваливаются и у меня скорость очень мала. Подсказали, что нужно переключить свою карточку в g режим. Вопрос - как? :)

Ubuntu 12.04, на всяуий случай, вот:

rj45@rj45-pc:~$ lspci | grep -i net
07:00.0 Network controller: Intel Corporation Centrino Wireless-N 1000
09:00.0 Ethernet controller: Atheros Communications Inc. AR8131 Gigabit Ethernet (rev c0)
ifconfig:
wlan0     Link encap:Ethernet  HWaddr 00:1e:64:83:f0:14  
          inet addr:192.168.115.108  Bcast:192.168.115.255  Mask:255.255.255.0
          inet6 addr: fe80::21e:64ff:fe83:f014/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:69168 errors:0 dropped:0 overruns:0 frame:0
          TX packets:64078 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:69671785 (69.6 MB)  TX bytes:11095399 (11.0 MB

RJ45
()

вызов zenity из cron

Проблема в том, что при запуске из консоли ./myapp окошки выводятся, а из крона - нет

Crontab (для юзера rj45):

*/5 * * * * DISPLAY=:0.0 /home/rj45/myapp
Текст программы:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include "mysql.h"

#define DbHost "loaclhost"
#define DbUser "user"
#define DbPassword "password"
#define DbName "sdb"

MYSQL mysql;
MYSQL_RES *result;
MYSQL_ROW row;

int main(int argc, char * argv[])
{
    char* query;
    char* notify;
    pid_t pid;

    mysql_init(&mysql);
    mysql_real_connect(&mysql, DbHost, DbUser, DbPassword, DbName, 0, NULL, 0);
    mysql_query(&mysql, "SET CHARACTER SET 'utf8'");

    asprintf(&query, "select firms.title, DATE_FORMAT(notes.date, '%%T'), notes.text from notes join firms on (notes.kod=firms.kod) where DATE(notes.date) = DATE(NOW()) and notes.date <= DATE_ADD(NOW(), INTERVAL 5 MINUTE) and notes.done=0 and notes.type=1 and notes.manager=%s order by notes.date desc limit %s", argv[1], argv[2]);

    mysql_query(&mysql, query);
    result = mysql_store_result(&mysql);

    while((row = mysql_fetch_row(result))) {
	asprintf(&notify, "--text=\"Перезвонить в %s\n%s\n\nПримечание:\n%s\"", row[1], row[0], row[2]);
	pid = fork();
	if (pid == 0) {
		execl("/usr/bin/zenity", "zenity", "--info", "--title=\"Напоминание\"", notify, NULL);
	}
    }

    free(notify);
    free(query);
    mysql_free_result(result);
    mysql_close(&mysql);
}
пробовал вызывать так:
execl("/usr/bin/zenity", "DISPLAY=:0.0 zenity", "--info", "--title=\"Напоминание\"", notify, NULL);
Та же проблема.

 , ,

RJ45
()

и снова cron

Уже много тем по поводу неработающего крона, но все же.

crontab:

* * * * * /usr/bin/notify-send 123 test

Пустая строка в конце есть. Рестарт крона на всякий случай делал после правки crontab. syslog:
Jul  3 09:22:51 RJ45-PC cron[6490]: (CRON) STARTUP (fork ok)
Jul  3 09:22:51 RJ45-PC cron[6490]: (CRON) INFO (Skipping @reboot jobs -- not system startup)
Jul  3 09:23:01 RJ45-PC CRON[6492]: (rj45) CMD (/usr/bin/notify-send 123 34532)
По сислогу вроде как выполняется команда, а вот ничего не происходит.

Ubuntu 12.04

 

RJ45
()

непослушный notify-osd

Всем доброго времени суток. Возникла проблема с notify-send. Он работает и отправляет уведосления нормально, но не воспринимает параметры. Например

notify-send 123 456 --expire-time=1000
все равно отображает его 10 сек. Такая же проблема с остальными ключами.

И еще одно: пробовал кастомизировать, как рассказано сдесь и сдесь - то же самое. Изменения настроек (шрифты, цвета и т.п.) не применяются.

Ubuntu 12.04

 ,

RJ45
()

Ошибка сегментирования (core dumped)

вылазит при запуске (компиляция проходит успешно)

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "mysql.h"

#define DbHost "localhost"
#define DbUser "user"
#define DbPassword "test"
#define DbName "test"

MYSQL mysql;

int main()
{
    int manager=32;
    int result;
    char* query;

    mysql_init(&mysql);
    mysql_real_connect(&mysql, DbHost, DbUser, DbPassword, DbName, 0, NULL, 0);

//    sprintf(query, "select firms.title, notes.type, DATE_FORMAT(notes.date, '%%T') from notes join firms on (notes.kod=firms.kod) where notes.manager=%d", manager);

    sprintf(query, "manager=%d", manager);

    result = mysql_query(&mysql, query);

    printf("\nres=%d\n", result);

    mysql_close(&mysql);
}
команда компилятору: cc -I/usr/include/mysql -L/usr/lib/mysql 1.cpp -o myapp -lm -lmysqlclient

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

Под Linux на С++ пишу код/компилирую впервые, не судите строго. Что может быть?

RJ45
()

Bash + MySQL поля с несколькими словами

Курю маны уже пол дня и никак не могу въехать Нужно из таблицы выбрать поля, некторые из которых могут содержать значения из нескольких слов. Как корректно это сделать?

result=`mysql -Bse "SELECT title, type, DATE_FORMAT(date,'%H:%i') from table where id=$id" --user="$user" --password="$pwd" $dbName`
n=0
for i in $result; do
  out[$n]=$i
  $n=$n+1
done;
создает массив, каждый элемент которого = отдельному слову. А если у меня в поле 'title' хранится, например, «два слова», как создать один элемент массива, а не два «два» и «слова»?

 ,

RJ45
()

Слишком долго выполняется SQL-запрос

Вобщем, проблема... Есть запрос:

select firms.kod, firms.title, firms.pay, rekv.director, address.addr as address, address.phones
from firms left join rekv on (firms.kod=rekv.kod) left join address on (firms.kod=address.kod)
where firms.manager=".$manager['manager']." order by firms.title

таблица firms - 19300+ записай rekv - 6900 записей address - 24200+ записей

Данные, полученные в результате выполнения запроса обрабатываются далее при помощи smarty.

Данный запрос выполняется порядка 3х минут (при результирующем количестве записей около 1000). Это слишком долго... Как можно оптимизировать запрос или алгоритм выборки, чтобы уменьшить время выборки хотя бы секунд до 30-40?

И да. Локально это все выполняется около 10 секунд (MySQL 5.5.22), а проблема на сервере (который стоит у нас же в офисе - MySQL 5.0.51) Может ли это зависеть от версии мускла?

RJ45
()

фалы .gsm

Дали на работе задачку - на убунтах прослушивать записи телефонных звонков. Пишет у них что-то в формат .gsm Чем и как его открыть? выгуглил VLC Player, но он запись на 70 секунд проигрывает за 3 секунды, как бы «перематывая» ее 3-4 раза. (выходит что-то типа «алло, добрый...(скачек)...предложить вам наши новы....(скачек).....вышелм на почту....конец»)

Никто не сталкивался? Ubuntu 11.04

 

RJ45
()

Разметка жесткого.

Этот вопрос поднимался уже кучу раз (и на ЛОРе в том числе), но все-таки ответа на свой вопрос внятного так и не нашел...

Каким образом лучше всего разбить hdd 320 GB (Acer extensa5635) под Ubuntu 12.04 TLS ?

т.е. сколько места под что отдать и куда что подмонтировать. Хотелось бы, чтобы в случае какого-то крэша, можно было поднять систему без потери данных (т.е. судя по всему, /home маунтить на отдельный раздел). Также интересно - можно ли поставить просто систему, весь необходимый софт, настроить все и сделать на всякий случай образ диска, чтобы в случае чего можно было быстро все это развернуть (опять-таки без потери данных). т.е. система отдельно - данные отдельно.

- Зачем это все? - Полгода - это не так уж и много, а любознательность иногда (очень редко) приводит к тому, что система рушится. Не хотелось бы терять рабочие данные и время.

RJ45
()

sendmail connection refused

ЛОР, помоги ))

При отправке почты из php при помощи mail() в логе sendmail :

Apr 17 11:29:44 *** sendmail[10229] q3H8TiMX010229: to=ololo@mail.ru, ctladdr=www-data (33/33), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30945, relay=[127.0.0.1] [127.0.0.1], dsn=4.0.0, stat=Deffered: Connection refused by [127.0.0.1]

Я понимаю, что Connection refused by 127.0.0.1 какбы намекает, но на что именно? я перерыл весь гугл - не могу понять что происходит. Причем, после service sendmail reload все что было refused отправляется и сендмаил снова ничинает все отбрасывать до следующего reload.

 ,

RJ45
()

[q] отправка почты из php без sendmail

Есть php5. Нужно отправить почту через mail(), но не через sendmail (по некоторым причинам его юзать нельзя). Есть ли варианты?

 ,

RJ45
()

редиректы в nginx

Подскажите, как правильно задать условия для ngx_http_rewrite_module.

Условия заданы по порядку, причем при первом соответствии нужно прекратить дальнейший поиск и сделать редирект (url может подходить под несколько условий).

в апачевском .htaccess это делалось ключем [L]. Как это сделать в nginx?

пример:

server {
	listen 80;
	server_name ololo.ru;
	root /home/ololo/www/site;
	index index.php;
	
	if ($uri !~"^/design") {
		rewrite ^([a-z\d_\(\)\.:]+)/price(/|)$ /index.php?page=page1&name=$1;
	}

	if ($uri !~ "^/(design/|data/|cache/|.*\.php|.*\.txt|.*\.xml|.*\.html|.*\.htm?)") {
		rewrite ^/([a-z\d_\(\)\.:]+)(/|)$ /index.php?page=page2&name=$1;
	}

	if ($uri !~ "^/(design/|data/|cache/|.*\.php|.*\.txt|.*\.xml|.*\.html?)") {
		rewrite ^/([a-z\d_\(\)\.:]+)/([a-z\d_\(\)\.:]+)((/|)|/(\d+))$ /index.php?page=page3&section_name=$2&root_name=$1&cp=$5;
	}
}
	
При совпадении первому регекспу, проверка продолжается и в итоге получаю 3-й урл. Как остановить его сразу, как только найдено соответствие?

И еще - после внесения изменений нужно ребутать сервер полностью, или service nginx reload достаточно?

RJ45
()

И снова PHP IDE

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

Нужна ИДЕ для ПХП разработки. Требования: - Подсветка синтаксиса - Менеджер проектов - Автодополнение кода - наличие плагина для работы с SVN (ВАЖНО!)

aptana и eclipse тяжелые какие-то. Сначала нормально, через месяц работы жутко тормозят и раздражают... Может есть что полегче?

Заранее спасибо

RJ45
()

Ubuntu 10.04: Apache и права

Установил апач 2,2,17 на убунту 11,04

Нв локалхост (/var/www/) смотрит хорошо, phpinfo показывает а вот когда создаю виртуальный хост, смотрящий в домашнюю папку, выдает 403 ошибку.

<VirtualHost start.local:80> ServerName start.local DocumentRoot /home/rj45/projects/start/site <Directory /> Options FollowSymLinks AllowOverride All </Directory> </VirtualHost>

в /etc/hosts дописал 127.0.1.2 start.local

Права на папку 744 (пробовал 777 - не помогает) error.log апача: [crit] [client 127.0.0.1] (13)Permission denied: /home/rj45/projects/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable Браузер: Forbidden. You don't have permission to access / on this server.

Почему он ищет .htaccess в каталоге на 2 уровня выше, чем документрут? В чем может быть проблема?

RJ45
()

RSS подписка на новые темы