我搭建了一个 Ubuntu 服务器(16.04),安装了 nodejs 和 nginx,并使它们一个一个地工作。 nodejs 在 3000 端口,nginx 在 80 端口。
我现在唯一的问题是 ftp。我想让 nodejs 的 js 文件驻留在 nginx www 文件夹的子文件夹中,反之亦然。所以我可以一次上传所有文件。
我试图在 nginx/var/www/html/my_web_project 中创建一个符号链接(symbolic link),指向 nodejs 中的一个文件夹,/home/admin/www/my_web_project。 ..但是我遇到了无休止的访问被拒绝的问题。
管理员主文件夹已加密,可能会导致问题?
无论如何,我不介意在某个地方有一个文件夹,nginx 和 nodejs 都希望在它们各自的子文件夹中找到它们的文件。
这是一个好方法吗?有人可以给我一些建议吗?
最佳答案
Linux 有一个陡峭的学习曲线,但它实际上是值得的,因为我终于得到了一个可行的解决方案。
从安装 nginx 开始。即使您打算在 nodejs 中进行大部分开发,您也需要一个可用的 Web 服务器,即 nginx。
我浏览了这些指南:
https://serverfault.com/questions/433265/how-do-i-change-the-nginx-user
https://nevyan.blogspot.se/2016/01/install-setup-nginx-php-mysql-and-ftp.html
指南归结为这些命令:
sudo apt-get install nginx
sudo nano /etc/nginx/nginx.conf
sudo nano /etc/nginx/sites-available/default
编辑 nginx.conf,指示 nginx 以用户 'my_user' 运行:
user my_user;
修改默认配置,这里关键的一行:
root /home/my_user/ftp/files;
然后重启你的 nginx 服务器。
结果应该是什么?简单的;我可以通过 ftp 将文件上传到我的网络服务器。
- 我通过 ftp 或 sftp 连接到“my_user”,因为它是我的用户主文件夹,所以我可以覆盖这些文件。避免 linux 文件安全方面的大多数困难。 (我很难理解所有这些。)
- 由于 nginx 以用户“my_user”运行,它也可以访问/home/my_user/ftp/files 文件夹! (我差点疯了让这一步工作)
- nginx 的根文件夹设置为/home/my_user/ftp/files,因此当我将新版本的 index.html 上传到该文件夹时,nginx 会立即使用它。
有效。 :)
nodejs 很容易安装,它似乎“开箱即用”。我基本上遵循了这个指南:https://kyup.com/tutorials/install-run-node-js-application/
我也想要 websocket,这是最简单的部分:
sudo npm install websocket
希望它对某人有所帮助,我在做这项工作时很开心。 :)
关于node.js - 使 nginx 和 node.js 有一个共同的根文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46675376/