Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
admin Site Admin
Зарегистрирован: 11.09.2008 Сообщения: 546
|
Добавлено: Вт Мар 17, 2009 12:55 am Заголовок сообщения: частые проблемы с известными скриптами |
|
|
wordpres
------------------------------
Warning: Cannot modify header information - headers already sent by (output started at /xxxxxxxx/wp-config.php:1)
=============================
http://blog.portal.kharkov.ua/2008/04/08/find_bom/
------------------------------------------------------------
Как найти BOM?
Очень часто при работе с WordPress много неприятностей доставляет наличие BOM в сохраненных в utf-8 файлах.
Ошибка проявляется в виде сообщения:
Warning: Cannot modify header information - headers already sent by (output started at /xxxxxxxx/wp-config.php:1)
Может быть не wp-config.php, а другой файл. А может сообщения вообще не быть, если вывод предупреждений подавлен. Когда ошибка на виду, найти файл не составит проблемы. А если нет сообщения?
Для облегчения поиска файлов с BOM я нашкрябал простенький скриптик.
Использование:
1. скрипт разархивировать и залить на сервер в корневую директорию
2. в адресной строке броузера набрать http://ваш.сайт/find_bom.php
Для увеличения скорости работы проверяются только те директории, в которые обычно пользователи кладут свои файлы, т.е. корень, /wp-content/themes и /wp-content/plugins.
Если WordPress находится не в корне сайта, то скрипт нужно положить в директорию, где лежит WordPress, и из нее же и запускать.
Скачать[url=newssoft.ru/files/find_bom.zip] find_bom.zip[/url]
См. также Как сохранять файлы в кодировке utf-8.
Добрый человек, известный под ником CMEPTHuk, написал утилитку utf8-bom-remover для поиска и удаления BOM локально, еще до аплоада файлов на сервер. За что ему большое человеческое спасибо! |
|
Вернуться к началу |
|
|
admin Site Admin
Зарегистрирован: 11.09.2008 Сообщения: 546
|
Добавлено: Вс Мар 04, 2012 12:30 pm Заголовок сообщения: |
|
|
Проблема с MODx Не грузится админка
http://community.modx-cms.ru/my/morgn/comment/
"Проблема уже обсуждалась сообществом…
Вот копипаст решения:
1. На хостинге установлен suhosin, расширение для PHP.
2. По умолчанию MODx 2.2 RC2 включает сжатие JS и CSS.
3. Маленькое значение одного из параметров первого не дает возможности нормально функционировать второму.
Решение:
1. Открываем файл /core/cache/system_settings/config.cache.php
2. Правим значения:
'compress_css' => '1',
'compress_js' => '1',
на
'compress_css' => '0',
'compress_js' => '0',
в принципе, наверное, CSS можно и оставить, но я убрал от греха.
3. Сохраняем. Получаем работоспособную админку. Пулей летим в настройки системы и уже там отключаем компрессию. "
http://modx.ws/blog/uroki-modx-revolution/ustanovka-modx-revolution.html
После установки MODx 2.2 заходите в папку и открываете файл /core/cache/system_settings/config.cache.php, меняете 'compress_css' => '1', 'compress_js' => '1' на 'compress_css' => '0', 'compress_js' => '0', далее заходите в System->System Settings и меняете эти же параметры в настройках.
Почему так происходит: сжатые js, css файлы не загружаются (их обрубает на стороне хостера) и в итоге получаем недееспособную админку. Выход - передавать их в несжатом виде. Менеджер будет работать чуть медленее, но будет работать. Если установлен на хостинге suhosin, то попросить техподдержку установить suhosin.get.max_value_length 4096. У меня suhosin отсутствует, но тем не менее с админкой были те же проблемы. |
|
Вернуться к началу |
|
|
admin Site Admin
Зарегистрирован: 11.09.2008 Сообщения: 546
|
Добавлено: Ср Июл 04, 2012 4:58 pm Заголовок сообщения: |
|
|
http://www.shadowxak.ru/articles/set-up-a-watermark-watermark-on-servers-nginx.html
настраиваем водяной знак (Watermark) на серверах NGINX
Столкнулся с проблемой при переезде на новый хостинг, на нем не стал обрабатываться Watermark (водяной знак). Поговорив с технической поддержкой выяснил, что данный хостинг использует связку Nginx+Apache.
Для веб-серверов, работающих в режиме двухуровневой конфигурация Front-End (в нашем случае NGINX) и Back-End (Apache) скрипты "водяного знака" при правильной настройке обрабатываются следующим образом:
пришедший в Front-End запрос обрабатывается по вышестоящему правилу location ~* /images\/.* { откуда проксируется на Back-End.
Back-End подключает правило рерайта, которое мы прописали в файле .htacces для каталога /images и включает скрипт watermark
После обработки Back-End'ом картинки, она "отдается" Front-End'ом по нижестоящему правилу
location ~* ^.+\\.(jpg|jpeg|png|svg|exe|css|js|tft|sys|ini|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
Таким образом сохраняется должная скорость отдачи сервером статического контента, используя функции Nginx и работает необходимый нам скрипт "водяного знака".
Приведу примеры кодов которые использовал на своем сайте и на сайте заказчика у которого установлен VirtueMart
Начнем с конфигуратора Nginx
server
{
listen 78.***.***.89:80;
server_name ваш_домен.ru www.ваш_домен.ru;
rewrite ^(/manager/.*)$ https://$host$1 permanent;
error_page 404 = @fallback;
location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/) {
proxy_pass http://78.***.***.89:8080;
proxy_redirect http://ваш_домен.ru:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location / {
proxy_pass http://78.***.***.89:8080;
proxy_redirect http://ваш_домен.ru:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location ~* /images\/.* {
proxy_pass http://78.***.***.89:8080;
proxy_redirect http://ваш_домен.ru:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location ~* ^.+\\.(jpg|jpeg|png|svg|exe|css|js|tft|sys|ini|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
root /var/www/joomla/data/www/ваш_домен.ru;
access_log /var/www/httpd-logs/ваш_домен.ru.access.log ;
access_log /var/www/nginx-logs/art-joomla isp;
}
location @fallback {
proxy_pass http://78.***.***.89:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
где в строке
location ~* /images\/.* {
указываем от корня сайта папку с изображениями, для интернет магазина работающем на VirtueMart - эта строка будет иметь вот такой вид:
location ~* /components/com_virtuemart/shop_image/product\/.* {
Подготавливаем картинку watermark.png с прозрачным фоном:
Подготавливаем файл watermark.php или скачиваем вложение, там все уже готово.
Содержимое файла watermark.php
<?
waterMark($_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI'], "watermark.png", "bottom=30,right=30");
function waterMark($original, $watermark, $placement = 'bottom=30,right=30', $destination = null) {
$original = urldecode($original);
$info_o = @getImageSize($original);
if (!$info_o)
return false;
$info_w = @getImageSize($watermark);
if (!$info_w)
return false;
list ($vertical, $horizontal) = split(',', $placement,2);
list($vertical, $sy) = split('=', trim($vertical),2);
list($horizontal, $sx) = split('=', trim($horizontal),2);
switch (trim($vertical)) {
case 'bottom':
$y = $info_o[1] - $info_w[1] - (int)$sy;
break;
case 'middle':
$y = ceil($info_o[1]/2) - ceil($info_w[1]/2) + (int)$sy;
break;
default:
$y = (int)$sy;
break;
}
switch (trim($horizontal)) {
case 'right':
$x = $info_o[0] - $info_w[0] - (int)$sx;
break;
case 'center':
$x = ceil($info_o[0]/2) - ceil($info_w[0]/2) + (int)$sx;
break;
default:
$x = (int)$sx;
break;
}
header("Content-Type: ".$info_o['mime']);
$original = @imageCreateFromString(file_get_contents($original));
$watermark = @imageCreateFromString(file_get_contents($watermark));
$out = imageCreateTrueColor($info_o[0],$info_o[1]);
imageCopy($out, $original, 0, 0, 0, 0, $info_o[0], $info_o[1]);
//Тут задаем размер изображения в которые можно добавлять Watermark
// $info_o[0] > 250 - ширина изображения должна быть больше 250 px
// $info_o[1] > 250 - высота изображения должна быть больше 250 px
if( ($info_o[0] > 250) && ($info_o[1] > 250) )
{
imageCopy($out, $watermark, $x, $y, 0, 0, $info_w[0], $info_w[1]);
}
switch ($info_o[2]) {
case 1:
imageGIF($out);
break;
case 2:
imageJPEG($out);
break;
case 3:
imagePNG($out);
break;
}
imageDestroy($out);
imageDestroy($original);
imageDestroy($watermark);
return true;
}
?>
Подготавливаем файл .htaccess его необходимо будет разместить в папке с картинками на которые необходимо накладывать watermark
Содержимое файла .htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)$ /watermark/watermark.php [T=application/x-httpd-php,L,QSA]
Заключение
Размещаем файлы на хостинге:
создаем в корне сайта папку watermark и закачиваем в нее 2 файла:
watermark.php
watermark.png
После всех манипуляций все должно заработать. |
|
Вернуться к началу |
|
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
Powered by phpBB © 2001, 2005 phpBB Group
|
|