Directus无法安装在共享主机上

时间:2019-08-28 07:56:04

标签: php shared-hosting ovh directus

我正在尝试设置Directus。

我刚刚按照文档中所述的指导进行了全新安装。但是,一旦我登录,就会出现以下错误:“服务器错误-该实例的服务器或数据库出了点问题。”

应该使用以下消息来代替UI:“没有集合设置-似乎还没有任何集合设置”

在具有WAMP的localhost上,安装工作正常,因此我怀疑共享主机或数据库上的某些内容配置错误。

根据控制台,无法访问许多资源:

  • 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版本(5.7)和PHP版本(7.3)满足Directus的要求...

我真的不知道该寻找什么来诊断共享主机的任何兼容性问题...


编辑

这是日志(无堆栈):

[2019-08-28 11:31:24] api[_].ERROR: Directus\Database\Exception\ItemNotFoundException: Item not found in [server root path]/directus/src/core/Directus/Services/ItemsService.php:139
[2019-08-28 11:31:29] api[_].ERROR: Directus\Database\Exception\ItemNotFoundException: Item not found in [server root path]/directus/src/core/Directus/Services/ItemsService.php:139
[2019-08-28 11:31:29] api[].ERROR: Directus\Exception\UnauthorizedException: Unauthorized request in [server root path]/directus/src/helpers/app.php:268
[2019-08-28 11:31:29] api[].ERROR: Directus\Exception\UnauthorizedException: Unauthorized request in [server root path]/directus/src/helpers/app.php:268
[2019-08-28 11:31:29] api[_].ERROR: Directus\Permissions\Exception\ForbiddenCollectionReadException: 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: Directus\Permissions\Exception\ForbiddenCollectionReadException: 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: Directus\Exception\UnauthorizedException: Unauthorized request in [server root path]/directus/src/helpers/app.php:268
[2019-08-28 11:31:29] api[_].ERROR: Directus\Permissions\Exception\ForbiddenCollectionReadException: 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: Directus\Exception\UnauthorizedException: Unauthorized request in [server root path]/directus/src/helpers/app.php:268
[2019-08-28 11:31:29] api[_].ERROR: Directus\Permissions\Exception\ForbiddenCollectionReadException: 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: Directus\Permissions\Exception\ForbiddenCollectionReadException: 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: Directus\Permissions\Exception\ForbiddenCollectionReadException: Reading items from "directus_users" collection was denied in [server root path]/directus/src/core/Directus/Permissions/Acl.php:988

3 个答案:

答案 0 :(得分:0)

@yako-您能否一次检查ping端点?如果服务器设置正确,它将以纯文本显示pong

答案 1 :(得分:0)

在执行git clone之后,我在共享主机上也遇到了一些问题。

以某种方式在我的头上挠了一下之后才在Directus基本目录中运行composer install,瞧它起作用了(v8)。我能够按照文档中的说明进行安装。

我的假设是composer install操作正在设置/更正某些文件夹的权限和/或依赖性。

答案 2 :(得分:0)

我在共享主机上请求安装的应用程序时发现了阻止程序。

  • 应用程序的名称需要在API调用中显示(因为Directus可以使用同一实例处理多个应用程序)。

  • 您想要访问管理员外部的集合需要具有公共角色才能访问。

  • 此外,在我的RewriteBase /的{​​{1}}行下添加RewriteEngine On可以解决Ionos / 1and1共享托管的问题。如果没有此行,则重写无法执行,并且返回500错误。

例如:

public/.htaccess

在安装用于处理SSH的共享主机(ionos / 1and1)上完成的所有其他步骤:

Env:

创建PHP 7.4+ env

创建Mysql 5.2+ Db

下载Directus Suite并从https://github.com/directus/directus或ssh # Comment this line if you are getting: "Option SymLinksIfOwnerMatch not allowed here" error in Apache Options +SymLinksIfOwnerMatch # php5_module automatically handles HTTP_AUTHORIZATION headers, but fcgi_module does not. <IfModule mod_setenvif.c> <IfModule mod_proxy_fcgi.c> SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1 </IfModule> </IfModule> <ifModule mod_rewrite.c> RewriteEngine On RewriteBase / # Map all admin endpoints to the admin app (except static files) RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^admin/(.*) admin/index.html [NC,L] # Map all other requests to invoke the API router (except static files) RewriteCond %{REQUEST_FILENAME} !-f RewriteRule !^admin index.php?%{QUERY_STRING} [L] </ifModule> # Uncomment the following lines to modify PHP settings. The lines below can be used to increase the max upload size of files in Directus #<IfModule mod_php7.c> #php_value upload_max_filesize 50M #php_value post_max_size 100M #</IfModule> 推送到FTP

推送到FTP或git克隆。

将管理(子)域名绑定到git clone git@github.com:directus/directus.git文件夹。

递归设置文件夹/public的执行权限:/bin

设置文件夹$ chmod -R +x ./bin/logs的写许可权:

  • /public/uploads
  • $ chmod -R +w /logs

安装依赖项:

连接到ssh控制台并导航到Directus的根文件夹

下载Composer: $ chmod -R +w /public/uploads

检查Composer安装:$ curl -sS https://getcomposer.org/installer | /usr/bin/php7.4-cli

检查最新版本:$ /usr/bin/php7.4-cli composer.phar

安装依赖项:$ /usr/bin/php7.4-cli composer.phar selfupdate

创建项目:

您可以转到URL $ /usr/bin/php7.4-cli composer.phar install或使用以下命令行界面设置项目:

配置Directus: https://admin.mysite.com/admin/#/install

填充数据库架构: $ /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

安装初始配置: $ /usr/bin/php7.4-cli bin/directus install:database -d directus_path