Действия

Tech Support Shared Hosting: различия между версиями

Материал из lulzette's wiki

Строка 125: Строка 125:
</source>
</source>


=== www- http- redir ===
=== htaccess ===
 
[[htaccess]]


<source>
<source>

Версия от 07:06, 8 июня 2020

Tools

BOMB grep

grep -H -l -R $'\uFEFF' .

SQL alter/convert

  • таблицу и поля в кодировки

ALTER TABLE `DATABASE`.`TABLE` CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

  • базу, таблицы, поля в кодировки

ALTER DATABASE `DATABASE` DEFAULT CHARSET=utf8 COLLATE utf8_bin;

https://stackoverflow.com/questions/6115612/how-to-convert-an-entire-mysql-database-characterset-and-collation-to-utf-8#6115705

Use the ALTER DATABASE and ALTER TABLE commands.

ALTER DATABASE databasename CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Or if you're still on MySQL 5.5.2 or older which didn't support 4-byte UTF-8, use utf8 instead of utf8mb4:

ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

wp-cli

Проверить версию wp:
wp core version

Инормация по wp-cli:
wp --info

Экспортировать базу:
wp db export databasename


Импортировать базу:
wp db import databasename

Заменить в базе все value1 на value2:
wp search-replace value1 value2

Обновить кэш:
wp cache flush

Получить информацию по опциям из таблицы wp_options базы данных:
wp option get home
wp option get siteurl

--- --- ---

битрих ругается на какой-то xss

php_value mbstring.func_overload 2

[Error] Call to undefined function mb_orig_strpos() (0) /public_html/bitrix/modules/security/classes/general/post_filter.php:320 #0: CSecurityXSSDetect::fastStrpos(string, string) /public_html/bitrix/modules/security/classes/general/post_filter.php:190 #1: CSecurityXSSDetect->findInArray(string, array) /public_html/bitrix/modules/security/classes/general/post_filter.php:221 #2: CSecurityXSSDetect->isDangerBody(string) /public_html/bitrix/modules/security/classes/general/post_filter.php:237 #3: CSecurityXSSDetect->getFilteredScriptBody(string) /public_html/bitrix/modules/security/classes/general/post_filter.php:262 #4: CSecurityXSSDetect->getFilteredScript(array) #5: preg_replace_callback(string, array, string) /public_html/bitrix/modules/security/classes/general/post_filter.php:274 #6: CSecurityXSSDetect->filter(string) /public_html/bitrix/modules/security/classes/general/post_filter.php:72 #7: CSecurityXSSDetect->process(string) /public_html/bitrix/modules/security/classes/general/post_filter.php:55 #8: CSecurityXSSDetect::OnEndBufferContent(string) /public_html/bitrix/modules/main/classes/general/module.php:490 #9: ExecuteModuleEventEx(array, array) /public_html/bitrix/modules/main/classes/general/main.php:3192 #10: CAllMain->EndBufferContent(string) /public_html/bitrix/modules/main/classes/general/main.php:3140 #11: CAllMain->EndBufferContentMan() /public_html/bitrix/modules/main/include/epilog_after.php:36 #12: require(string) /public_html/index.php:1

UTF-8 в нечитабельном виде

Юзаем питон:
python -c "print(b'кракозябры'.decode('utf-8'))"

Пример:
python -c "print(b'\xd0\xb2\xd1\x8b\xd0\xbf\xd0\xbe\xd0\xbb\xd0\xbd\xd0\xb5\xd0\xbd\xd0\xbd\xd1\x8b\xd0\xb9 '.decode('utf-8'))"

logs nginx скорость/код ответа awk

awk '{print $1, $2, $3, $15, $13}' - время ответа (nginx)
awk '{print $1, $2, $3, $16, $13}' - код ответа http (для апача $16 -> $15)

grep рекурсивно файлы

grep -H -l -R "pattern" .


SQL дубликаты в таблице

SELECT name, COUNT(*) c FROM table GROUP BY name HAVING c > 1;

SQL for Wordpress

https://misha.blog/wordpress/sql-queries-domain.html

UPDATE wp_posts SET post_content = REPLACE (post_content, 'OLD', 'NEW');
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'OLD', 'NEW');

PHP Mail

<?
var_dump(mail("test@test.ru", "test", "test"));
?>

Mass dig [BASH]

function massHosts() {
        for i in $@ ; do
                echo '--'
                echo $i;
                dig a +short $i
                #echo '=='
        done

}

bitrix in cp1251

php_value default_charset "cp1251"
php_value mbstring.internal_encoding cp1251
php_value mbstring.func_overload 2

htaccess

htaccess

#redirect www+https
RewriteCond %{HTTP_HOST} ^www\.energysport\.store$ [NC]
RewriteRule ^(.*)$ https://energysport.store/$1 [R=301,L]
RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Docs

редиректы в .htaccess

https://web-optimizator.com/301-redirekt-htaccess/

RewriteCond

http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#RewriteCond

REQUEST_URI
The path component of the requested URI, such as "/index.html". This notably excludes the query string which is available as as its own variable named QUERY_STRING.
REQUEST_FILENAME
The full local filesystem path to the file or script matching the request, if this has already been determined by the server at the time REQUEST_FILENAME is referenced. Otherwise, such as when used in virtual host context, the same value as REQUEST_URI.
HTTPS
Will contain the text "on" if the connection is using SSL/TLS, or "off" otherwise. (This variable can be safely used regardless of whether or not mod_ssl is loaded).

PHP cli w/ params

php PATH -k parameter


4XX Mail Timeout Greylisting

https://wolandblog.com/850-filtruem-spam-pravilno-s-primerami-dlya-postfix/#greylist

Серый список. Работа грейлистинга основывается на том, что поведение клиентов рассылающих спам отличается от поведения честных почтовых серверов. В ходе SMTP сессии грейлист отдает клиенту ошибку с кодом (4xx), который означает “временная ошибка, попробуйте повторить позже”. Честный почтовый сервер через время обязательно предпримет попытку повторной доставки, поскольку умеет держать очередь почтовых сообщений. Спамеры же в свою очередь очередей не держат, это продиктовано огромными объемами рассылок

Перенос сайтов на Python

http://simp.ly/p/FgKNHq

full - https://app.simplenote.com/p/FgKNHq

Defaults

.htaccess Wordpress

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

.htaccess OpenCart

# 1.To use URL Alias you need to be running apache with mod_rewrite enabled.

# 2. In your opencart directory rename htaccess.txt to .htaccess.

# For any support issues please visit: http://www.opencart.com

Options +FollowSymlinks

# Prevent Directoy listing
Options -Indexes

# Prevent Direct Access to files
<FilesMatch "(?i)((\.tpl|\.ini|\.log|(?<!robots)\.txt))">
Require all denied
## For apache 2.2 and older, replace «Require all denied» with these two lines :
# Order deny,allow
# Deny from all
</FilesMatch>

# SEO URL Settings
RewriteEngine On
# If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/

RewriteBase /
RewriteRule ^sitemap.xml$ index.php?route=extension/feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=extension/feed/google_base [L]
RewriteRule ^system/download/(.*) index.php?route=error/not_found [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

### Additional Settings that may need to be enabled for some servers
### Uncomment the commands by removing the # sign in front of it.
### If you get an «Internal Server Error 500» after enabling any of the following settings, restore the # as this means your host doesn’t allow that.

# 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it:
# php_flag register_globals off

# 2. If your cart has magic quotes enabled, This may work to disable it:
# php_flag magic_quotes_gpc Off

# 3. Set max upload file size. Most hosts will limit this and not allow it to be overridden but you can try
# php_value upload_max_filesize 999M

# 4. set max post size. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value post_max_size 999M

# 5. set max time script can take. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_execution_time 200

# 6. set max time for input to be recieved. Uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_input_time 200

# 7. disable open_basedir limitations
# php_admin_value open_basedir none

.htaccess Joomla

##
# @package Joomla
# @copyright Copyright (C) 2005 - 2012 Open Source Matters. All rights reserved.
# @license GNU General Public License version 2 or later; see LICENSE.txt
##

##
# READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE!
#
# The line just below this section: 'Options +FollowSymLinks' may cause problems
# with some server configurations. It is required for use of mod_rewrite, but may already
# be set by your server administrator in a way that dissallows changing it in
# your .htaccess file. If using it causes your server to error out, comment it out (add # to
# beginning of line), reload your site in your browser and test your sef url's. If they work,
# it has been set by your server administrator and you do not need it set here.
##

## Can be commented out if causes errors, see notes above.
Options +FollowSymLinks

## Mod_rewrite in use.

RewriteEngine On

## Begin - Rewrite rules to block out some common exploits.
# If you experience problems on your site block out the operations listed below
# This attempts to block the most common type of exploit `attempts` to Joomla!
#
# Block out any script trying to base64_encode data within the URL.
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
# Block out any script that includes a <script> tag in URL.
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL.
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL.
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Return 403 Forbidden header and show the content of the root homepage
RewriteRule .* index.php [F]
#
## End - Rewrite rules to block out some common exploits.

## Begin - Custom redirects
#
# If you need to redirect some pages, or set a canonical non-www to
# www redirect (or vice versa), place that code here. Ensure those
# redirects use the correct RewriteRule syntax and the [R=301,L] flags.
#
## End - Custom redirects

##
# Uncomment following line if your webserver's URL
# is not directly related to physical file paths.
# Update Your Joomla! Directory (just / for root).
##

# RewriteBase /

## Begin - Joomla! core SEF Section.
#
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#
# If the requested path and file is not /index.php and the request
# has not already been internally rewritten to the index.php script
RewriteCond %{REQUEST_URI} !^/index\.php
# and the request is for something within the component folder,
# or for the site root, or for an extensionless URL, or the
# requested URL ends with one of the listed extensions
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]
# and the requested path and file doesn't directly match a physical file
RewriteCond %{REQUEST_FILENAME} !-f
# and the requested path and file doesn't directly match a physical folder
RewriteCond %{REQUEST_FILENAME} !-d
# internally rewrite the request to the index.php script
RewriteRule .* index.php [L]
#
## End - Joomla! core SEF Section.


config OpenCart

https://nomoney.su/universalnyiy-konfig-config-php-dlya-opencart-2-x

admin/config.php

<?php
$host = $_SERVER['HTTP_HOST'];
// HTTP
define('HTTP_SERVER', 'http://'.$host.'/admin/');
define('HTTP_CATALOG', 'http://'.$host.'/');

// HTTPS
define('HTTPS_SERVER', 'http://'.$host.'/admin/');
define('HTTPS_CATALOG', 'http://'.$host.'/');

$dir = dirname(dirname(__FILE__));

// DIR
define('DIR_APPLICATION', $dir.'/admin/');
define('DIR_SYSTEM', $dir.'/system/');
define('DIR_LANGUAGE', $dir.'/admin/language/');
define('DIR_TEMPLATE', $dir.'/admin/view/template/');
define('DIR_CONFIG', $dir.'/system/config/');
define('DIR_IMAGE', $dir.'/image/');
define('DIR_CACHE', $dir.'/system/storage/cache/');
define('DIR_DOWNLOAD', $dir.'/system/storage/download/');
define('DIR_LOGS', $dir.'/system/storage/logs/');
define('DIR_MODIFICATION', $dir.'/system/storage/modification/');
define('DIR_UPLOAD', $dir.'/system/storage/upload/');
define('DIR_CATALOG', $dir.'/catalog/');

// DB
define('DB_DRIVER', 'mysqli');
define('DB_HOSTNAME', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '12345');
define('DB_DATABASE', 'oc21');
define('DB_PORT', '3306');
define('DB_PREFIX', 'oc_');

config.php

<?php
$host = $_SERVER['HTTP_HOST'];
// HTTP
define('HTTP_SERVER', 'http://'.$host.'/');

// HTTPS
define('HTTPS_SERVER', 'http://'.$host.'/');

$dir = dirname(__FILE__);

// DIR
define('DIR_APPLICATION',  $dir.'/catalog/');
define('DIR_SYSTEM',  $dir.'/system/');
define('DIR_LANGUAGE',  $dir.'/catalog/language/');
define('DIR_TEMPLATE',  $dir.'/catalog/view/theme/');
define('DIR_CONFIG',  $dir.'/system/config/');
define('DIR_IMAGE',  $dir.'/image/');
define('DIR_CACHE',  $dir.'/system/storage/cache/');
define('DIR_DOWNLOAD',  $dir.'/system/storage/download/');
define('DIR_LOGS',  $dir.'/system/storage/logs/');
define('DIR_MODIFICATION',  $dir.'/system/storage/modification/');
define('DIR_UPLOAD',  $dir.'/system/storage/upload/');

// DB
define('DB_DRIVER', 'mysqli');
define('DB_HOSTNAME', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '12345');
define('DB_DATABASE', 'oc21');
define('DB_PORT', '3306');
define('DB_PREFIX', 'oc_');