The ext dir that ships in the tarball is for extensions bundled directly with core like IATS. If you put other extensions in there they will get wiped when you upgrade, so it's common to put them somewhere outside the civicrm folder.
See also https://docs.civicrm.org/sysadmin/en/latest/customize/extensions/#enabling-extensions
There are several things in play at different levels with regard to the CiviCRM extensions directory location. The concepts to be aware of are:
CiviCRM shipping codebase
Drupal's files directory
CiviCRM bundled extensions
As @Demerit's answer states, sites/<sitename>/modules/civicrm/ext contains the extensions which ship with ...
The reason we do that with client sites is because I don’t think it’s a good idea to put code under /files. It belongs at the level of /modules. Permission requirements for code and /files are quite different. Another benefit is that it allows me to more easily put the code for a project in git.
Following on from the comments:
Sorry I don't speak Turkish but I put your comment into Bing translate and the short answer is "yes". The error happens when you have changed a relationship type (which happens automatically if you change the language) and you're using CiviCase in non-english. So the temporary options are:
Disable civicase or only use ...
This isn't strictly a CiviCRM question in my opinion, but here goes anyway...
members can open closed and public groups
This is built in to BuddyPress - check the box labelled "Enable group creation for all users" in BuddyPress settings.
groups have mailinglist functionality, ideally posts to the group can be created by email and send out by email (...
Solved - as of 7.2 we had to separately install the zip module (which provides the ZipArchive class within php). On Amazon Linux 2 this was the php-pecl-zip and libzip-devel packages, installed via "pecl install zip".
And restart the php-fpm service as well as httpd restart
I am quite curious about why you are asking this question. My advice would be to install only modules when you have functional need and those modules solve them for you.
It might be even that a module which is used often is completely useless in your context. Or that it breaks other needed functionality.
Having said that the masquerade module is very ...