web-dev-qa-db-ja.com

ソースからコンパイルされたNginxを開始できません

DigitalOceanサーバー(Ubuntu-14.04 64x)で実行されている元のコンパイル済みNginxサーバーに基づいてソースからNginxをコンパイルしようとしていますが、いくつかの追加モジュールがあります。すべてをスムーズにインストールできますが、起動できません。現在実行中のNginxサーバーから元のソースをコピーしたのでiniが正しいと確信しています[ソースをコンパイルするときにNginxがiniを追加するようになっていますが]。

以下は私が行っている[長いプロセス]です-申し訳ありませんが、情報を必要としている人のために徹底したかったのです]。私はNginxのnewBなので、何かが足りないか、すべてが間違っていると確信しています。私がやったことを見て、私が変更する必要がある/必要なものを見つけてくれたら、とても感謝しています。 Thnx!

元のNginxサーバーがまだ実行されている場合:

現在/実行中のNginx構成を確認して、新しいNginxインスタンスを同じようにビルドできるようにしますが、モジュールを追加します。

nginx -V
# The out-put:
configure arguments: 
--with-cc-opt='-g -O2 -fstack-protector 
--param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' 
--with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro' 
--prefix=/usr/share/nginx 
--conf-path=/etc/nginx/nginx.conf 
--http-log-path=/var/log/nginx/access.log 
--error-log-path=/var/log/nginx/error.log 
--lock-path=/var/lock/nginx.lock 
--pid-path=/run/nginx.pid 
--http-client-body-temp-path=/var/lib/nginx/body 
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi 
--http-proxy-temp-path=/var/lib/nginx/proxy 
--http-scgi-temp-path=/var/lib/nginx/scgi 
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi 
--with-debug 
--with-pcre-jit 
--with-ipv6 
--with-http_ssl_module 
--with-http_stub_status_module 
--with-http_realip_module 
--with-http_addition_module 
--with-http_dav_module 
--with-http_geoip_module 
--with-http_gzip_static_module 
--with-http_image_filter_module 
--with-http_spdy_module 
--with-http_sub_module 
--with-http_xslt_module

注:以下のconfigure引数は、「make」中にエラーを返すため、削除しました。それらが何であるかわかりません-これは私の問題に関連している可能性がありますか?

--with-cc-opt='-g -O2 -fstack-protector 
--param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' 
--with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro'

先に進む:

# So I don't have to Sudo every line:
Sudo bash

# Check for updates first thing:
apt-get update

# Install various prerequisites needed to compile Nginx:
apt-get install build-essential libgd2-xpm-dev lsb-base zlib1g-dev libpcre3 libpcre3-dev libbz2-dev libxslt1-dev libxml2 libssl-dev libgeoip-dev tar unzip openssl

# Create System users [ if it doesn't exist - but I see its there on DigitalOceans' Droplets all-ready ]:
adduser --system --no-create-home --disabled-login --disabled-password --group www-data

# Download NGINX
wget http://nginx.org/download/nginx-1.7.4.tar.gz
tar -xvzf nginx-1.7.4.tar.gz

# Then Google PageSpeed:
wget https://github.com/pagespeed/ngx_pagespeed/archive/release-1.8.31.4-beta.Zip
unzip release-1.8.31.4-beta.Zip

# cd into the PageSpeed Directory
cd ngx_pagespeed-release-1.8.31.4-beta/
# and add the PSOL files in there:
wget https://dl.google.com/dl/page-speed/psol/1.8.31.4.tar.gz
tar -xzvf 1.8.31.4.tar.gz

# Get back to the root directory:
cd

# I add the ngx_cache_purge module and will install the Nginx Helper plugin for WP later:
wget https://github.com/FRiCKLE/ngx_cache_purge/archive/2.1.Zip
unzip 2.1.Zip

# Add the headers-more-nginx-module:
wget https://github.com/openresty/headers-more-nginx-module/archive/v0.25.Zip
unzip v0.25.Zip

# and the naxsi module for added security:
wget https://github.com/nbs-system/naxsi/archive/0.53-2.tar.gz
tar -xvzf 0.53-2.tar.gz

# cd to the new Nginx directory
cd nginx-1.7.4

# Set up the configuration build based on the current running Nginx config args and add my additional modules:
./configure \
--add-module=$HOME/naxsi-0.53-2/naxsi_src \
--prefix=/usr/share/nginx \
--conf-path=/etc/nginx/nginx.conf \
--http-log-path=/var/log/nginx/access.log \
--error-log-path=/var/log/nginx/error.log \
--lock-path=/var/lock/nginx.lock \
--pid-path=/run/nginx.pid \
--http-client-body-temp-path=/var/lib/nginx/body \
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
--http-proxy-temp-path=/var/lib/nginx/proxy \
--http-scgi-temp-path=/var/lib/nginx/scgi \
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi \
--user=www-data \
--group=www-data \
--with-debug \
--with-pcre-jit \
--with-ipv6 \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_dav_module \
--with-http_geoip_module \
--with-http_gzip_static_module \
--with-http_image_filter_module \
--with-http_spdy_module \
--with-http_sub_module \
--with-http_xslt_module \
--with-mail \
--with-mail_ssl_module \
--add-module=$HOME/ngx_pagespeed-release-1.8.31.4-beta \
--add-module=$HOME/ngx_cache_purge-2.1 \
--add-module=$HOME/headers-more-nginx-module-0.25

[ENTER]

構成の概要:

Configuration summary
  + using system PCRE library
  + using system OpenSSL library
  + md5: using OpenSSL library
  + sha1: using OpenSSL library
  + using system zlib library

  nginx path prefix: "/usr/share/nginx"
  nginx binary file: "/usr/share/nginx/sbin/nginx"
  nginx configuration prefix: "/etc/nginx"
  nginx configuration file: "/etc/nginx/nginx.conf"
  nginx pid file: "/run/nginx.pid"
  nginx error log file: "/var/log/nginx/error.log"
  nginx http access log file: "/var/log/nginx/access.log"
  nginx http client request body temporary files: "/var/lib/nginx/body"
  nginx http proxy temporary files: "/var/lib/nginx/proxy"
  nginx http fastcgi temporary files: "/var/lib/nginx/fastcgi"
  nginx http uwsgi temporary files: "/var/lib/nginx/uwsgi"
  nginx http scgi temporary files: "/var/lib/nginx/scgi"

次のステップ:

ルートにcdして、古いNginxフォルダーの場所を確認し、「make」出力を再確認して、それらが同じであることを確認します。

whereis nginx
#Output:
nginx: /usr/sbin/nginx /etc/nginx /usr/share/nginx

注: '/ usr/sbin/nginx'についてわからない-考えられる問題???

次に、古い/etc/nginx/nginx.conf、/etc/nginx/sites-available/default、/etc/nginx/sites-enabled/default、/etc/init.d/nginxをローカルのテキストファイルにコピーします。新しいNginxサーバーで安全に使用できます。

次に、実行中のNginxサーバーを停止します:service nginx stop、停止していることを確認します:service --status-allそして出力は次のとおりです:[-] nginx

2つのNginxディレクトリがあることを確認するには、cd nginx*にcdします。出力は、2つのnginxフォルダがあることを示すエラーです-Cool Beans! :)

次に、新しいNginxサーバーをインストールします:cd nginx-1.7.4 make install

# INSTALL OUTPUT ########################################
make -f objs/Makefile install
make[1]: Entering directory `/home/walkingfish/nginx-1.7.4'
test -d '/usr/share/nginx' || mkdir -p '/usr/share/nginx'
test -d '/usr/share/nginx/sbin'                 || mkdir -p '/usr/share/nginx/sbin'
test ! -f '/usr/share/nginx/sbin/nginx'                 || mv '/usr/share/nginx/sbin/nginx'                     '/usr/share/nginx/sbin/nginx.old'
cp objs/nginx '/usr/share/nginx/sbin/nginx'
test -d '/etc/nginx'            || mkdir -p '/etc/nginx'
cp conf/koi-win '/etc/nginx'
cp conf/koi-utf '/etc/nginx'
cp conf/win-utf '/etc/nginx'
test -f '/etc/nginx/mime.types'                 || cp conf/mime.types '/etc/nginx'
cp conf/mime.types '/etc/nginx/mime.types.default'
test -f '/etc/nginx/fastcgi_params'             || cp conf/fastcgi_params '/etc/nginx'
cp conf/fastcgi_params          '/etc/nginx/fastcgi_params.default'
test -f '/etc/nginx/fastcgi.conf'               || cp conf/fastcgi.conf '/etc/nginx'
cp conf/fastcgi.conf '/etc/nginx/fastcgi.conf.default'
test -f '/etc/nginx/uwsgi_params'               || cp conf/uwsgi_params '/etc/nginx'
cp conf/uwsgi_params            '/etc/nginx/uwsgi_params.default'
test -f '/etc/nginx/scgi_params'                || cp conf/scgi_params '/etc/nginx'
cp conf/scgi_params             '/etc/nginx/scgi_params.default'
test -f '/etc/nginx/nginx.conf'                 || cp conf/nginx.conf '/etc/nginx/nginx.conf'
cp conf/nginx.conf '/etc/nginx/nginx.conf.default'
test -d '/run'          || mkdir -p '/run'
test -d '/var/log/nginx' ||             mkdir -p '/var/log/nginx'
test -d '/usr/share/nginx/html'                 || cp -R html '/usr/share/nginx'
test -d '/var/log/nginx' ||             mkdir -p '/var/log/nginx'
#########################################################

以前に保存したファイルをsites-available、config、default、およびiniファイルのtxtファイルにコピー/作成してから、sites-enabledなどにシンボリックリンクします。

そして今、サーバーを起動します:service nginx start

そして、これがs#!+がファンを襲う場所です-灘。 Nginxがwith service --status-allを実行しているかどうかを確認します。また、nginx -Vがインストールされていませんか?私もシステムを再起動しましたが、まだ何もありません。ですから、ここで何が悪いのかわかりません。 iniは、古いファイルを削除した後、他のすべての構成ファイルとともに古いサーバーからコピーされました。新しいコンパイル済みファイルを開いたとき、nginxのデフォルトデータが存在していたため、新しいサーバーを初めて起動する前に、それらを古い元のデータに置き換えました。

また、安全のために、私はrm /etc/nginx/sites-enabled/defaultで、エラーなしでln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/defaultとシンボリックリンクし、データがサイト対応/デフォルトファイルにあることを確認しました。

nginx -Vの結果のため、サーバーが実際に/完全にインストールされているとは思いません。

The program 'nginx' can be found in the following packages:
 * nginx-core
 * nginx-extras
 * nginx-full
 * nginx-light
 * nginx-naxsi
Try: apt-get install <selected package>

apt-get install nginx-1.7.4 ??または、カスタムパッケージであり、以前はmake installが何もしなかったので、どのパッケージを使用しますか?

古いサーバーからカスタムサーバーにコピーしたconfファイルを確認する必要がある場合は、LMKと投稿します。

ここでもあなたの助けをいただければ幸いです!

1

nginx -Vを使用して現在のサーバー構成に基づいてコンパイルしていたため、出力にsbinパスが表示されなかったため、コンパイルでドキュメントに従ってデフォルトを設定する必要があると思っていても、それを忘れていました。基本的に、フォルダはコンパイルされていません:P

--sbin-path = path —nginx実行可能ファイルの名前を設定します。この名前は、インストール時にのみ使用されます。デフォルトでは、ファイルの名前はprefix/sbin/nginxです。

2