我正尝试用gunicorn和nginx启动一个应用程序,并且不得不双倍地删除和更改文件几次。 这一次,我遇到了问题。 我第一次创build了一个暴发户文件… sudo nano /etc/init/gunicorn.conf description "Gunicorn application server handling flowershop" start on runlevel [2345] stop on runlevel [!2345] respawn setuid ubuntu setgid www-data chdir /home/ubuntu/flowershop exec env/bin/gunicorn –workers 3 –bind unix:/home/ubuntu/flowershop/flowershop.sock flowershop.wsgi:application 然后我跑了… sudo service gunicorn start 它开始了! 我不得不改变它创build的套接字的名称,所以我删除了/etc/init/gunicorn.conf upstart文件,创build了一个与上一个同名的新的upstart文件,并试图运行sudo service gunicorn start 。 它现在返回以下错误消息,对应下面的命令… sudo service gunicorn start start: Job failed to […]
有很多人有相同或相似的问题,但他们都解决了不同的解决scheme。 我很难弄清楚我的设置在这里有什么问题。 我刚刚安装了Nginx 1.4.1,Passenger 4.0.7,Ruby 2.0.0p247和Rails 4.0.0。 注意: 我已经安装了nginx @ /home/deployer/nginx 我正在使用rubyenv 我有一个www.example.com的CNAMElogging,指向myapp.cloud.com 我在~/nginx/conf/nginx.conf的末尾添加了这个块 server { listen 80; server_name www.example.com; root /home/deployer/sites/www.example.com/public; passenger_enabled on; } 我在/home/deployer/sites/www.example.com中有一个public符号链接,指向/home/deployer/src/myapp/gateway/public/ 我有两个问题: 如果我没有为我的Rails应用程序设置默认的root路线,当我去到我的网站的根目录时,我看不到标准的Rails Welcome页面。 相反,我不断得到403 Forbidden页面。 但是,如果我在public文件夹中添加一个index.html ,那么当我去http://www.example.com/时,我确实看到了该页面正在呈现 如果我将默认root路由设置为controller#action ,则当我转到我的站点根目录时,看不到控制器操作正在呈现。 相反,这是我得到的错误~/nginx/logs/error.log : 2013/07/08 19:57:05 [error] 34157#0: *1 directory index of "/home/deployer/sites/www.example.com/public/" is forbidden, client: 76.XX.XX.29, server: www.example.com, request: "GET / […]
我inheritance了一个configuration(Ubuntu,Nginx,Node.js,LetsEncrypt),其中letsencrypt证书非常接近到期。 我试过这些命令: ./letsencrypt-auto –renew –config /etc/letsencrypt/renewal/domain.conf certonly ./letsencrypt-auto –renew –config /etc/letsencrypt/renewal/domain.conf -d domain.com -d www.domain.com 两种情况都收到了以下回复: letsencrypt: error: uir is a flag but is being set to 'None' : letsencrypt: error: uir is a flag but is being set to 'None' 我试图改变它为假或空,但不工作。 如何在这个configuration上更新LetsEncrypt证书?
我想通过Nginx和RoR Web服务器(如Unicorn , Thin或WEBrick )在本地计算机上部署我的Ruby on Rails应用程序。 如下图所示,我想通过post子域访问我的web-app: upstream sub { server unix:/tmp/unicorn.subdomain.sock fail_timeout=0; # server 127.0.0.1:3000; } server { listen 80; server_name post.subdomain.me; access_log /var/www/subdomain/log/access.log; error_log /var/www/subdomain/log/error.log; root /var/www/subdomain; index index.html; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; try_files /system/maintenance.html $uri $uri/index.html $uri.html @ruby; } location @ruby […]
我正在尝试在EC2服务器上设置phpbb。 经过一个小时左右的绝望,我发现phpbb启动中的一个特定行失败: $db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false, defined('PHPBB_DB_NEW_LINK') ? PHPBB_DB_NEW_LINK : false); 易于修复,我需要正确configuration我的数据库属性。 但是 ,要发现我必须在php应用程序的第一对文件中逐块插入echo'1'语句。 在echo语句之前,当php出错时,我只能看到一个空白页面,状态为200。 我已经在FPM的php.ini中打开了log_errors和display_errors,但是显然他们对这种特殊types的错误没有做任何事情。 在/ var / log / syslog,/ var / log / nginx / *,/var/log/php-fpm.log或nginx站点的错误日志中没有关于错误的日志。 所以,我的问题是:为什么实际的错误(从sql_connect)没有被logging在任何地方? (或者,如果正在login,在哪里?)
我以前试过search一下这个问题,但是似乎没有什么地方可以详细解释,大多数情况下只有app/storage权限这样的问题没有被设置,所以webserver可以写文件,但是我的问题似乎更大更根本,我希望有人能够详细解释如何设置,最好不需要设置权限777 。 所以我的堆栈是Ubuntu 14.04 ,使用PHP-FPM的 PHP 5.6 ,因为我使用nginx 1.4.6 ,我使用Laravel 4.2作为框架,ow和一个以上的Git作为我的版本工具。 那么有什么必要的一步一步来允许以下几点: 设置最初的项目,Git和Nginx: 所以据我所知,Nginx设置为使用用户名www-data作为默认的权利? 这是否意味着我必须将我的用户(例如kevin分配给组www-data ? 当我初始化git时,使用composer创build项目,设置SSH公钥/私钥,我是否需要属于组www-data或者我必须是sudo或者什么? 在我的生产服务器上,我尝试用sudo来设置所有东西,这样做更容易,但这是否是最好的做法? 使app/storage可写入Web服务器: 我认为这是Laravel的第二个也是最重要的,因为除非这个工作Laravel不会运行,我的知识是这个文件夹必须可以由web服务器(nginx)写入,所以我需要设置为sudo chown -R www-data:www-data app/storage和sudo chmod -R 664 app/storage right? 但不知何故,这似乎并不一直工作,因为在我的发展有时它会告诉一个视图的caching不能写入app/storage文件夹,所以最后我必须将其设置为777或775 if我很幸运。 公用文件夹或我的资产的位置 这里我也有一些不一致的地方,我已经把它设置在777的末尾,以确保所有的文件都可以被nginx访问。 有时nginx会告诉我,我的资产文件夹中的某些图像似乎是被禁止的,如果我设置为777或将该组更改为www-data:www-data ,我只能更改权限,否则将只返回HTTP 200对于我从GIMP,Photoshop创build的每个图像,或者当我从Dropbox下载或从我的电子邮件中,当我的graphicsdevise师devise新的图标时组? 上传文件 因此,在某个时间段,人们可以上传例如他们的个人资料图片,或者当我发布博客我可以上传图片时,这意味着file upload脚本将在某个时刻将文件从/tmp文件夹移动到我的public文件夹,它可能只需要写入到一个public的子目录中,或者有时需要创build一个基于特定id的文件夹,并将文件移动到目录中,大部分时间我会得到一个错误,该目录似乎不在脚本执行期间是可写的或者一些权限错误。 这是否意味着PHP进程必须以某种权限运行? 或者这是否意味着该目录必须有一定的权限? 这个问题是否与Nginx服务相关,还是与PHP进程相关 ? 我有使用包如roumen/sitemap或jlapp/swaggervel ,他们似乎使用相同的Facade File ,但不知何故,他们没有任何问题的权限,我试图复制他们的代码行为,但我遇到了问题以上。 队列,工匠,其他基于命令行的执行脚本 最后,是基于命令行的执行脚本,这是否执行从与web服务器交互执行的脚本,如上面的file upload,还是我需要准备其他不一致? 谢谢,如果有人能向我解释这一点。 我想如果我弄清楚,我会创build一个博客文章或东西,感谢他们! :d
我遇到了一个问题,在AWS Elastic Beanstalk的Ubuntu Docker容器中,nginx似乎忽略了(或覆盖)我上传的client_max_body_size指令。 这会阻止用户上传大于nginx默认值1MB的文件。 我已经使用了client_max_body_size 10M; 在http,服务器和位置块无济于事,我仍然看到“客户端打算发送太大的身体”错误在nginx日志。 我已经在AWS EC2 Ubuntu实例上成功使用了这些设置,但是由于在Docker容器中使用了相同的设置,所以我遇到了这个问题。 我也尝试过使用ebextension,如下所示: 在Nginx上增加client_max_body_size conf在AWS Elastic Beanstalk 应用程序本身是在Tomcat容器中运行的CFML(Railo)。 这里是相关的nginx文件: 完整的未删节的文件在这里https://github.com/chapmandu/docker-railo 提前致谢。 nginx error.log 2014/12/02 03:02:05 [error] 32116#0: *142 client intended to send too large body: 1290803 bytes, client: 172.31.19.39, server: , request: "POST /listings/35602/images/create HTTP/1.1", host: "staging.svr.com.au", referrer: "http://staging.svr.com.au/listings/35602/images/new" nginx.conf daemon off; worker_processes 1; events { […]
我正在通过https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-uwsgi-and-nginx-on-ubuntu-16-04 。 我已经完成了testing,但是我得到了一个502错误。 我的nginx服务器块configuration文件: server { listen 80; server_name 198..xxx.xxx.xxx mysite.org; location = /favicon.ico { access_log off; log_not_found off; } location /static/ { root /home/deploy/mysite3; } location / { include uwsgi_params; uwsgi_pass unix:/run/uwsgi/mysite3.sock; } } deploy@server:/etc/nginx/sites-enabled$ sudo systemctl status nginx ● nginx.service – A high performance web server and a reverse proxy server Loaded: loaded […]
最后用nginx和php-fpm启动并运行Ubuntu 12.10。 现在我想用Ratchet运行一个websocket服务器,但是我需要先安装Composer。 所以我这样做: curl -s https://getcomposer.org/installer | php 就像Composer网站指示的一样,但我收到以下错误: The program 'php' is currently not installed. 我认为这可能是有关的PHP在最后,所以我把它改为php5-fpm然后告诉我: [18-Nov-2012 05:01:30] ERROR: An another FPM instance seems to already listen on /var/run/php5-fpm.sock [18-Nov-2012 05:01:30] ERROR: FPM initialization failed 有人遇到过这种情况么? 任何解决scheme 谢谢。
我正在创build一个应用程序,除了实时生产环境需要一个开发和分期环境。 生产环境目前正在运行,并在自己的VPS实例上运行。 一个logging: myapp.com 1.2.3.4 开发和分期环境将在他们自己的VPS实例上。 我configuration了合适的DNSlogging,以便每个环境都有自己的子域(myapp.com域中指向dev / staging服务器的logging: dev.myapp.com 5.6.7.8 staging.myapp.com 5.6.7.8 Nginx confix(Rails,Passenger)设置每个服务器的根目录(通配符SSL在http定义中configuration,端口80redirect到端口443): server { listen 443; server_name dev.myapp.com root /apps/myapp/dev/public } server { listen 443; server_name staging.myapp.com root /apps/myapp/staging/public } 我在Rails方面有点困惑,我还需要做什么来configuration环境,以便我可以通过URL访问各个开发环境和登台环境: staging.myapp.com dev.myapp.com 我知道Capistrano允许您设置生产环境和登台环境,但是我需要开发和登台URL才能生效,或者这应该足够吗?