I am wondering if there is a module that gives the ability to install modules via an interface instead of copy a module files and create database tables manually and add it to config/main.php .
Is there any ? I mean something like what is in Joomla or Drupal?
Possible, but it would require multiple modules. In the least case, an installer module, configuration module, and an element module.
The latter (element module) would register and manage application-specific items such as modules, nested modules, blocks, themes, and plugins. It would also handle block and module specific params, elements categorization and migrations. Some dependency management might be needed.
The installer would need to read something like a XML or YAML file with instructions for tossing files to their final destinations, creating tables, handling constraints, and such. The installer would also de-install items using a similar XML or YAML file. The installer could be designed to handle multiple types of installations via different methods (ftp, get, svn, etc.)
A config module is required because Yii appears to be built from the ground up under the assumption that no one would ever need to change configuration parameters from an admin dashboard. Since the front controller is dependent on the existing config file format and loads them at runtime, one would probably have to maintain the configuration in a database table using a hierarchial model and generate new config files on-the-fly after making changes. This involves momentarily changing read/write permissions for some operating systems. This is further complicated in Yii 2.x because multiple sets of configuration files exist for different environments as well as multiple applications in some cases (e.g., Advanced and Practical templates).