# Troubleshooting PHP/MySQL/CMS

Переношу отсюда - https://lulzette.ru/mediawiki/index.php?title=Tech\_Support\_Shared\_Hosting  
Полезные команды для фикса популярных CMS и LNAMP стека

# CMS

# Bitrix

### <span class="mw-headline" id="bkmrk-bitrix-in-cp1251-0">bitrix in cp1251</span>

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

### <span id="bkmrk-"></span><span class="mw-headline" id="bkmrk-bitrix-%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80-%D1%81%D1%82%D0%B5%D0%BA%D0%B0--0">bitrix размер стека и pcre.recursion\_limit</span>

```
Для этого добавил в файл .htaccess в корневой директории вашего аккаунта следующие директивы:
php_value pcre.jit 0
php_value pcre.recursion_limit 100000 - удалил
```

### <span class="mw-headline" id="bkmrk-bitrix-mysqli-0">bitrix mysqli</span>

```
define("BX_USE_MYSQLI", true); # DBCONN.PHP

...

'className' => '\\Bitrix\\Main\\DB\\MysqliConnection', # .SETTINGS.PHP
```

### <span class="mw-headline" id="bkmrk-bitrix-innodb_strict-0">bitrix innodb\_strict\_mode</span>

по пути /bitrix/php\_interface/ правим:

- after\_connect\_d7.php:

`$connection->queryExecute("SET innodb_strict_mode=0");`

- after\_connect.php:

`$DB->Query("SET innodb_strict_mode=0");`

### <span id="bkmrk--0"></span><span class="mw-headline" id="bkmrk-bitrix-%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D1%82%D0%B8%D1%82%D1%8C-%D0%B8%D0%BD%D0%B4-0">bitrix запустить индекс в консоли</span>

Добавить в начало файла

`$_SERVER["DOCUMENT_ROOT"] = __DIR__;`

### <span class="mw-headline" id="bkmrk-bitrix-pcre-limit-0">bitrix pcre limit</span>

`php_value pcre.jit 0`

### <span class="mw-headline" id="bkmrk-bitrix-mbstring-orig-0">bitrix mbstring orig pos</span>

[https://admin4web.ru/article/oshibka-mb-orig-strpos/](https://admin4web.ru/article/oshibka-mb-orig-strpos/)

`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
```

# Other CMS

## Wordpress

### <span class="mw-headline" id="bkmrk-%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BD%D0%B0%2C-40-0">главная доступна, 404 на подстраницах</span>

В 99% случаев возникает из-за отсутствия стандартных директив в .htaccess сайта. Следует добавить их: [CMS Стандартные файлы](https://lulzette.ru/mediawiki/index.php?title=CMS_%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D1%8B%D0%B5_%D1%84%D0%B0%D0%B9%D0%BB%D1%8B "CMS Стандартные файлы")

## MODX

Логи в core/error

В случае проблем переименуй кеш - core/cache

## Общее

При переносе сайта из-за листингов wget'а на сайта могут быть различные спецэффекты. Не забывай их удалять.

`find . -name '.listing' -delete`

# wp-cli

Полный список команд: [https://wp-kama.ru/handbook/cli/wp](https://wp-kama.ru/handbook/cli/wp)

```
Проверить версию 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
```

# MySQL

# Repair

`mysqlcheck -r -u'база_данных' -p'пароль_базы_данных' 'база_данных'`

`REPAIR TABLE tablename USE_FRM;`

Если побилась `mysql.user` и мускуль из-за этого не поднимается

```bash
for i in $(ls *.MYI | awk -F'.' '{print $1}') ; do myisamchk -r -q $i  ;done
```

# Проблемы с переносом баз

### ERROR 1118 (42000): Row size too large (&gt; 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline

```bash
sed -i 's#ENGINE=InnoDB#ENGINE=InnoDB ROW_FORMAT=DYNAMIC#g' dump.sql
```

### ERROR 1416 (22003) at line 801: Cannot get geometry object from data you send to the GEOMETRY field

Где-то есть таблица с пустым геометрическим полем. Заполни его какими-нибудь координатами, 0,0,0 например

### ERROR 1449 (HY000) at line 4012: The user specified as a definer ('asdf'@'localhost') does not exist

```
sed -i 's/\/\*!50013 DEFINER=`asdf`@`localhost` SQL SECURITY DEFINER \*\///g' dump.sql

```

### ERROR 1071 (42000) at line 874: Specified key was too long; max key length is 255 bytes

```bash
sed -i 's/tinytext/VARCHAR(255)/g'
```

# SQL

### <span class="mw-headline" id="bkmrk-sql-alter%2Fconvert-0">SQL alter/convert</span>

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

`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](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;
> ```

# клиент

Красивый шелл:

<span style="font-family: monospace;">`prompt='\u at \h in \d> '`  
  
<span style="color: #000000; background-color: #ffffff;"> </span>  
</span>

# Ссылки

проксирование нгинксом, заголовки, балансировка: [https://devacademy.ru/comment/5](https://devacademy.ru/comment/5)

apache mod\_rewrite: [https://httpd.apache.org/docs/2.4/rewrite/remapping.html](https://httpd.apache.org/docs/2.4/rewrite/remapping.html)

nginx переменные в ngx\_http\_core\_module: [https://nginx.org/en/docs/http/ngx\_http\_core\_module.html#var\_remote\_addr](https://nginx.org/en/docs/http/ngx_http_core_module.html#var_remote_addr)

все переменные в нгинксе: [https://nginx.org/en/docs/varindex.html](https://nginx.org/en/docs/varindex.html)

(mediawiki) nginx - location и полезности по регуляркам: [https://rav.pw/nginx-location/](https://rav.pw/nginx-location/)

(mediawiki) полезности по регуляркам: [https://www.karashchuk.com/Apache/htaccess\_regexp/](https://www.karashchuk.com/Apache/htaccess_regexp/)

легко и понятно про mod\_rewrite (и про регулярки): [https://hackware.ru/?p=5543](https://hackware.ru/?p=5543)

советы по php-fpm [http://pektop.net/2013/09/sovety-po-nastrojke-i-optimizacii-nginx-i-php-fpm/](http://pektop.net/2013/09/sovety-po-nastrojke-i-optimizacii-nginx-i-php-fpm/)

тоже php-fpm [https://rtfm.co.ua/nginx-nastrojka-servera-i-php-fpm/](https://rtfm.co.ua/nginx-nastrojka-servera-i-php-fpm/)

и еще php-fpm [https://hcbogdan.com/php/2016/09/16/php-fpm-dynamic/](https://hcbogdan.com/php/2016/09/16/php-fpm-dynamic/)

  
[https://github.com/EliverLara/Juno](https://github.com/EliverLara/Juno)

[https://it-para.site/neprinuzhdionnye-is.html](https://it-para.site/neprinuzhdionnye-is.html)

[https://habr.com/ru/company/mailru/blog/490790/](https://habr.com/ru/company/mailru/blog/490790/)

[https://wiki.gentoo.org/wiki/Complete\_Virtual\_Mail\_Server/Courier-IMAP\_to\_Database/ru](https://wiki.gentoo.org/wiki/Complete_Virtual_Mail_Server/Courier-IMAP_to_Database/ru)

[https://help.ubuntu.com/community/Courier](https://help.ubuntu.com/community/Courier)

[https://1cloud.ru/help/linux/nastrojka-exim4](https://1cloud.ru/help/linux/nastrojka-exim4)

[https://skorks.com/2009/09/bash-shortcuts-for-maximum-productivity/](https://skorks.com/2009/09/bash-shortcuts-for-maximum-productivity/)

[https://vim.rtorr.com/](https://vim.rtorr.com/)

mail - [https://habr.com/ru/post/59417/](https://habr.com/ru/post/59417/)

DNS - [https://habr.com/ru/post/137587/](https://habr.com/ru/post/137587/)