NiFi в Windows переполнение лога logrotate Logback не работает
В NiFi предусмотрена ротация логов, стандартные настройки должны работать, но..
В NiFi предусмотрена ротация логов, стандартные настройки должны работать, но..
Если при запуске (или при выполнении restart, reload) Apache выдает ошибку
Apache2 could not reliably determine the server’s fully qualified domain name using 127.0.0.1
это значит, что он не может определить имя хоста.
В некоторых статьях-заметках рекомендуется указывать в файле /etc/apache2/conf.d/vhosts.conf директиву
ServerName localhost,
однако правильнее настроить имя сервера в файле /etc/hosts
127.0.0.1 localhost
89.0.0.0 my-server.ru
Иногда требуется в .htaccess сделать редирект (внутренний или внешний) при помощи mod_rewrite для ЧПУ адресов с русскими буквами. Но проблема в том, что русские SEO-URL не обрабатываются в .htaccess (за исключением маски .* - любой символ)
Варианты вроде
RewriteRule %EF%E8%F1%FC%EC%EE letter.htm [R=301,L]
RewriteRule Письмо letter.htm [R=301,L]
# пробуем экранировать символ процента
RewriteRule ^(\%) index.php?url=$1
И всё-таки, как написать RewriteRule при кодировании русских ссылок?
RewriteRule ^([0-9-А-Я]+)(/)? index.php [R=301,L]
Методом проб и ошибок установлено, что в правилах, написанных в .htaccess не распознаётся символ %
Один из работающих вариантов, который перенаправляет все обращения к адресу
AddDefaultCharset UTF-8
RewriteRule ^(.*) index.php?url=$1 [L]
Естественно, его следует дополнить условиями (если файл или каталог не существует)
“Нормального” решения, как преобразовать конкретный русский адрес именно в .htaccess я не нашёл.
www.site.ru/русский_URL.html
/%EF%E8%F1%FC%EC
Вот такой код работает, однако перечислять все русские буквы в .htaccess - не есть хорошо
RewriteRule ^([абвгдеёжзийклмнопрстуфхцчшщьыъэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯa-zA-Z0-9\%]+)$ index.php?url=$1
Клёвый гайд по RewriteRule http://www.egoroff.spb.ru/portfolio/apache/rewriteguide.html
На многих хостингах встречал установленный awstats. При этом, в разделе переходы по ключевым фразам (Search Keyphrases) вместо привычных русских букв - непонятные кракозябры (ну и англицкие буквы с цифрами проскакивают)
1. смотрим кодировку файла (вид-кодировка- UTF-8). Если после изменения кодировки кракозябры стали русскими буквами, то awstats корректно обрабатывает, но некорректно выводит. Заглядываем в код и.. ищем строчку:
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
Если кодировка не русскоязычная, следует в файле
/usr/local/etc/awstats/awstats.mysite.com.conf
поменять Lang=”auto” на Lang=”ru”
2. Если кодировка русскоязычная, но “не та” (Utf-8 вместо cp1251 или наоборот) -
исправляем в /usr/local/www/awstats/cgi-bin/lang/awstats-ru.txt
PageCode=windows-1251 на PageCode=utf-8 (или наоборот - выбрать нужное)
3. Еще полезно будет раскомментировать строку конфигурационного файла, включающую decodeutfkeys - помогает, когда поисковые строки в разных кодировках.
Конфиги awstats искать в каталогах (варианты есть, но предсказуемые)
/etc/awstats/awstats.conf /usr/local/etc/awstats/
http://www.legco.net/entry-348.php
Правильная (точнее, желаемая) работа PHP интерпертатора зависит от правильной конфигурации. Конфигурационные настройки PHP или директивы php.ini (php_value или php_flag) можно задавать несколькими способами:
Мы рассмотрели все возможные способы задания конфигурационных настроек интерпретатора PHP (Да, если кто знает другие варианты - сообщите.)
Есть еще маленькое “но”. Не все переменные php_value разрешено изменять в файле .htaccess (в зависимости от настроек сервера, изменение конфигурации PHP пользователем вообще может быть запрещено)
Некоторые настройки (:
php_value register_globals on
php_flag session.use_trans_sid off
php_flag session.use_only_cookies on
php_value max_execution_time 60
php_value upload_max_filesize 8M
php_flag display_errors off
php_flag log_errors on
php_value error_reporting 2047
php_value error_log log-file.txt
UPD шпаргалка по разрешениям изменений настроек PHP:
PHP_INI_USER = 1 значение может быть установлено в пользовательских скриптах
PHP_INI_PERDIR = 2 значение может быть установлено в php.ini, .htaccess или httpd.conf
PHP_INI_SYSTEM = 4 значение может быть установлено в php.ini или httpd.conf
PHP_INI_ALL = 7 значение может быть установлено где угодно
Ищем ошибки в PHP-скриптах (белый экран)
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
.htaccess - служебный файл веб-сервера Apache (и не только), в котором можно указать дополнительные настройки для отдельного сайта или каталога.
Краткая шпаргалка по настройкам в htaccess:
(настройки php в .htaccess - php_flag и php_value в отдельной статье)
# Кодировка страниц по умолчанию
AddDefaultCharset utf-8
ErrorDocument *собственные страницы ошибок
ErrorDocument 404 /404.htm
#
Options +FollowSymlinks
# запрет выдачи списка файлов при отсутствии индексного файла
Options -Indexes
# запрещаем выводить в списке файлов файлы по маске
Options Indexes
IndexIgnore *.php* *.pl
#разрешаем запуск CGI
Options +ExecCGI
# индексный файл по умолчанию - DirectoryIndex указывается для каталога в котором расположен htaccess и всех нижележащих
DirectoryIndex index.html index.shtml index.pl index.cgi index.php
# Запрещаем доступ для всех
Order Deny,Allow
Deny from all
# или запрещаем для всех, кроме “избранных”
Order Deny,Allow
Deny from all
Allow from local.
Allow from 97.23.41.14, 97.23.41.15
#запрещаем просматривать изображения всем, кроме пользователя с IP-адреса
#синтаксис регулярных выражений
<FilesMatch “\.(gif|jpe?g|png)$”>
Order Deny,Allow
Deny from all
Allow from 97.23.41.15
</FilesMatch>
AuthName “Control Panel”
AuthType Basic
AuthUserFile /home/www/users/levik/secure/.htpasswd
require valid-user
полный путь к файлу можно определить, выполнив в PHP скрипте команду echo __FILE__;
Считаете нужным добавить? Отпишитесь в комментариях.
Довольно часто, приходя на различные сайты можно увидеть красиво оформленную страницу, на которой значится “Страницы не существует, попробуйте посмотреть что-нибудь ещё”. “Так почему же у меня на белом фоне огромадными буквами высвечивается 404 ERROR?”
Будем исправлять! Тем более, что это не так сложно, а выйгрыш, пожалуй, будет значителен.
Делаем собственную страницу 404 ошибки
“Рецепт” создания своей собственной 404 страницы прост: читать дальше о создании собственной 404 страницы
Скорее шпаргалка, чтоб не забыть… Постепенно дополняется… Причесать будем позже.
Настраиваем Apache - редактируем файл httpd.conf:
# TimeOut: The number of seconds before receives and sends time out.
TimeOut 60
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to “Off” to deactivate.
KeepAlive On
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
MaxKeepAliveRequests 100
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
KeepAliveTimeout 10
## Server-Pool Size Regulation (MPM specific)
# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# ServerLimit: maximum value for MaxClients for the lifetime of the server
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
StartServers 3
MinSpareServers 3
MaxSpareServers 10
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
KeepAlive On имеет смысл ставить на сайтах с относительно большим количеством изображений. Оптимальное время “таймаута” и количество MaxKeepAliveRequests , скорее всего, имеет смысл подбирать “опытным” путем. Обычно не больше 10-15 секунд. Для файл-хостингов лучше будет выставить KeepAlive Off
MinSpareServers и MaxSpareServers - Spare - “запасной” - неиспользуемые процессы (баланс ресурсов процессора и памяти - на запуск процесса требуется некоторое время, которое можно “сэкономить”, если свободный процесс уже висит в памяти.. Однако, если процессов слишком много, то они занимают лишнюю память)
ServerLimit - максимальное значение MaxClients на “время жизни” процесса;
MaxClients - максимальное количество одновременно запущенных процессов (по сути - клиентов) - чем больше, тем больше одновременных запросов можем обработать (соответственно, занимая больше памяти и используя больше процессорных ресурсов);
если сервер уже обслуживает MaxClients запросов, новые запросы попадут в очередь, размер которой устанавливается с помощью директивы ListenBacklog;
MaxRequestsPerChild - максимально возможное количество “дочерних” процессов - при переполнении дочерний процесс автоматически завершается
Для изображений (более-менее постоянных) имеет смысл выставить значение Expires, например на месяц
ExpiresActive On
ExpiresByType image/gif "access plus 30 days"
#ExpiresByType image/jpeg "access plus 20 days"
ExpiresByType image/jpeg A2592000
материалы по оптимизации Apache (пополняется)
http://www.greenmice.info/node/98
http://www.salex.ru/book/book.php?httpd_prefork
http://www.xela.ru/2009/03/nastrojka-httpdconf-na-vps-pod-unix-apache/
http://linux.yaroslavl.ru/docs/serv/
memory - информация о CPU и загрузке процессора в реальном времени
netstat -atun | grep -i ‘wait’ | wc -l - количество открытых соединений в режиме ожидания
netstat -atun | grep 'WAIT' | wc -l
Узнать версию ядра и самого линукса и дополнительную информацию:
cat /etc/issue
uname -a
cat /proc/version
При помощи mod_rewrite можно обрабатывать те или иные адреса. Возможности модуля достаточно велики - ведь используются регулярные выражения. Однако, “типовых” задач не так уж много. Итак… сборник “шпаргалок” по mod_rewrite для начинающих.