LINUX.ORG.RU

Сообщения Sferg

 

Каким образом можно сохранить установленную систему в img-файл?

Форум — General

Здравствуйте. Установил Bananian на Banana Pi с помощью файла-образа bananian-1501.img и настроил всё так, как мне нужно. Возможно ли теперь каким-либо образом сохранить настроенную систему обратно в img-файл, чтобы можно было, в случае чего, его снова развернуть на (другую) MicroSD?

 , ,

Sferg
()

Как полностью удалить Desktop Environment с Lubuntu for Bananapi?

Форум — General

Здравствуйте, господа. Ситуация такая: на Banana Pi установил Lubuntu For BananaPi v3.1.1. Доступ к Интернет осуществляется только по Wi-Fi. Подскажите, пожалуйста, каким образом можно удалить Desktop Environment со всеми зависимостями? Не нужен лишний хлам.

P.S. Если не ошибаюсь, в Lubuntu в качестве Desktop Environment используется LXDE.

 , ,

Sferg
()

Banana Pi: постоянно Load Average больше 1.00 - в чём дело?

Форум — Linux-hardware

Здравствуйте, господа. Имеется Banana Pi. Записал Raspbian_For_BananaPro_v1412.img (не знаю, принципиален ли тот факт, что у меня Banana Pi, а не Banana Pro). Всё вроде бы ничего, но заметил, что top/htop постоянно показывает значение Load Average больше 1.00 (одно ядро процессора постоянно на 100% загружено?). Попробовал прибить nginx, mysql, php-fpm, memcached и что смог ещё — ситуация не изменилась. Грешу на то, что ошибочно поставил Raspbian_For_BananaPro_v1412.img вместо Raspbian_For_BananaPi_v3_1.img. Подскажите, пожалуйста, в чём может быть проблема?

P.S. Загрузку Desktop Environment отключил сразу же после «установки» ОС на MicroSD.

 , ,

Sferg
()

Скрипт для автоматического добавления домена на freedns.afraid.org - возможно ли?

Форум — General

Здравствуйте, господа. Пользуюсь замечательным сервисом freedns.afraid.org для привязки своего внешнего IP к доменному имени 3-го уровня (обновление IP-адреса периодическое по Cron). К сожалению, иногда добавленные домены пропадают и приходится их заново вручную добавлять. В связи с этим вопрос к вам, уважаемые Знатоки: возможно ли по Cron'у проверять: удалён ли домен на freedns.afraid.org или нет - если удалён, то чтоб автоматически добавлялся?

С уважением, Геннадий.

 , , , ,

Sferg
()

Прыгают время генерации страницы и количество запросов к БД. Как побороть?

Форум — General

Здравствуйте, господа. Не даёт мне покоя бредово-параноидальная мысль. Заметил, что если обновлять главную страницу phpBB3 с высокой периодичностью (скажем, раз в несколько секунд), то время генерации страницы и количество запросов к БД сильно не прыгают:

Time : 0.028s | 11 Queries | GZIP : On
Time : 0.031s | 11 Queries | GZIP : On
Time : 0.028s | 11 Queries | GZIP : On
Time : 0.029s | 11 Queries | GZIP : On
Time : 0.030s | 12 Queries | GZIP : On
Time : 0.030s | 11 Queries | GZIP : On
Time : 0.030s | 13 Queries | GZIP : On
Time : 0.031s | 12 Queries | GZIP : On
Time : 0.031s | 11 Queries | GZIP : On
Time : 0.028s | 11 Queries | GZIP : On

Однако, если страницу обновлять через более длительное время (скажем, раз в 5 минут), то время генерации страницы и количество запросов к БД увеличиваются:

Time : 0.044s | 19 Queries | GZIP : On
Time : 0.033s | 12 Queries | GZIP : On
Time : 0.037s | 14 Queries | GZIP : On
Time : 0.038s | 12 Queries | GZIP : On
Time : 0.033s | 12 Queries | GZIP : On
Time : 0.052s | 13 Queries | GZIP : On
Time : 0.033s | 12 Queries | GZIP : On
Time : 0.062s | 17 Queries | GZIP : On
Time : 0.036s | 13 Queries | GZIP : On

Подскажите, пожалуйста, возможно ли каким-либо образом сгладить эти скачки показателей (и должны ли они вообще так прыгать)?

В качестве кеширования PHP-кода используется Zend Opcache, а PHP-сессии форума держу в Memcache.

P.S. Если нужна информация с munin, то пожалуйста.

С уважением, Геннадий.

 , , , ,

Sferg
()

Munin не отдаёт изображения. В чём дело?

Форум — General

Здравствуйте, господа. Решил на Debian поставить munin - пособирать статистику с целью выявления узких мест в системе.

1. Ставлю версию 2.0.25-1~bpo70+1 из backports:

aptitude install -t wheezy-backports munin munin-node munin-plugins-extra libwww-perl libio-all-lwp-perl

2. Создаю директорию для хранения контента и назначаю владельца:

mkdir /var/www/munin && chown -R munin:munin /var/www/munin

3. Файл /etc/munin/munin.conf привожу к следующему виду:

dbdir /var/lib/munin
htmldir /var/www/munin
logdir /var/log/munin
rundir /var/run/munin
#tmpldir /etc/munin/templates
#staticdir /etc/munin/static
#cgitmpdir /var/lib/munin/cgi-tmp
includedir /etc/munin/munin-conf.d
#graph_period second
graph_strategy cron
#munin_cgi_graph_jobs 6
#cgiurl_graph /munin-cgi/munin-cgi-graph
#max_size_x 4000
#max_size_y 4000
html_strategy cron
#max_processes 16
#rrdcached_socket /var/run/rrdcached.sock

[test]
address 127.0.0.1
use_node_name yes

4. Файл /etc/munin/munin-node.conf, соответственно, к такому:

log_level 4
log_file /var/log/munin/munin-node.log
pid_file /var/run/munin/munin-node.pid
background 1
setsid 1
user root
group root
ignore_file [\#~]$
ignore_file DEADJOE$
ignore_file \.bak$
ignore_file %$
ignore_file \.dpkg-(tmp|new|old|dist)$
ignore_file \.rpm(save|new)$
ignore_file \.pod$
host_name test
allow ^127\.0\.0\.1$
allow ^::1$
host *
port 4949

5. Далее, обновляю БД:

munin-node-configure --shell | sh
sudo -u munin munin-cron

6. Теперь устанавливаю spawn-fcgi:

aptitutde install spawn-fcgi

7. Создаю сокеты:

spawn-fcgi -s /var/run/munin/fcgi-graph.sock -U www-data -u www-data -g www-data /usr/lib/munin/cgi/munin-cgi-graph
spawn-fcgi -s /var/run/munin/fcgi-html.sock -U www-data -u www-data -g munin  /usr/lib/munin/cgi/munin-cgi-html

8. В /etc/nginx/conf.d/locations.conf добавляю строки:

location ^~ /cgi-bin/munin-cgi-graph/ {
access_log off;
fastcgi_split_path_info ^(/cgi-bin/munin-cgi-graph)(.*);
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass unix:/var/run/munin/fcgi-graph.sock;
include fastcgi_params;
}

location /munin/static/ {
alias /etc/munin/static/;
}

location /munin/ {
fastcgi_split_path_info ^(/munin)(.*);
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass unix:/var/run/munin/fcgi-html.sock;
include fastcgi_params;
}

9. Перезапускаю nginx.

В итоге в /var/www/munin/ контент-файлы появляются, однако, когда захожу на http://admina.vkabinete.net/munin/test/test/, то изображений нет. В чём может быть проблема?

 , , , ,

Sferg
()

Как выжать максимальное быстродействие из дисковой подсистемы (и не только)?

Форум — General

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

В файл /etc/sysctl.conf добавил следующие строки:

vm.dirty_ratio = 90
vm.dirty_background_ratio = 1
vm.dirty_writeback_centisecs = 60000
vm.dirty_expire_centisecs = 60000
vm.laptop_mode = 0
vm.swappiness = 0
vm.vfs_cache_pressure = 1000

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

 , , , ,

Sferg
()

Что-то грузит HDD и CPU веб-сервера. В чём не прав?

Форум — General

Здравствуйте, господа. Решил вот приспособить следующее железо в качестве домашнего веб-сервачка на основе связки NGINX, PHP-FPM, MariaDB, MEMCACHE и Zend OPcache. В качестве ОС выбран Debian Wheezy 64-bit.

CPU: Intel Atom N2800, 1.86GHz (2 ядра + Hyper-Threading)
RAM: 4Gb, DDR3-1066
HDD: 1x640Gb, SATAII, 5400RPM (без каких-либо RAID'ов!)

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

/etc/php5/fpm/php.ini (лишние строки исключил, дабы сократить список)

[PHP]
engine = On
short_open_tag = Off
asp_tags = Off
precision = 14
output_buffering = Off
zlib.output_compression = Off
implicit_flush = Off
unserialize_callback_func =
serialize_precision = 17
disable_functions = apache_child_terminate,apache_note,apache_setenv,debugger_off,debugger_on,define_syslog_variables,dl,escapeshellarg,escapeshellcmd,exec,ini_restore,leak,max_execution_time,passthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pclose,php_uname,popen,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,posix_getpwuid,posix_kill,posix_mkfifo,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_uname,shell_exec,symlink,syslog,system
disable_classes =
ignore_user_abort = Off
zend.enable_gc = On
expose_php = Off
max_execution_time = 30
max_input_time = 60
memory_limit = 128M
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = Off
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = Off
html_errors = On
variables_order = "GPCS"
request_order = "GP"
register_argc_argv = Off
auto_globals_jit = On
post_max_size = 8M
auto_prepend_file =
auto_append_file =
default_mimetype = "text/html"
default_charset = "UTF-8"
doc_root =
user_dir =
enable_dl = On
fastcgi.logging = 0
file_uploads = On
upload_max_filesize = 2M
max_file_uploads = 20
allow_url_fopen = Off
allow_url_include = Off
default_socket_timeout = 60

[Pdo_mysql]
pdo_mysql.cache_size = 2000
pdo_mysql.default_socket =

[mail function]
SMTP = localhost
smtp_port = 25
mail.add_x_header = On

[SQL]
sql.safe_mode = On

[MySQL]
mysql.allow_local_infile = On
mysql.allow_persistent = On
mysql.cache_size = 4000
mysql.max_persistent = -1
mysql.max_links = -1
mysql.default_port =
mysql.default_socket =
mysql.default_host =
mysql.default_user =
mysql.default_password =
mysql.connect_timeout = 60
mysql.trace_mode = Off

[MySQLi]
mysqli.max_persistent = -1
mysqli.allow_local_infile = On
mysqli.allow_persistent = On
mysqli.max_links = -1
mysqli.cache_size = 4000
mysqli.default_port = 3306
mysqli.default_socket =
mysqli.default_host =
mysqli.default_user =
mysqli.default_pw =
mysqli.reconnect = On

[mysqlnd]
mysqlnd.collect_statistics = On
mysqlnd.collect_memory_statistics = Off

[Session]
session.save_handler = files
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 1
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.bug_compat_42 = On
session.bug_compat_warn = On
session.referer_check =
session.entropy_file = /dev/urandom
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 1
session.hash_bits_per_character = 6
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"

/etc/php5/fpm/php-fpm.conf

[global]
pid = /var/run/php5-fpm.pid
error_log = /var/log/php5-fpm/error.log
log_level = notice
events.mechanism = epoll
include=/etc/php5/fpm/pool.d/*.conf

/etc/php5/fpm/pool.d/example.com

[example.com]
user = example.com
group = example.com
listen = /var/run/php5-fpm_example.com.sock
listen.backlog = 4096
listen.owner = www-data
listen.group = www-data
listen.mode = 0666
listen.allowed_clients = 127.0.0.1
pm = static
pm.max_children = 4
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 4
pm.status_path = /php_status
ping.path = /php_ping
ping.response = pong
access.log = /var/log/php5-fpm/$pool.access.log
access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"
slowlog = /var/log/php5-fpm/$pool.slow.log
request_slowlog_timeout = 7s
request_terminate_timeout = 90s
chdir = /home/example.com/www
catch_workers_output = yes
security.limit_extensions = .php
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

php_flag[display_errors] = Off
php_admin_flag[log_errors] = On
php_admin_value[error_reporting] = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
php_admin_value[error_log] = /var/log/php5-fpm/error.log
php_admin_value[date.timezone] = Europe/Moscow
;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f dyvniy@yandex.ru
;php_admin_value[open_basedir] = "/home/example.com/"
php_admin_value[cgi.fix_pathinfo] = 1
php_admin_value[expose_php] = Off
php_admin_value[allow_url_fopen] = On
php_admin_value[disable_functions] = exec,passthru,shell_exec,system,proc_open,popen,curl_multi_exec,parse_ini_file,show_source
php_admin_value[sql.safe_mode] = Off
php_admin_value[max_execution_time] = 60
php_admin_value[max_input_time] = 60
php_admin_value[memory_limit] = 128M
php_admin_value[realpath_cache_size] = 4096K
php_admin_value[realpath_cache_ttl] = 300
php_admin_value[upload_max_filesize] = 10M
php_admin_value[post_max_size] = 10M
php_admin_value[default_charset] = utf-8
php_admin_value[mbstring.internal_encoding] = utf-8
php_admin_value[session.save_handler] = memcache
php_admin_value[session.save_path] = "tcp://localhost:11211"
php_admin_value[upload_tmp_dir] = /home/example.com/tmp
php_admin_value[soap.wsdl_cache_dir] = /home/example.com/tmp

/etc/mysql/my.cnf

[client]
port = 3306
host = localhost
socket = /var/run/mysqld/mysqld.sock
character-sets-dir = /usr/share/mysql/charsets

[mysql]
no-auto-rehash
no-beep
safe-updates
character-sets-dir = /usr/share/mysql/charsets

[mysqld]
server-id = 1
user = mysql
pid_file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
bind-address = 127.0.0.1
basedir = /usr
datadir = /var/lib/mysql
#tmpdir = /run/shm
tmpdir = /dev/shm
max_connections = 100
max_user_connections = 50
max_connect_errors = 10
back_log = 50
max_allowed_packet = 16M
max_sort_length = 512

#skip-character-set-client-handshake
character-set-server = utf8
character-sets-dir = /usr/share/mysql/charsets
collation-server = utf8_general_ci
init-connect = "SET NAMES utf8"
init-connect = "SET CHARACTER SET utf8"
init-connect = "SET CHARSET utf8"

default-storage-engine = InnoDB
sql-mode = ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_IN_DATE
transaction-isolation = READ-COMMITTED
flush_time = 0
ft_min_word_len = 4
local-infile = 1
loose-local-infile = 1
open_files_limit = 4110
sysdate_is_now = 1
low-priority-updates
#memlock
skip-name-resolve
skip-external-locking
skip-networking
skip-archive
skip-blackhole
skip-federated
skip-partition
feedback = Off

concurrent_insert = ALWAYS
myisam-recover-options = backup,force
myisam_max_sort_file_size = 256M
myisam_data_pointer_size = 6
myisam_sort_buffer_size = 64M
myisam_repair_threads = 1
myisam_use_mmap = ON
#myisam_mmap_size = <VALUE>
#myisam_stats_method = <enumeration>

innodb_fast_shutdown
innodb = FORCE
innodb_buffer_pool_size = 1G
innodb_log_buffer_size = 8M
innodb_file_per_table = 1
#innodb_force_recovery = 1
innodb_lock_wait_timeout = 30
innodb_buffer_pool_instances = 8
innodb_checksum_algorithm = 0
innodb_concurrency_tickets = 5000
innodb_data_file_path = ibdata1:10M:autoextend
innodb_data_home_dir = /var/lib/mysql
innodb_max_dirty_pages_pct = 90
innodb_old_blocks_time = 1000
innodb_stats_on_metadata = 0
innodb_flush_log_at_trx_commit = 0
innodb_log_file_size = 128M
innodb_log_files_in_group = 2
innodb_log_group_home_dir = /var/lib/mysql
innodb_flush_method = O_DIRECT
innodb_strict_mode = 1
innodb_open_files = 400
innodb_io_capacity = 400
innodb_file_format = Barracuda
innodb_autoinc_lock_mode = 2
innodb_doublewrite = 1
innodb_rollback_on_timeout = 1
innodb_buffer_pool_dump_at_shutdown = 1
innodb_buffer_pool_dump_now = 1
innodb_buffer_pool_load_at_startup = 1
innodb_buffer_pool_load_now = 1
innodb_thread_concurrency = 4
innodb_read_io_threads = 4
innodb_write_io_threads = 4
innodb_file_io_threads = 4
skip-innodb_adaptive_hash_index
#skip-innodb_doublewrite

bulk_insert_buffer_size = 2M
join_buffer_size = 3M
key_buffer_size = 32M
read_buffer_size = 2M
read_rnd_buffer_size = 4M
sort_buffer_size = 2M

table_open_cache = 4096
table_definition_cache = 4096
max_heap_table_size = 32M
tmp_table_size = 32M
max_tmp_tables = 25

query_cache_type = 1
query_cache_size = 32M
query_cache_limit = 2M
query_cache_min_res_unit = 4096
query_cache_wlock_invalidate = ON

thread_cache_size = 100
thread_concurrency = 4
thread_stack = 512K
thread_handling = one-thread-per-connection

connect_timeout = 5
interactive_timeout = 30
wait_timeout = 60

general_log = 1
general_log_file = /var/log/mysql/general.log
log-error = /var/log/mysql/error.log
log_warnings = 2
#log-bin = /var/log/mysql/mysql-bin.log
#binlog-format = mixed
expire_logs_days = 2
max_binlog_size = 100M
max-binlog-cache-size = 1M
#binlog_row_event_max_size = 8K
#sync_binlog = 1
#binlog_do_db = include_database_name
#binlog_ignore_db = include_database_name
slow-query-log = 1
slow-query-log-file = /var/log/mysql/slow.log
long_query_time = 1
#log_slow_rate_limit = 1000
log_slow_verbosity = query_plan
#log-queries-not-using-indexes
#log-slow-admin-statements

[mysqldump]
quick
quote-names
max_allowed_packet = 16M

[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
syslog
open-files-limit = 2048

[myisamchk]
key_buffer_size = 50M
sort_buffer_size = 50M
read_buffer = 8M
write_buffer = 8M

[mysqlhotcopy]
interactive-timeout

Если не сложно, покритикуйте представленные конфиги (конфиг NGINX не предоставлял, так как он особо систему не грузит). Возможно где-то напортачил, из-за чего идёт сильная нагрузка на CPU и на HDD. Быть может возможно с помощью конфигов ещё немного быстродействия выжать?

P.S. И да, использую InnoDB. В оптимизации SQL-запросов пока что чайник. Полагаю, что должен быть ещё потенциал в конфигах.

С уважением, Геннадий.

Sferg
()

Каким образом можно заставить nginx возвращать заголовок Last-Modified и воспринимать If-Modified-Since?

Форум — General

Здравствуйте, господа. Установлена связка nginx + php-fpm. При обращении к статичному контенту (html, jpg и т.д.) заголовок Last-Modified возвращается нормально, но не воспринимается If-Modified-Since. Если же обращаюсь к динамичному контенту (php), то Last-Modified не возвращается и не воспринимается If-Modified-Since. Подскажите, пожалуйста, каким образом можно заставить nginx возвращать заголовок Last-Modified для php и воспринимать If-Modified-Since? В качестве средства проверки использую сайт http://last-modified.com/ru/if-modified-since.html.

Вот мой конфиг nginx:

user www-data www-data;
worker_processes 2;
worker_cpu_affinity 0101 1010;
worker_rlimit_nofile 8192;
worker_priority -5;
timer_resolution 100ms;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;

events {
    worker_connections 2048;
    multi_accept on;
    accept_mutex on;
    use epoll;
}

http {
    include mime.types;
    default_type application/octet-stream;
    index index.html index.htm index.php;

    upstream example.com {
        server unix:/var/run/php5-fpm_example.com.sock max_fails=3 fail_timeout=3s;
    }

    server {
        listen *:80;
        server_name example.com;
        root /home/example.com/www;
        access_log /var/log/nginx/access.log;

        location ~ ^.+\.php(?:/.*)?$ {
            fastcgi_pass example.com;
            include fastcgi_params;
            fastcgi_split_path_info ^(.+?\.php)(/.*)$;
            if ($uri ~ ^(?<script_name>.+\.php)?(?<path_info>/.*)?$) {}

            set $path_info_final $path_info;
            if ($fastcgi_path_info != '') {
                set $path_info_final $fastcgi_path_info;
            }

            fastcgi_param PATH_INFO $path_info_final;

            set $script_name_final '/index.php';
            if ($script_name != '') {
            set $script_name_final $script_name;
            }

            fastcgi_param SCRIPT_FILENAME $document_root$script_name_final;

            if (!-e $document_root$script_name_final) {
                return 404;
            }

            fastcgi_param SCRIPT_NAME $script_name_final;

            set $request_uri_final $request_uri;
            if ($path_info_final != '') {
                set $request_uri_final $path_info_final$is_args$args;
            }

            fastcgi_param REQUEST_URI $request_uri_final;
            fastcgi_index index.php;
            fastcgi_next_upstream error timeout;
            fastcgi_keep_conn on;
            fastcgi_hide_header "X-Powered-By";
        }

        location / {
            index index.html index.htm index.php;
            try_files $uri $uri/ /index.html /index.htm /index.php;
        }

        location /blog {
            try_files $uri $uri/ /blog/index.php?q=$uri&$args;
        }

        location ~ \.(htc|js|js2|js3|js4)$ {
            expires 31536000s;
            add_header Pragma "public";
            add_header Cache-Control "max-age=31536000, public, must-revalidate, proxy-revalidate";
        }

        location ~ \.(html|htm|rtf|rtx|svg|svgz|txt|xsd|xsl|xml)$ {
            expires 3600s;
            add_header Pragma "public";
            add_header Cache-Control "max-age=3600, public, must-revalidate, proxy-revalidate";
        }

        location ~ \.(asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|eot|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|json|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|otf|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|pot|pps|ppt|pptx|ra|ram|svg|svgz|swf|tar|tif|tiff|ttf|ttc|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip)$ {
            expires 31536000s;
            add_header Pragma "public";
            add_header Cache-Control "max-age=31536000, public, must-revalidate, proxy-revalidate";
        }
    }
}
Sferg
()

Возможно ли установить Debian Wheezy при 64Mb ОЗУ?

Форум — General

Здравствуйте. Возможно ли вообще установить Debian Wheezy при 64Mb ОЗУ? В частности, интересует установка на Virtualbox или VMWare Workstation.

Sferg
()

Как разблокировать каналы 12-14 для WiFi-карточки TP-Link TL-WN881ND?

Форум — General

Здравствуйте. На ПК установлена WiFi-карточка TP-Link TL-WN881ND (на чипе AR9287), работающая в режиме точки доступа под управлением hostapd и ОС Debian Wheezy. Подскажите, пожалуйста, как разблокировать и сделать доступными для использования каналы с 12 по 14? Хочется, в идеале, перейти на 14-й канал (11+14), поскольку соседние точки доступа сидят на каналах с 1 по 13, а 14-й не используется. Ну, и мощность сигнала увеличить, ибо в настоящее время драйвера карточки не позволяют это сделать (уменьшить можно).

Вывод uname -a

Linux PC-Router 3.2.0-4-amd64 #1 SMP Debian 3.2.63-2 x86_64 GNU/Linux

Вывод iw list | grep MHz

* 2412 MHz [1] (16.0 dBm)
* 2417 MHz [2] (16.0 dBm)
* 2422 MHz [3] (16.0 dBm)
* 2427 MHz [4] (16.0 dBm)
* 2432 MHz [5] (16.0 dBm)
* 2437 MHz [6] (16.0 dBm)
* 2442 MHz [7] (16.0 dBm)
* 2447 MHz [8] (16.0 dBm)
* 2452 MHz [9] (16.0 dBm)
* 2457 MHz [10] (16.0 dBm)
* 2462 MHz [11] (16.0 dBm)
* 2467 MHz [12] (disabled)
* 2472 MHz [13] (disabled)
* 2484 MHz [14] (disabled)

Sferg
()

Курсор в форме блока - при перезапуске демонов слетает в обычный. Как побороть?

Форум — General

Здравствуйте. Решил себе взгляд потешить - сделать немигающий курсор в командной строке Debian в виде вертикального блока. Для этого в конце файла .bashrc добавил строчку:

echo -e '\033[?17;7;113c'

К сожалению, в ряде случаев - например, при запуске htop или (пере)запуске из init.d сервиса hostapd - курсор сбрасывается на стандартный: становится горизонтальной мигающей чёрточкой.

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

Sferg
()

Возможно ли скрыть Set-Cookies из HTTP-заголовков не ломая авторизацию?

Форум — General

Здравствуйте, господа. Настроена связка nginx + php-fpm. Возможно ли скрыть строки Set-Cookies из HTTP-заголовков от посторонних глаз так, чтобы не сломалась возможность авторизации на сайте? Пробовал добавлять в конфиг nginx строчку:

fastcgi_hide_header «Set-Cookie»;

Строки Set-Cookies в HTTP-заголовках исчезают, однако при этом становится невозможной процедура авторизации на сайте. Возможно, я несколько параноидален, но как-то не хочется всем и вся «светить» данной информацией.

С уважением, Геннадий.

Sferg
()

Как подружить Midnight Commander с цветовой темой xoria256?

Форум — General

Здравствуйте. На ПК установлен минимальный Debian Wheezy (без графического Desktop Environment). Установил Midnight Commander с цветовой темой xoria256. В /home/username/.bashrc прописал:

case "$TERM" in
    'xterm') TERM=xterm-256color;;
    'screen') TERM=screen-256color;;
    'Eterm') TERM=Eterm-256color;;
esac

Если захожу с помощью PuTTY или ConnectBot (с указанным в настройках xterm-256color), то запускается mc так, как нужно, однако, если я захожу напрямую с ПК, то при запуске mc ругается на то, что не может запуститься в 256-и цветном режиме и запускается с классической синей расцветкой.

Возможно ли как-то преодолеть это досадное недоразумение? Конечно, я, в основном, захожу через PuTTY (с винды) или через ConnectBot (Android) и это особо не критично, но хотелось бы лицезреть красоты mc на экране монитора при входе в систему напрямую с ПК.

Sferg
()

Как заблокировать исходящий трафик в Интернет с компьютеров из локальной сети?

Форум — General

Здравствуйте, господа. Имеется самосборный сетевой шлюз на Debian Wheezy (192.168.0.1). Также имеются ПК пользователей c Windows 7\8.1 (192.168.0.31, 192.168.0.33, 192.168.0.61). На Sidebar винды выведен гаджет Network Meter: давно обратил внимание, что частенько (особенно в Windows 8.1) откуда-то и куда-то идёт трафик (шпионы орудуют, не иначе!). Поскольку я немного страдаю паранойей, то захотелось мне обломать врага, заблокировав исходящий трафик на всех лишних портах. Брандмауэру буржуйской винды я ни разу не доверяю, посему планируется заблокировать исходящий трафик с ПК пользователей средствами Debian Wheezy на сетевом шлюзе. В связи с этим у меня к вам вопрос, уважаемые Знатоки: как сие реализовать?

Совсем вкратце, мой свод правил iptables выглядит так:

#!/bin/bash
iptables -F
iptables -X
iptables -t mangle -F
iptables -t mangle -X
iptables -t nat -F
iptables -t nat -X

iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT DROP

for int in lo eth0; do
    iptables -A INPUT -i $int -j ACCEPT
    iptables -A OUTPUT -o $int -j ACCEPT
done

for ext in eth1 br0; do
    iptables -A INPUT -i $ext -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    iptables -A INPUT -i $ext -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
    iptables -A OUTPUT -o $ext -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
    iptables -A POSTROUTING -t nat -o $ext -j MASQUERADE
done

, где: eth0 - интерфейс, смотрящий в локальную сеть, eth1 - интерфейс, смотрящий наружу.

Sferg
()

Как узнать, с какими параметрами был собран PHP?

Форум — General

Здравствуйте, господа. Подскажите, как можно узнать, с какими параметрами был собран PHP?

1. В phpinfo() нет раздела Configure Command.

2. Команда php -i | grep 'Configure Command' ничего не выводит.

Где ещё можно посмотреть?

P.S. Я устанавливал PHP v5.4.4-14+deb7u14 из штатного репозитория Debian Wheezy (x86_64).

С уважением, Геннадий.

 

Sferg
()

Не срабатывает Cron-задание. В чём загвоздка?

Форум — General

Здравствуйте. Задумал организовать ежедневное создание резервной копии БД в 4 часа утра.

Для этого добавил в Cron следующую строчку:

* 4 *  *  * /usr/bin/mysqldump -u root -ppassword database > /tmp/backup.sql

Здесь всё замечательно и всё хорошо: в 4 часа утра создаётся файл. Однако захотелось мне, чтоб при создании имя нового файла отличалось от старого (например, датой\временем). Для этого строчку видоизменил:

* 4 *  *  * /usr/bin/mysqldump -u root -ppassword database > /tmp/backup_$(date +%d-%m-%Y,%H:%M:%S).sql

А вот эта «конструкция» уже не исполняется - файл не создаётся. При этом, если в консоли набрать:

/usr/bin/mysqldump -u root -ppassword database > /tmp/backup_$(date +%d-%m-%Y,%H:%M:%S).sql

, то файл создастся. А вот в Cron'е почему-то не срабатывает. В чём неправ?

С уважением, Геннадий.

Sferg
()

Каким образом можно дефрагментировать таблицы InnoDB СУБД MySQL?

Форум — Web-development

Здравствуйте, господа. На домашнем PC-роутере (с Debian на борту) установлена MySQL v5.5.39 (MariaDB). Имеются следующие БД:

forum_phpbb3
information_schema
mysql
performance_schema
phpmyadmin

По умолчанию, сервер MySQL сконфигурирован на работу с таблицами InnoDB. В конфиге также прописал параметр innodb_file_per_table. БД forum_phpbb3 состоит полностью из таблиц InnoDB.

С помощью скрипта mysqltuner.pl оценил состояние системы - появилось сообщение о том, что имеется 83 фрагментированных таблиц. Причём 83 таблицы - InnoDB.

Мои дальнейшие действия:

1. Сделал бэкап БД forum_phpbb3:

mysqldump -u root -p forum_phpbb3 > /tmp/forum_phpbb3.sql

2. Удалил БД forum_phpbb3:

mysqladmin -u root -p drop forum_phpbb3

3. Создал пустую БД forum_phpbb3:

mysqladmin -u root -p create forum_phpbb3

4. Восстановил таблицы в пустую БД forum_phpbb3 из бэкапа:

mysql -u root -p forum_phpbb3 < /tmp/forum_phpbb3.sql

Количество фрагментированных таблиц, полученных с помощью скрипта mysqltuner.pl, сократилось до 20.

Те же 4 действия провёл с БД phpmyadmin - количество фрагментированных таблиц сократилось до 3.

Подскажите, пожалуйста, где (и как) найти и дефрагментировать оставшиеся 3 таблицы?

P.S. В администрировании MySQL, можно сказать, новичок. Так что сильно не ругайтесь.

С уважением, Геннадий.

Sferg
()

Ошибка при первом запуске скрипта - как побороть?

Форум — Web-development

Здравствуйте, господа. Решил вот попробовать свои силы в освоении PHP. Новичок я пока что совсем зелёный. Сваял такой вот ГК:

<?php
    function function1($item) {
?>

<form name="form1" method="post" action="lesson8.php">
<br>Выберите продукты:<br><br>
        <select name=products[] size=7 multiple>
            <option>Яблоки</option>
            <option>Молоко</option>
            <option selected>Колбаса</option>
            <option>Сыр</option>
            <option selected>Вино</option>
            <option selected>Хлеб</option>
            <option>Сигареты</option>
        </select>
        <br><br>Вы выбрали следующие продукты:
        <br><br><?="<b>$item<b><br></b>";?><br>
        <input type="submit" value="Продолжить">
</form>

<?php
    }
    function function2() {
        if(!is_array($_POST['products'])) {
            $_POST['products'] = array();
        }
        return join("<br>", array_values($_POST['products']));
    }
?>

<?php
if(!isset($_POST['products'])) {
    echo "<font color=red>Переменная <b>\$_POST['products']</b> не определена!</font><br>"; }
    else { echo "<font color=green>Переменная <b>\$_POST['products']</b> существует!</font><br>"; }
    function1(function2());
?>

При запуске всё работает, но пишет: Notice: Undefined index: products on line 24 Собственно, вопрос: как правильно «задефинить» это индекс, чтоб замечение пропало?

Отключать сообщения об ошибках просьба не предлагать.

Sferg
()

Как настроить XDebug и phpStorm для отладки?

Форум — General

Здравствуйте. Решил попробовать свои силы в изучении PHP. Имеется домашний WiFi-роутер (на основе ПК c Debian Wheezy на борту) c настроенной локальной сетью и связкой Nginx + PHP-FPM + MariaDB. Этот WiFi-роутер подключён к Интернету и имеет адрес (WAN: 46.72.25.71, LAN: 192.168.0.1). К WiFi-роутеру по локалке подключён домашний ПК (LAN: 192.168.0.31) c ОС Windows 8.1, на которую установлен phpStorm. На WiFi-роутере для отладки PHP-кода установлен пакет php5-xdebug, конфиг (/etc/php5/mods-available/xdebug.ini) которого следующий:

zend_extension = /usr/lib/php5/20100525/xdebug.so

xdebug.remote_enable = on
xdebug.remote_autostart = on
;xdebug.remote_connect_back=1
xdebug.remote_host = localhost
xdebug.remote_port = 9000
xdebug.remote_handler = dbgp
xdebug.remote_mode = req
;xdebug.remote_log = /var/php5-fpm/xdebug.log
xdebug.idekey = PHPSTORM

Сам phpStorm настраивал по этой статейке: http://whiskeyman.ru/articles/ubuntu/11-ustanovka-i-nastrojka-xdebug-dlya-php...

Использую на ПК с Windows браузер Opera 12.17 c расширением Xdebug 1.0. Проблема в том, что если я в php-коде ставлю брейкпоинт и задействую отладку, то phpStorm на это никак не реагирует - не появляется никаких переменных и логов.

Ребят, подскажите, в чём я неправ? Уже 3-й день маюсь... По жаре озарение что-то не приходит(((

C уважением, Геннадий.

Sferg
()

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