'/ ऑप्ट' में पैसेंजर सपोर्ट के साथ नेग्नेक्स को स्थापित करने के बाद, यह 'init.d' से शुरू क्यों नहीं होगा?


15

मैं एक ट्यूटोरियल http://craiccomputing.blogspot.com/2010/10/passenger-3-nginx-and-rvm-on-mac-os-x.html पर गया और सब कुछ ठीक था। कोई त्रुटि नहीं थी।

Nginx with Passenger support was successfully installed.

The Nginx configuration file (/opt/nginx/conf/nginx.conf)
must contain the correct configuration options in order for Phusion Passenger
to function correctly.

This installer has already modified the configuration file for you! The
following configuration snippet was inserted:

  http {
      ...
      passenger_root /home/alex/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.14;
      passenger_ruby /home/alex/.rvm/wrappers/ruby-1.9.3-p194/ruby;
      ...
  }

After you start Nginx, you are ready to deploy any number of Ruby on Rails
applications on Nginx.

हालाँकि मैं इसे शुरू नहीं कर सकता।

alex@ubuntu:~$ sh -x /etc/init.d/nginx start
sh: 0: Can't open /etc/init.d/nginx

sudo /etc/init.d/nginx start
sudo: /etc/init.d/nginx: command not found

निर्देशिका opt/nginxमौजूद है और इसमें फाइलें हैं। Localhost:80या तो काम नहीं करता है।

कोई सुझाव?

जवाबों:


3

स्थापित करने के लिए सामान्य तरीके nginx के माध्यम से है apt-get(या Synaptic या दप केंद्र) और उस में कुछ भी नहीं डाल करता है /opt, AFAIK। उस स्थिति में, आप इसे केवल जारी करके रोक सकते हैं / शुरू कर सकते हैं:

sudo service nginx start|stop|restart (etc)

यदि आपका nginxखुद को स्थापित किया है /opt, मुझे संदेह है कि यह /etc/init.dनिर्देशिका को छुआ होगा ...


1
यह कहता है 'नगनेक्स: गैर-मान्यता प्राप्त सेवा'
एलेक्स मालेक्स

1
sudo apt-get install nginx
ish

1
क्यों? यह पहले कहा गया था कि 'यात्री समर्थन के साथ Nginx सफलतापूर्वक स्थापित किया गया था।'
एलेक्स मालेक्स

2
आप मैक के लिए एक ट्यूटोरियल का अनुसरण कर रहे हैं , जो स्पष्ट रूप से कहता है कि nginxसीधे शुरू करें sudoऔर साथ बंद करें killall, और फिर आप पूछते हैं कि यह सेवा के रूप में क्यों स्थापित नहीं है !?
ish

2
मेरा मानना ​​है कि ओपी नग्नेक्स + यात्री के बारे में पूछ रहा है, न कि वेनिला नगीनेक्स के बारे में।
user10962

20

रेल + एनजीआईएनएक्स + पैसेंजर + आरवीएम सेटअप को स्थापित करने के सामान्य तरीके में आमतौर पर nginx को / ऑप्ट / nginx में रखा जाता है, लेकिन यह वास्तव में init.d स्टार्टअप फ़ाइल नहीं बनाता है। इस ब्लॉग पोस्ट से पता चलता है कि आप कैसे आसानी से लिनोइड से एक ले सकते हैं :

wget -O init-deb.sh https://www.linode.com/docs/assets/660-init-deb.sh
sudo mv init-deb.sh /etc/init.d/nginx
sudo chown root:root /etc/init.d/nginx
sudo chmod +x /etc/init.d/nginx
sudo /usr/sbin/update-rc.d -f nginx defaults

पोस्टरिटी के लिए, यहाँ लिनोइड की स्क्रिप्ट है:

#! /bin/sh

### BEGIN INIT INFO
# Provides:          nginx
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the nginx web server
# Description:       starts nginx using start-stop-daemon
### END INIT INFO

PATH=/opt/nginx/sbin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/opt/nginx/sbin/nginx
NAME=nginx
DESC=nginx

test -x $DAEMON || exit 0

# Include nginx defaults if available
if [ -f /etc/default/nginx ] ; then
        . /etc/default/nginx
fi

set -e

case "$1" in
  start)
        echo -n "Starting $DESC: "
        start-stop-daemon --start --quiet --pidfile /opt/nginx/logs/$NAME.pid \
                --exec $DAEMON -- $DAEMON_OPTS
        echo "$NAME."
        ;;
  stop)
        echo -n "Stopping $DESC: "
        start-stop-daemon --stop --quiet --pidfile /opt/nginx/logs/$NAME.pid \
                --exec $DAEMON
        echo "$NAME."
        ;;
  restart|force-reload)
        echo -n "Restarting $DESC: "
        start-stop-daemon --stop --quiet --pidfile \
                /opt/nginx/logs/$NAME.pid --exec $DAEMON
        sleep 1
        start-stop-daemon --start --quiet --pidfile \
                /opt/nginx/logs/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS
        echo "$NAME."
        ;;
  reload)
          echo -n "Reloading $DESC configuration: "
          start-stop-daemon --stop --signal HUP --quiet --pidfile     /opt/nginx/logs/$NAME.pid \
              --exec $DAEMON
          echo "$NAME."
          ;;
      *)
            N=/etc/init.d/$NAME
            echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
            exit 1
            ;;
    esac

    exit 0

एक बात जानने के लिए: यदि आपने अपना nginx.pid स्थान बदल लिया है (/a ऑप्ट / nginx / लॉग में चूक, मैंने मेरा / var / run में बदल दिया है), तो आपको इसे इस फ़ाइल में बदलना होगा। शीर्ष के पास, बस इसे एक चर के रूप में घोषित करें:

PIDPATH=/var/run/$NAME.pid

और $ PIDPATH के साथ उस पथ को कहीं भी बदल दें, जहां मार्ग है। (यहां तक ​​कि अगर आप मूल रास्ता रख रहे हैं, तो यह स्क्रिप्ट को अधिक पठनीय बनाता है)।


1

ब्राइटबॉक्स विकी में उल्लिखित ब्राइटबॉक्स पीपीए का उपयोग करने की सलाह देता हूं । यह बॉक्स की तरह या उसके बाहर सभी सामान्य सेवा को सक्षम करता है ।service nginx start/etc/init.d/nginx start

यह मेरे लिए सटीक (12.04 LTS) काम करता है।


1
अच्छी सलाह। नोट: init फ़ाइल का URL स्थायी रूप से स्थानांतरित हो गया है https://www.linode.com/docs/assets/660-init-deb.sh
तैमू लीस्तु
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.