在 cmd 中提交“php artisan migrate:fresh”后出现错误。
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('users');
}
}
Run Code Online (Sandbox Code Playgroud)
SQLSTATE[42000]:语法错误或访问冲突:1071 指定的键太长;最大密钥长度为 767 字节(SQL:alter table usersadd unique users_email_unique( email))
发生什么了?
我在 Windows 服务器上向 UnoEuro 发布了一个网站。
当我这样做时,我不断收到错误消息:
“HTTP 错误 500.19 - 内部服务器错误
无法访问请求的页面,因为该页面的相关配置数据无效。”
我设置/尝试了什么?
我所做的是创建了一个 .NET Core 2.1 Web API,它使用 IIS 在我的计算机上很好地本地托管。然后,我将 Web api 发布到托管站点 UnoEuro,在那里我可以看到文件已按原样上传。
我询问了托管站点的支持,他们告诉我只需确保将其部署为独立的,否则他们将无法提供进一步的帮助。似乎存在某种与它似乎无法找到 webconfig 文件相关的托管问题。至少这是错误消息所说的。
我应该进行任何形式的设置吗?一个配置我应该改变?我是否应该在 Web API 中设置一些我可能错过的 SSL 设置?当我开始这个项目时,我告诉它强制使用 HTTPS,但如果那是错误的话,我肯定会收到另一条错误消息吗?
我尝试将目标运行时设置为 x64 和 x86 进行发布。
我以前从来没有向 Azure 以外的任何东西发布过这样的 API,所以我可能做错了一两件事,但我看不出它应该是什么?我已经谷歌搜索但没有找到任何似乎相关的东西。
大多数解决方案似乎都与更改服务器环境有关,而我对其没有太多控制权,我主要只是控制应用程序/Web api,至少在我看来是这样。
希望你有任何建议,我全神贯注。
附带问题:我应该为此使用 IIS 管理器吗?我目前正在通过 Visual Studio 2017 发布。
进一步理解的图像
发布设置
部署/发布的文件
我收到的错误信息
编辑:
我尝试将文件移动到与 ISS Manager 相同的域上的 /public_html 似乎表明它希望配置文件在那里。
然后会产生不同的错误消息,如下所示。
错误消息中的链接:https : //go.microsoft.com/fwlink/?LinkID=808681
我正在设置一个 NodeJS 后端,它需要保存一些 API 密钥来联系其他 Firebase 来对用户进行身份验证。
我已经能够发布后端并成功从其上的 API 端点获取 HTTP 回复。我使用 Express 来运行 NodeJS API。
现在我希望 NodeJS API 充当我的用户和数据库接触点。但我不确定在哪里安全地存储该项目的 API 密钥。因为我对这种类型的安全性比较陌生。
因此,我用 Google 搜索了一下,发现人们说 .env 文件不是存储 API 密钥的安全位置。然而,在DigitalOcean 文档中,它说了以下内容:
环境变量是存储敏感信息(例如 API 密钥)或需要从应用程序中的任何位置全局访问的信息(例如版本号或硬编码路径)的绝佳位置。
所以我的问题是,为什么 DigitalOcean 会说在环境变量中存储 API 密钥是安全的,而许多其他消息来源却说它不安全。这是因为危险在于文件的可访问性,而 DigitalOcean 以某种方式保护该文件吗?我注意到他们有一个“秘密”布尔框,您可以勾选它,它表示它不会出现在控制台中。但对于普通人来说,它是否也是完全无法接触的呢?
我主要关心的是防止黑客或恶意的人访问 API 密钥。我不担心拥有合法访问权限的人会滥用它,只担心没有合法访问权限的人会滥用它。
期待您的见解。
asp.net-core ×1
backend ×1
deployment ×1
javascript ×1
laravel ×1
mysql ×1
node.js ×1
security ×1