繁体   English   中英

503 表单提交时服务不可用

[英]503 Unavailable Service on Form Submit

我用 PHP Laravel 和 Vue JS 创建了一个项目。 并使用 Amazon AWS 的基本计划对其进行配置。 一开始,它运行良好,没有任何问题。 但是现在,当我尝试添加新的博客文章或编辑已存在的包含大量内容的博客文章时,它会显示 503 Service Unavailable 错误。 我为博客开发了如下所示的算法。

表:

  1. blogs - 此表用于存储文章的轻量级数据,如标题、特色图片、URL 等。

  2. 帖子 - 此表用于存储帖子的实际内容。 它包含三列,如博客 ID、内容、顺序。 在这里,我将文本数据类型用于将接受近 70k 个字符的内容。

算法:当我提交一篇博文时,首先它会在 blogs 表中创建一个包含轻量级数据的行。 之后,实际的帖子内容将被拆分为一个数组,每个项目包含 65k 个字符。 每个项目都将作为新行存储在帖子表中,并在 blogs 表中创建博客 ID。 在检索帖子时,它将加入帖子表中的行并显示实际帖子。

注意:上述过程运行良好,没有任何问题。

问题:实际问题是当我尝试添加新帖子或使用图像编辑现有帖子时突然开始显示503错误(产生大量字符),甚至在博客表中创建帖子并且字符数量不完整正在添加帖子表,同时添加内容的rest显示503错误。

注意:即使它在我的本地主机和另一个 Bluehost 服务器上也能正常工作。

我尝试使用 25k 个字符来减少内容拆分,但结果显示相同。

if($request->hasFile('image')) {
            $filenameWithExt = $request->file('image')->getClientOriginalName();
            $filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);
            $extension = $request->file('image')->getClientOriginalExtension();
            $fileNameToStore = 'post_' . time() . '.' .$extension;
            $path = public_path('uploads/posts/' . $fileNameToStore);
            if(!file_exists(public_path('uploads/posts/'))) {
                mkdir(public_path('uploads/posts/'), 0777);
            }
            Image::make($request->file('image')->getRealPath())->resize(900, NULL)->save($path);
        }else {
            $fileNameToStore = NULL;
        }

        if($request->hasFile('author_image')) {
            $filenameWithExt = $request->file('author_image')->getClientOriginalName();
            $filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);
            $extension = $request->file('author_image')->getClientOriginalExtension();
            $authorImage = 'author_' . time() . '.' .$extension;
            $path = public_path('uploads/authors/' . $authorImage);
            if(!file_exists(public_path('uploads/authors/'))) {
                mkdir(public_path('uploads/authors/'), 0777);
            }
            Image::make($request->file('author_image')->getRealPath())->resize(50, 50)->save($path);
        }else {
            $authorImage = NULL;
        }

        $blog = Blog::create([
            'title' => $request->title,
            'image' => $fileNameToStore,
            'category' => $request->category,
            'meta_description' => $request->meta_description,
            'meta_keywords' => $request->meta_keywords,
            'url' => $request->url,
            'meta_title' => $request->meta_title,
            'author_name' => $request->author_name,
            'author_image' => $authorImage,
            'author_linkedin' => $request->author_linkedin,
            'popular' => $request->popular
        ]);

        $contents = str_split($request->post, 65000);
        $i = 1;
        foreach($contents as $key => $item)
        {
            Post::create([
                'post' => $blog->id,
                'content' => $item,
                'order' => $i
            ]);

            $i++;
        }

我希望 output 被重定向回博客页面,并显示成功消息“帖子已成功创建”,但实际结果是

Service Unavailable 由于维护停机或容量问题,服务器暂时无法为您的请求提供服务。 请稍后再试。

看起来您需要增加php.ini post_max_size upload_max_filesize的值。 AWS 指南: https://aws.amazon.com/ru/premiumsupport/knowledge-center/wordpress-themes-2mb/

我还建议为您的案例使用交易。 这将有助于避免部分创建的帖子。 https://laravel.com/docs/5.8/database#database-transactions

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM