LINUX.ORG.RU

Сообщения kklkkl

 

С запущенным memcached - рандомно возникающая ошибка 502

Вот такое дело - веб-сервер с ЦентОСом на борту уж почти 10 лет работал и проблем вообще никаких не было... На днях юзеры стали жаловаться, что на сайте зачастила ошибка 502 - посмотрели логи и правда. На борту nginx+php-fpm, memcached. Все что только мог поперезапускал и даже сервак растартанул для гарантии - 0 эффекта. 502 в логах все больше и больше. Отсановил memcached - ошибки прекратились. Запустил - пошли. В общем - дело в нем.

Вопрос. Как быть? Правильно ли я предполагаю, что первопричина может быть в железе (память например)?

 ,

kklkkl
()

Установка horde. DB access is not configured. Как его правильно сконфигурить?

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

Предварительно в апаче создаю сайтик в папочке, который указываю в процессе для устновке хорды:

Ставлю horde так:

pear upgrade PEAR pear channel-discover pear.horde.org pear install horde/horde_role pear run-scripts horde/horde_role pear install -a -B horde/horde chown -R www-data:www-data horde cd horde cd config cp conf.php.dist conf.php vi conf.php

далее разрешаю в конфиге запусать тест, запускаю тест, результат вроде нормальный:

 Horde Version

5.2.8
Horde Applications

Agora [Forums]: unknown
Ansel [Photos]: unknown
Chora [Version Control]: unknown
Content: unknown
Gollem [File Manager]: unknown
Hermes [Time Tracking]: unknown
Imp [Mail]: unknown
Ingo [Filters]: unknown
Jonah [News]: unknown
Klutz [Comics]: unknown
Kolab [Kolab]: unknown
Kronolith [Calendar]: unknown
Luxor [X-Ref]: unknown
Mnemo [Notes]: unknown
Nag [Tasks]: unknown
Passwd [Password]: unknown
Sam [Spam]: unknown
Sesha [Inventory]: unknown
Timeobjects: unknown
Trean [Bookmarks]: unknown
Turba [Address Book]: unknown
Ulaform [Forms]: unknown
Vilma [Mail Admin]: unknown
Whups [Tickets]: unknown
Wicked [Wiki]: unknown
PHP Version

View phpinfo() screen
View loaded extensions
PHP Version: 5.5.1-2
PHP Major Version: 5.5
PHP Minor Version: 1
PHP Subminor Version: 2
PHP Version Classification: release
You are running a supported version of PHP.
PHP Module Capabilities

Ctype Support: Yes
DOM XML Support: Yes
MIME Magic Support (fileinfo): Yes
MIME Magic Support (fileinfo) - Configuration: Yes
FTP Support: Yes
GD Support: Yes
Gettext Support: Yes
GeoIP Support (PECL extension): Yes
Hash Support: Yes
LZ4 Compression Support (PECL extension): No
If the horde_lz4 PECL extension is available, Horde can perform real-time compression on cached data to optimize storage resources.
Iconv Support: Yes
GNU Iconv Support: Yes
Internationalization Support: No
Horde requires the intl extension to handle Internationalized Domain Names. Compile PHP with --enable-intl.
Imagick (PECL extension): No
Horde can make use of the Imagick library to manipulate images. It is highly recommended to use the PECL extension (although, alternatively, Horde can be configured to use the convert command line utility instead).
JSON Support: Yes
LDAP Support: No
LDAP support is only required if you want to use an LDAP server for anything like authentication, address books, or preference storage. Compile PHP with --with-ldap to activate the extension.
LZF Compression Support (PECL extension): No
If the lzf PECL extension is available, Horde can perform real-time compression on cached data to optimize storage resources. It is recommended to use horde_lz4 instead, as its compression speed is twice as fast as this extension.
Mbstring Support: Yes
memcached Support (memcache) (PECL extension): Yes
MongoDB support (PECL extension): No
If you want to use the MongoDB NoSQL database backend, you must install this extension.
MySQL Support: Yes
OpenSSL Support: Yes
PAM Support (PECL extension): No
The PAM PECL extension is required to allow PAM authentication to be used.
PDO: Yes
PostgreSQL Support: Yes
Session Support: Yes
SimpleXML support: Yes
Tidy support: No
The tidy PHP extension is used to sanitize HTML data. Compile PHP with --with-tidy to activate the extension.
XML Parser support: Yes
Zlib Support: Yes
Miscellaneous PHP Settings

allow_url_include disabled: Yes
magic_quotes_runtime disabled: Yes
magic_quotes_sybase disabled: Yes
memory_limit value: 512M
register_globals disabled: Yes
safe_mode disabled: Yes
session.auto_start disabled: Yes
session.gc_divisor value: 1000
PHP automatically garbage collects old session information, as long as this setting (and session.gc_probability) are set to non-zero. It is recommended that this value be "10000" or higher (see docs/INSTALL).
session.gc_probability value: 0
PHP automatically garbage collects old session information, as long as this setting (and session.gc_divisor) are set to non-zero. It is recommended that this value be "1".
session.use_trans_sid disabled: Yes
tidy.clean_output disabled: Yes
zlib.output_compression disabled: Yes
Required Configuration Files

config/conf.php: Yes
PHP Sessions

Session counter: 2 [refresh the page to increment the counter]
To unregister the session: click here
PEAR

PEAR Search Path (PHP's include_path):  /usr/local/www/horde/lib:/usr/local/www/horde/lib:.:/usr/share/php:/usr/share/pear
PEAR: Yes
File_Fstab: Yes
Net_DNS2: Yes
Services_Weather: Yes
File Uploads

file_uploads enabled: Yes
upload_max_filesize: 2M
post_max_size: 8M
This value should be several times the expect largest upload size (notwithstanding any upload limits present in an application). Any upload that exceeds this size will cause any state information sent along with the uploaded data to be lost. This is a PHP limitation and can not be worked around.
Local File Permissions

Is /usr/local/www/horde/lib/../static writable by the web server user (www-data)? Yes

далее иду в конфиг, и вижу там такую картину: http://kkl.name/hordefuck.png

Кнопка «Update All Configurations» не работает - пустой экран, никаких ошибок в эррор-логе апачевском. В сислоге во время этих экспериментов появляется вот что: HORDE: [horde] The database configuration is missing. [pid 7666 on line 152 of «/usr/share/php/Horde/Core/Factory/Db.php»]

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

Чего я не так делаю?

 

kklkkl
()

Slony на Debian... Что-то не ставятся...

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

В пинципе Слоны на Дебиан ставятся или даже не заморачиваться?

 

kklkkl
()

Debian, php 5.3.3-7+squeeze19, не могу запустить php5-fpm через TCP

Есть сервачок с Дебианом на борту, воткнул на него nginx, php5, после чего пришлось еще вот этим способом php5-fpm ставить. Все заработало. Тестовая страничка открылась. Все отлично. Но есть один нюанс: для проекта, который требуется запустить на данном сервере нужно чтоб php5-fpm работал не через сокет, а через 127.0.0.1:9000 И вот почему-то сразу после внесения соответствующих изменений в конфиг ногинска:

 
fastcgi_pass   127.0.0.1:9000;
#fastcgi_pass unix:/var/run/php5-fpm.sock;

и в /etc/php-fpm-pool.conf

;listen = /var/run/php5-fpm.sock
listen = 127.0.0.1:9000

... ногинск перезапускается без ошибок, а вот php5-fpm тоже вроде как перезапускается без ошибок, но потом и сайт не грузится (502 ошибка) и на 9000 порту ничего нет, и статус выдает следующее:

# /etc/init.d/php5-fpm status
php5-fpm is not running ... failed!

Подскажите, коли не сложно, куда копать? Что проверять? Спасибо!

 , ,

kklkkl
()

Сервер не исполняет GET-запросы. Что нужно включить?

Перелил несколько проектов со своего сервера на специально арендованную виртуалку - все работает, кроме пары php-скриптов с параметрами вида http://mysite.com/somescript.php?items=25&what=g&whose=user&rule=... Вообще не хочет парсить параметры. На моих серверах это работает. Видать сильно уже туплю после вторых суток переливов всякой хрени туда-сюда, но никак не пойму, что попросить включить хостеров, что бы там тоже работало?

 , ,

kklkkl
()

Squid. Можно ли как-то добавить нужные headers в http-запросы?

Использую Squid 2.6. Прописал в конфиге замену заголовков запросов на необходимые следующим образом (на этом примере меняем реферера):

header_access Referer deny all

#
#

header_replace Referer http://mysite.com/

В результате ПОДМЕНЯЕТ очень четко, а вот если в запросе изначально нет Referer, то он его и НЕ ДОБАВЛЕТ. Ну и тоже самое с другими заголовками - если есть в запросе - подменяет, если нет, то не добавляет.

А что нужно сделать, что б заставить кальмара ДОБАВЛЯТЬ необходимые, но отсутствующие заголовки в запрос?

Или может для этого какую приблуду еще доставить нужно? Может кто подкинет идейку куда подкопнуть?

 , , ,

kklkkl
()

Не выходит поставить haproxy вместо squid - не пойму что прописать в конфиге.

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

Пробую что-то типа этого:

global
        log /dev/log    local0
        log /dev/log    local1 notice
        chroot /var/lib/haproxy
#       user haproxy
#       group haproxy
        daemon

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        contimeout 5000
        clitimeout 50000
        srvtimeout 50000
        errorfile 400 /etc/haproxy/errors/400.http
        errorfile 403 /etc/haproxy/errors/403.http
        errorfile 408 /etc/haproxy/errors/408.http
        errorfile 500 /etc/haproxy/errors/500.http
        errorfile 502 /etc/haproxy/errors/502.http
        errorfile 503 /etc/haproxy/errors/503.http
        errorfile 504 /etc/haproxy/errors/504.http

listen  myproxy
        bind  *:3223
        mode http
        option  transparent
        source 0.0.0.0 usesrc clientip
        server mycoolproxy *

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

 

kklkkl
()

Xvfb не работает на удаленной машине с LMDE

Недавно навернулась машина с Linux Mint 10, на которой пускались скрипты, требующие фекового дисплея, заменил ее другой с LMDE на борту. Вроде все поставил что и раньше было, но скрипты не пашут, и при этом вот такие странные вещи творятся:

# echo $DISPLAY
:99
# ps aux|grep X
root      3589  0.0  1.4  47440 13572 pts/0    S+   21:02   0:00 Xvfb :99 -screen 0, 1024x768x24 -nolisten tcp -auth /tmp/xvfb-run.4sVJ7D/Xauthority
root      3842  0.0  0.0   3968   796 pts/1    S+   21:17   0:00 grep --colour=auto X

Вроде как все отлично и работает..., но при этом...

# xhost +
No protocol specified
xhost:  unable to open display ":99"

... ну и например:

# xhost +
No protocol specified
xhost:  unable to open display ":99"
# export DISPLAY=:99 && firefox -url "http://ya.ru"

(process:3866): GLib-CRITICAL **: g_slice_set_config: assertion `sys_page_size == 0' failed
No protocol specified
No protocol specified
Error: cannot open display: :99

Никак не пойму куда копать-то? В чем тут принципиальное отличие дебиана от убунты (на которой раньше все работало)?

 ,

kklkkl
()

99-raid-check вешает федору

Что-то не пойму никак, что случилось. Раз в неделю стал падать сервер (пингуется, но ни по SSH, ни через что-либо другое соединиться с ним нельзя - лечится простым ребутом кнопкой), опытным путем выяснил, что вешает его скрипт 99-raid-check, который вроде рейд проверяет.

Вот содержимое этого скрипта:

#!/bin/bash
#
# This script reads it's configuration from /etc/sysconfig/raid-check
# Please use that file to enable/disable this script or to set the
# type of check you wish performed.

[ -f /etc/sysconfig/raid-check ] || exit 0
. /etc/sysconfig/raid-check

[ "$ENABLED" != "yes" ] && exit 0

case "$CHECK" in
    check) ;;
    repair) ;;
    *) exit 0;;
esac

active_list=`grep "^md.*: active" /proc/mdstat | cut -f 1 -d ' '`
[ -z "$active_list" ] && exit 0

dev_list=""
check_list=""
devnum=0
for dev in $active_list; do
    echo $SKIP_DEVS | grep -w $dev >/dev/null 2>&1 && continue
    if [ -f /sys/block/$dev/md/sync_action ]; then
	# Only perform the checks on idle, healthy arrays, but delay
	# actually writing the check field until the next loop so we
	# don't switch currently idle arrays to active, which happens
	# when two or more arrays are on the same physical disk
	array_state=`cat /sys/block/$dev/md/array_state`
	sync_action=`cat /sys/block/$dev/md/sync_action`
	if [ "$array_state" = clean -a "$sync_action" = idle ]; then
	    ck=""
	    echo $REPAIR_DEVS | grep -w $dev >/dev/null 2>&1 && ck="repair"
	    echo $CHECK_DEVS | grep -w $dev >/dev/null 2>&1 && ck="check"
	    [ -z "$ck" ] && ck=$CHECK
	    dev_list="$dev_list $dev"
	    check[$devnum]=$ck
	    let devnum++
	    [ "$ck" = "check" ] && check_list="$check_list $dev"
	fi
    fi
done
[ -z "$dev_list" ] && exit 0

devnum=0
for dev in $dev_list; do
    echo "${check[$devnum]}" > /sys/block/$dev/md/sync_action
    let devnum++
done
[ -z "$check_list" ] && exit 0

checking=1
while [ $checking -ne 0 ]
do
	sleep 60
	checking=0
	for dev in $check_list; do
	sync_action=`cat /sys/block/$dev/md/sync_action`
		if [ "$sync_action" != "idle" ]; then
			checking=1
		fi
	done
done
for dev in $check_list; do
	mismatch_cnt=`cat /sys/block/$dev/md/mismatch_cnt`
	if [ "$mismatch_cnt" -ne 0 ]; then
		echo "WARNING: mismatch_cnt is not 0 on /dev/$dev"
	fi
done

Вот содержимое /etc/cron.weekly/raid-check

#!/bin/bash
#
# Configuration file for /etc/cron.weekly/raid-check
#
# options:
#	ENABLED - must be yes in order for the raid check to proceed
#	CHECK - can be either check or repair depending on the type of
#		operation the user desires.  A check operation will scan
#		the drives looking for bad sectors and automatically
#		repairing only bad sectors.  If it finds good sectors that
#		contain bad data (meaning that the data in a sector does
#		not agree with what the data from another disk indicates
#		the data should be, for example the parity block + the other
#		data blocks would cause us to think that this data block
#		is incorrect), then it does nothing but increments the
#		counter in the file /sys/block/$dev/md/mismatch_count.
#		This allows the sysadmin to inspect the data in the sector
#		and the data that would be produced by rebuilding the
#		sector from redundant information and pick the correct
#		data to keep.  The repair option does the same thing, but
#		when it encounters a mismatch in the data, it automatically
#		updates the data to be consistent.  However, since we really
#		don't know whether it's the parity or the data block that's
#		correct (or which data block in the case of raid1), it's
#		luck of the draw whether or not the user gets the right
#		data instead of the bad data.  This option is the default
#		option for devices not listed in either CHECK_DEVS or
#		REPAIR_DEVS.
#	CHECK_DEVS - a space delimited list of devs that the user specifically
#		wants to run a check operation on.
#	REPAIR_DEVS - a space delimited list of devs that the user
#		specifically wants to run a repair on.
#	SKIP_DEVS - a space delimited list of devs that should be skipped
#
# Note: the raid-check script intentionaly runs last in the cron.weekly
# sequence.  This is so we can wait for all the resync operations to complete
# and then check the mismatch_count on each array without unduly delaying
# other weekly cron jobs.  If any arrays have a non-0 mismatch_count after
# the check completes, we echo a warning to stdout which will then me emailed
# to the admin as long as mails from cron jobs have not been redirected to
# /dev/null.  We do not wait for repair operations to complete as the
# md stack will correct any mismatch_cnts automatically.
#
# Note2: you can not use symbolic names for the raid devices, such as you
# /dev/md/root.  The names used in this file must match the names seen in
# /proc/mdstat and in /sys/block.

ENABLED=yes
CHECK=check
# To check devs /dev/md0 and /dev/md3, use "md0 md3"
CHECK_DEVS=""
REPAIR_DEVS=""
SKIP_DEVS=""

Все это ставилось еще без меня и несколько лет не глючило.

# cat /proc/mdstat
Personalities : [raid1] 
md0 : active raid1 sdb1[1] sda1[0]
      104320 blocks [2/2] [UU]
      
md5 : active raid1 sdb2[1] sda2[0]
      296961408 blocks [2/2] [UU]
      
md3 : active raid1 sdb3[1] sda3[0]
      102398208 blocks [2/2] [UU]
      
md6 : active raid1 sdb5[1] sda5[0]
      10241280 blocks [2/2] [UU]
      
md4 : active raid1 sdb6[1] sda6[0]
      10241280 blocks [2/2] [UU]
      
md2 : active raid1 sdb8[1]
      6144704 blocks [2/1] [_U]
      
md1 : active raid1 sdb7[1] sda7[0]
      10241280 blocks [2/2] [UU]

Вот тут настораживает, что sda8[0] нет, но я интересовался у старого админа - говорит, это нормально, потому что там своп.

Логи и все возможные значения

cat /sys/block/$dev/md/mismatch_cnt
изучал - нигде никаких ошибок и ничего подозрительного не нашел.

Подкиньте, пожалуйста, идейку где еще поковыряться и что проверить? На данный момент я сделал только

ENABLED=no
, что бы не зависало, но хотелось бы докопаться до проблемы, а не просто симптомы снять.

 ,

kklkkl
()

Куда и как правильно прописать фейковый дисплей (Mint, Ubuntu)?

На юзверских машинах (c Linux Mint убунтоидным на борту), стоят скриптики, которые помимо всего прочего запускают приложения в ГУЕ... Ежели у юзера монитор выключен, то при удаленном запуске - сктрипт выдает ошибку дескать дисплей не обнаружен и не выполняется. Скрипты переделывать лень, да и не спортивно. Вопрос - как и куда в таком случае прописать фейковый дисплей, что бы на него скрипты «выводили» все что полагается и были уверены, что все в порядке?

Что-то гуглил-гуглил ничего не нашел...

 , , ,

kklkkl
()

После переустановки MATE-DESKTOP не загружается стартовая страница (с логином)

На LMDE заагючила caja (с какого-то перепуга начала постоянно самопроизвольно новые окна открывать), не нашел ничего лучше как сделать apt-get purge mate-core, apt-get install mate-core... в результате при обычной загрузке экран авторизации юзера просто не появляется (все оcnанавливается на логотипе LMDE), если загрузиться в рекавери-моде, из из под рута сказать startx, то mate отлично запускается (но из под рута!), а вот после su username - не запускается - говорит типа нет прав... Никак не пойму в каких файлах и настройках поковыряться, что бы заставить корректно запускаться экран с авторизацией, ну и вобще запустит mate из под юзера...

 , , , ,

kklkkl
()

SVN: up в рабочую версию по ssh - как?

Добрый День!

Никак не пойму как это реализовать. Есть реппозиторий на одной машине, а рабочая версия скриптов должна быть на другой машине, доступ к которой только по SSH. Можно ли в принципе делать svn up по ssh?

 ,

kklkkl
()

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