I’m trying to setup Directus.
I just performed a brand new install following the guidelines described in the documentation. However once I login, I have this error: “Server Error – Something is wrong with this instance’s server or database.”
A UI would be expected instead with this message: “No Collections Setup – It seems like there aren’t any collections setup yet”
The installation works fine on localhost with WAMP, so I suspect that something on the shared host or the database is misconfigured.
According to the console, many resources cannot be reached:
- 404:
/_/users/me?fields=last_page:1
- 401:
/interfaces:1
- 401:
/layouts:1
- 401:
/pages:1
- 403:
/_/collections:1
- 403:
/_/settings:1
- 401:
(API root)
- 403:
/_/collection_preset...
- 403:
/_/users?field...
- 403:
/_/relations?limit=1
MySQL version (5.7) and PHP version (7.3) meet the requirements for Directus…
I really don’t know what to look for to diagnose any compatibility issue with the shared hosting…
EDIT
Here is the log (without the stacks):
[2019-08-28 11:31:24] api[_].ERROR: DirectusDatabaseExceptionItemNotFoundException: Item not found in [server root path]/directus/src/core/Directus/Services/ItemsService.php:139
[2019-08-28 11:31:29] api[_].ERROR: DirectusDatabaseExceptionItemNotFoundException: Item not found in [server root path]/directus/src/core/Directus/Services/ItemsService.php:139
[2019-08-28 11:31:29] api[].ERROR: DirectusExceptionUnauthorizedException: Unauthorized request in [server root path]/directus/src/helpers/app.php:268
[2019-08-28 11:31:29] api[].ERROR: DirectusExceptionUnauthorizedException: Unauthorized request in [server root path]/directus/src/helpers/app.php:268
[2019-08-28 11:31:29] api[_].ERROR: DirectusPermissionsExceptionForbiddenCollectionReadException: Reading items from "directus_collections" collection was denied in [server root path]/directus/src/core/Directus/Permissions/Acl.php:988
[2019-08-28 11:31:29] api[_].ERROR: DirectusPermissionsExceptionForbiddenCollectionReadException: Reading items from "directus_settings" collection was denied in [server root path]/directus/src/core/Directus/Permissions/Acl.php:988
[2019-08-28 11:31:29] api[].ERROR: DirectusExceptionUnauthorizedException: Unauthorized request in [server root path]/directus/src/helpers/app.php:268
[2019-08-28 11:31:29] api[_].ERROR: DirectusPermissionsExceptionForbiddenCollectionReadException: Reading items from "directus_collection_presets" collection was denied in [server root path]/directus/src/core/Directus/Permissions/Acl.php:988
[2019-08-28 11:31:29] api[].ERROR: DirectusExceptionUnauthorizedException: Unauthorized request in [server root path]/directus/src/helpers/app.php:268
[2019-08-28 11:31:29] api[_].ERROR: DirectusPermissionsExceptionForbiddenCollectionReadException: Reading items from "directus_relations" collection was denied in [server root path]/directus/src/core/Directus/Permissions/Acl.php:988
[2019-08-28 11:31:29] api[_].ERROR: DirectusPermissionsExceptionForbiddenCollectionReadException: Reading items from "directus_collection_presets" collection was denied in [server root path]/directus/src/core/Directus/Permissions/Acl.php:988
[2019-08-28 11:31:29] api[_].ERROR: DirectusPermissionsExceptionForbiddenCollectionReadException: Reading items from "directus_users" collection was denied in [server root path]/directus/src/core/Directus/Permissions/Acl.php:988
2
Answers
I had some problems on a shared hosting as well after i did git clone.
Somehow after scratching my head for a while is just ran
composer install
in the directus base dir and voila it worked (v8). I was able to install as its written in the docs.My assumption is the
composer install
action is setting/correcting some folders permission and/or dependencies.The blockers I have found while requesting the installed app on shared hosting.
The name of the app needs to be present in the API call (as Directus can handle multiple apps with the same instance).
The collections you want to reach outside of the Admin needs to have a public role to be accessible.
Also, adding
RewriteBase /
under the line ofRewriteEngine On
in mypublic/.htaccess
did the trick on Ionos/1and1 shared hosting. Without this line, the rewriting wasn’t performing and was returning a 500 error.Eg:
All the other steps I have done to install on my shared hosting (ionos/1and1) which handles SSH:
Env:
Create PHP 7.4+ env
Create Mysql 5.2+ Db
Download Directus Suite and push to FTP from https://github.com/directus/directus or from ssh
git clone [email protected]:directus/directus.git
Push to FTP or git clone.
Bind the admin (sub)domain name to
/public
folder.Set execute rights on the folder
/bin
recursively:$ chmod -R +x ./bin
Set the write permission for the folders
/logs
and/public/uploads
:$ chmod -R +w /logs
$ chmod -R +w /public/uploads
Installing dependencies:
Connect to ssh console and navigate to the root folder of Directus
Download Composer:
$ curl -sS https://getcomposer.org/installer | /usr/bin/php7.4-cli
Check Composer install:
$ /usr/bin/php7.4-cli composer.phar
Check latests version:
$ /usr/bin/php7.4-cli composer.phar selfupdate
Install dependencies:
$ /usr/bin/php7.4-cli composer.phar install
Create project:
You can go to the URL
https://admin.mysite.com/admin/#/install
or setup the project with the following command-line interface:Configure Directus:
$ /usr/bin/php7.4-cli bin/directus install:config -k my-project -h db_host -n db_name -u db_user -p db_pass -d directus_path -a super_admin_token
Populate the Database Schema:
$ /usr/bin/php7.4-cli bin/directus install:database -d directus_path
Install Initial Configurations:
$ install:install -e admin_email -p admin_password -t site_name