【问题标题】:Folder structure to deploy app on EC2 instance在 EC2 实例上部署应用程序的文件夹结构
【发布时间】:2019-08-25 02:25:34
【问题描述】:

我正在 EC2 实例 (ubuntu) 上设置一个新的 React 应用程序。我已经安装了 nodeJS 和 npm,并且能够成功构建我的应用程序。 问题是我的代码在 /var/www/html 文件夹中,而我的网站 example.com 指向该文件夹。

当我跑步时

npm run build

它在 /html 下构建一个文件夹,例如 /html/build 现在我的应用程序在 example.com/build 上运行。这些文件的资源来自 example.com/static/style.css 等,但它们实际上位于 example.com/build/static 下

我可以编辑asset-manifest.json 并更改路径,但这不是合适的解决方案,因为我需要摆脱/build 文件夹进行生产

【问题讨论】:

    标签: node.js reactjs amazon-ec2 package web-deployment


    【解决方案1】:

    我对 EC2 的部署不是非常熟悉,但这看起来您只需将应用程序的全部内容复制到 var/www/html 中,或者您需要告诉 apachenginx 向右看文件夹(在本例中为 /build

    例如,对于 apache,您可能在 /etc/apache2/sites-enabled/ 中有一个指向 /var/www/html 的文件,您可以将其更改为 /var/www/html/build 并重新启动 apache。

    您可以查看这里以获取有关如何编写这些配置的示例https://gist.github.com/rambabusaravanan/578df6d2486a32c3e7dc50a4201adca4

    【讨论】:

    • 我尝试过并更改了 apache2.conf 文件 Documentroot,但是当我转到 example.com 时我看到了 Forbidden
    • 可能您需要调整文件夹的所有权,以便 apache 可以像这样读取它:sudo chown -R www-data:www:data "your dir" 但这是一个长镜头,也许您可​​以分享您的虚拟主机配置文件。此外,您可能在/etc/apache2/sites-available 中有一个名为000-default.conf 的文件,您可以在那里修改虚拟主机,然后运行sudo a2dissite 000-default,然后运行sudo a2ensite 000-default。然后重新启动apache,它应该可以工作了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多