我已经成功部署了Ruby on Rails应用程序,并遵循资产pipe道指南来设置资产编译和压缩。 看来我的服务器日志中出现caching问题。 看来我有一个权限被拒绝时试图mkdircaching文件夹? 这里发生了什么? 我该如何解决这个问题? nginx /日志error.log … cache: [GET /assets/grid.png] miss cache: [GET /] miss cache error: Permission denied – /var/www/redmeetsblue/releases/20120212234112/tmp/cache/B27 /usr/local/rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/fileutils.rb:247:in `mkdir' /usr/local/rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/fileutils.rb:247:in `fu_mkdir' /usr/local/rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/fileutils.rb:221:in `block (2 levels) in mkdir_p' /usr/local/rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/fileutils.rb:219:in `reverse_each' /usr/local/rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/fileutils.rb:219:in `block in mkdir_p' /usr/local/rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/fileutils.rb:205:in `each' /usr/local/rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/fileutils.rb:205:in `mkdir_p' tmp文件夹的用户/权限… ls -alh /var/www/redmeetsblue/current/tmp total 12K drwxr-xr-x 3 root root 4.0K […]
我已经search了一整天的解决scheme,并已短暂地…任何洞察力感到高兴。 提前致谢。 问题:log / production.rb文件存在,但在生产Rails 4.0环境中为空。 log / development.rb是在开发Rails 4.0环境中的预期。 一点背景:使用Rails 4,Ruby 2.0.0-p247,Capistrano 3.0.1,Unicorn 4.7.0和nginx 1.4.1。 应用程序根和权限: drwxrwsr-x 13 deployer deployer 4096 2013-11-10 21:30 ./ drwxrwsr-x 7 deployer deployer 4096 2013-11-10 21:30 ../ drwxrwsr-x 8 deployer deployer 4096 2013-11-10 21:31 app/ -rw-rw-r– 1 deployer deployer 2015 2013-11-10 21:30 assets_manifest_backup drwxrwsr-x 2 deployer deployer 4096 2013-11-10 […]
如果我手动启动gunicorn或者如果我添加gunicorn到我的Django安装的应用程序,我可以这个设置工作。 但是当我尝试用systemd启动gunicorn时,gunicorn套接字和服务启动正常,但是它们不向Nginx提供任何服务; 我得到一个502坏的网关。 Nginx运行在“http”用户/组chroot jail下。 我用pythonbrew来设置virtualenvs,所以gunicorn被安装在我的主目录下.pythonbrew。 vitualenv目录由我的用户和adm组拥有。 我很确定有一个权限问题的地方,因为一切起作用,如果我开始gunicorn,但不是如果systemd启动它。 我已经尝试更改gunicorn.service文件中的用户和组指令,但没有任何工作; 如果root启动服务器,那么我得到没有错误和502,如果我的用户启动它,我没有得到任何错误和504。 我已经检查了Nginx的日志,没有错误,所以我确定这是个棘手的问题。 我应该在应用程序目录中有virtualenv吗? 谁应该是应用程序目录的所有者? 我怎样才能缩小这个问题? /usr/lib/systemd/system/gunicorn-app.service #!/bin/sh [Unit] Description=gunicorn-app [Service] ExecStart=/home/noel/.pythonbrew/venvs/Python-3.3.0/nlp/bin/gunicorn_django User=http Group=http Restart=always WorkingDirectory = /home/noel/.pythonbrew/venvs/Python-3.3.0/nlp/bin [Install] WantedBy=multi-user.target /usr/lib/systemd/system/gunicorn-app.socket [Unit] Description=gunicorn-app socket [Socket] ListenStream=/run/unicorn.sock ListenStream=0.0.0.0:9000 ListenStream=[::]:8000 [Install] WantedBy=sockets.target 我意识到这是一个棘手的问题,但我相信我可以用一些指针来指出这个问题。 谢谢。 更新 我开始缩小这个范围。 当我手动运行gunicorn,然后运行ps aux|grep gunicorn然后我看到两个启动的进程:master和worker。 但是当我用systemd启动gunicorn时,只有一个进程启动了。 我尝试在我的gunicorn.services文件中添加Type=forking ,但是在加载服务时出现错误。 我想可能gunicorn没有在virtualenv下运行,或者venv没有被激活? 有谁知道我在这里做错了吗? 也许gunicorn没有跑在venv?
在尝试访问php文件时,我遇到了一些Nginx和Php fastcgi的权限问题。 我在Redhat 7中使用5.5.15和Nginx 1.6.0。 我的PHP文件现在非常简单。 <?php echo "\nscript owner : ".get_current_user()."\n"; $myFile = '/usr/share/nginx/html/test.log'; $fh = fopen($myFile, 'a') or die("can''t open file"); ?> 获取当前用户将导致:“myuser” 我得到的错误如下: 2014/08/26 22:47:14 [error] 6424#0: *16 FastCGI sent in stderr: "PHP message: PHP Warning: fopen(/usr/share/nginx/html/test.log): failed to open stream: Permission denied in /usr/share/nginx/html/test.php on line 19" while reading response header […]
我有2个PHP应用程序运行在我的服务器上,这些应用程序中的文件由2个用户(user1和user2) 文件的所有权看起来像这样user1:www-data和user2:www-data。 我将www-data分配为组,这样当权限设置为775时,我的php应用程序可以轻松地写入文件。所以我将所有文件权限设置为755和775(对于必须写入的文件)。 一切都很好,唯一的问题是,当我的PHP应用程序创build一个文件,它将所有权设置为www-data www-data这不是我想要的。 我想PHP设置权限,以iether user1:www-data或user2:www-数据取决于它是哪个应用程序。 我用php-fpm使用Nginx 1.6.3和php 5.5.24。
好。 林有点困惑在Linux的这些权限,所以请人帮助我。 麻烦的是我不想以root身份运行服务器,所以我使用sudo权限创build了另一个用户,以便运行nginx和php-fpm服务器(例如“sudo_user”)。 但麻烦是,例如我有“some_user”,他有一个他的网站“some_user / www.some_user.com”的目录与所有的configuration文件,包括数据库密码等。 我将所有文件的所有权设置为some_user:some_user(user:group),并将所有文件的权限更改为751(u = rwx,g = rx,o = x,所以其他帐户不能进入此目录并读取每个configuration文件)设置为公共文件权限755.但是我的php-fpm以“sudo_user”运行,并且没有“some_user”目录中的configuration文件的读写权限。 我应该采取什么策略?
我已经创build了一个文件夹到/var/www/default的默认服务器,一切都按预期工作。 在那个文件夹里面,我使用常用的ln -s来build立~/WebstormProjects/my-project的符号链接。 它工作了一段时间,而且我最后一次使用apt-get更新,nginx不再遵循符号链接,它给了我一个404错误,甚至没有像以前那样列出符号链接。 尝试使用disable_symlinks指令,将其设置为off ,并没有发生任何事情。 还遵循这个环节的步骤,仍然没有。 还把自己添加到www-data用户,什么都没有。 但是,如果我通过将user指令更改为我自己的用户来编辑nginx.conf ,并重新启动服务器确实可行,但我知道这是一个非常糟糕的做法,将来有一天它不会允许PHP-FPM工作。 那么,我能做些什么来使nginx遵循符号链接,而不必更改我的源代码目录的所有者? 顺便说一下,我使用Ubuntu 14.04.3和nginx 1.4.6通过包pipe理器安装。
我在设置本地nginx环境时遇到了麻烦。 我一直在网上阅读无数的教程,一切似乎都混乱了我的大脑。 OS:OSX 10.11.4 El Capitan Nginx:1.8.1 PHP-FPM:5.5.31 现在我的网站根目录的文件目录如下: /webserver /webverver/phpinfo.php /webserver/example /webserver/example/index.php 我可以使用curl或访问本地主机的Web浏览器访问默认的“Welcome to Nginx”页面。 如果我然后浏览我得到文件的索引,但PHP文件将尝试下载而不是执行。 如果我尝试访问在local.example.com创build的示例网站(我已经添加到我的主机文件中),那么我使用curl获得403 Forbidden标题返回,并使用Web浏览器获得一个很好的,简单的“Access Denied” 。 我不知道文件权限和目录所有权,有人可能会build议我应该如何configuration一切? 我被build议运行下面的命令,但它没有改变任何东西: sudo chmod -R 755 /Users/nickcorin/webserver 除了“信号启动”日志之外,我的错误日志中没有任何日志。 这是我目前的configuration: nginx.conf #user nobody; worker_processes 1; error_log logs/error.log; error_log logs/error.log notice; error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type […]
我只是第一次设置Nginx,喜欢我所读到的有关Apache的优势。 我的问题是:我在我的Linux Mint(12,32位)盒子上启动Nginx。 index.html位于 /usr/share/nginx/www 我也有一个文件夹位于 /usr/share/nginx/www/store 其中包含一些ISO文件,但没有HTML文件(所以甚至没有一个index.html)。 在Apache中,这将导致一个文件夹目录,我希望从Nginx获得类似的东西 – 我认为这是一个基本的function特性。 值得一提的是 /usr/share/nginx/www/store 是我用于Samba共享的一个安装点。 这是问题: 我去我的另一台机器上访问我的Linux机器。 通过访问www.example.com ,我迎来了标准的“Welcome to nginx”消息。 当我访问www.example.com/store ,出现“403 Forbidden”错误,而不是/store文件的目录列表。 我读了很多关于权限是403错误的原因,但我没有看到我怎么可能错过任何东西。 在温和的绝望中,我编辑了nginx.conf来说 user root; 所以nginx以root身份运行,即使我知道这不是最好的主意(我只是想看看它是否是一个权限问题)。 usr/share/nginx/www和usr/share/nginx/www/store (以及其中包含的ISO文件)都具有drwxr-xr-x权限,并由root root拥有。 Samba服务器工作的很好,我可以完全访问/store我的另一台计算机,但我无法从浏览器中获取它。 有任何想法吗?
我正在按照这个教程: https : //www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-14-04 我相信我的设置中的其他一切都是正确的。 文件/var/log/nginx/error.log有以下许多错误: 2015/12/19 18:41:58 [crit] 10850#0:* 23连接()到unix:/home/root/myproject/myproject.sock失败(13:权限被拒绝)连接上游时,客户端:[请求:“GET / HTTP / 1.1”,上游:“ http:// unix:/home/root/myproject/myproject.sock:/ ”,主机: “[[server ip]]” 命令: /home/root/myproject ls -l /home/root/classNote/classNote.sock 输出: srwxrwxrwx 1 root www-data 0 Dec 19 18:17 /home/root/myproject/myproject.sock 编辑:安德烈的评论的回应: 命令: ps ax | grep gunicorn 输出: 847 ? Ss 0:00 /home/root/myproject/myprojectEnv/bin/python myprojectEnv/bin/gunicorn –workers 3 –bind unix:/home/root/myproject/myproject.sock myproject.wsgi:application 921 […]