why only avater and canves pic store in tmp dir
It's not just avatar and canvas that use PHP tmp. All uploads do. They're uploaded to PHP tmp then moved to their destination. That's how PHP works as it's where it stores tmp files.
1) file_uploads = On
upload_tmp_dir = /tmp in .user.ini,php.ini,.htaccess
This was likely your issue.
2)update php version 5.6.4 to 7.2.18
Very good idea to move forward to PHP 7.2.
3)public $ftp_host = '';
public $ftp_port = '';
public $ftp_user = '';
public $ftp_pass = '';
public $ftp_root = '';
public $ftp_enable = '0';
in config.php
This should've been empty like that to begin with unless Joomla was configured to use FTP for uploads.
4)delete /tmp file recreate
May also have been the culprit as recreating the file would do so with new permissions.
5)antispam_captcha disable
You shouldn't need to do that as you've disabled captcha for your registration and would be unrelated to your issue.