2016-05-06 11 views
2

最新のバージョンのnginx(> = 1.9.5)をfreshなamazon Linuxにインストールして、http2を利用しようとしています。amazon Linuxディストリビューションにnginx 1.9.15をインストールするには

nginx x86_64 1:1.8.1-1.26.amzn1 amzn-main 557 k

:私は yum updateyum install nginxを実行した場合

[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/ 
gpgcheck=0 
enabled=1 

が、私はこれを取得:私はこのコンテンツでレポファイル/etc/yum.repos.d/nginx.repoを作成http://nginx.org/en/linux_packages.html

> - 私はここで説明されている指示に従っ

amzn-mainリポジトリからまだフェッチしているようです。新しいバージョンのnginxをインストールするにはどうしたらいいですか?

- 編集 - 私が追加「優先順位を= 10」nginx.repoファイルに、今、私はこの結果をyum install nginxで1.9.15をインストールすることができます。

Loaded plugins: priorities, update-motd, upgrade-helper 
Resolving Dependencies 
--> Running transaction check 
---> Package nginx.x86_64 1:1.9.15-1.el7.ngx will be installed 
--> Processing Dependency: systemd for package: 1:nginx-1.9.15-1.el7.ngx.x86_64 
--> Processing Dependency: libpcre.so.1()(64bit) for package: 1:nginx-1.9.15-1.el7.ngx.x86_64 
--> Finished Dependency Resolution 
Error: Package: 1:nginx-1.9.15-1.el7.ngx.x86_64 (nginx) 
      Requires: libpcre.so.1()(64bit) 
Error: Package: 1:nginx-1.9.15-1.el7.ngx.x86_64 (nginx) 
      Requires: systemd 
You could try using --skip-broken to work around the problem 
You could try running: rpm -Va --nofiles --nodigest 

答えて

1

これらのnginx RPMはAmazon LinuxではなくRHEL7向けに構築されているため、エラーが発生しています。 Amazon Linuxは、RHEL6、RHEL7、およびFedoraの変わったハイブリッドです。 Amazonに連絡して、ディストリビューション用に特別に作られたnginx19 RPMを作成するように依頼する必要があります。

1

注意、何の1.10はありませんあなたが探している場所。 CentOSの6の

yum search nginx 

nginx.x86_64 : A high performance web server and reverse proxy server 
nginx16.x86_64 : A high performance web server and reverse proxy server 
nginx18.x86_64 : A high performance web server and reverse proxy server 

Iを与える:あなたが持っているさまざまなバージョンを確認するためにyum search nginxを使用して、ある特定の選択yum update後あなたはここに

http://nginx.org/packages/mainline/centos/7/x86_64/RPMS/ 

リストを見ることができます1.6と1.8の2つのバージョンから選択できます。

+0

これは本当です。しかし、代わりに1.9.15をインストールするには? – wiesson

+1

コマンドラインで完全なパッケージ名を指定してください。私は少し答えを更新します。 – Harry

7

執筆時点では、AWS yum repoから入手できるnginxの最新バージョンは1.8です。

今のところ最も良いのは、ソースから新しいバージョンをビルドすることです。

AWS Linux AMIには、すでに必要なビルドツールがあります。 nginxの1.10に基づいて例えば

、(私はあなたが定期的にec2-userとしてログインしていると仮定しました。何がsudoで先行しているスーパーユーザー権限を必要とする)あなたは、サービスをお勧めします

cd /tmp #so we can clean-up easily 
wget http://nginx.org/download/nginx-1.10.0.tar.gz 
tar zxvf nginx-1.10.0.tar.gz && rm -f nginx-1.10.0.tar.gz 
cd nginx-1.10.0 
sudo yum install pcre-devel openssl-devel #required libs, not installed by default 
./configure \ 
    --prefix=/etc/nginx \ 
    --conf-path=/etc/nginx/nginx.conf \ 
    --pid-path=/var/run/nginx.pid \ 
    --lock-path=/var/run/nginx.lock \ 
    --with-http_ssl_module \ 
    --with-http_v2_module \ 
    --user=nginx \ 
    --group=nginx 
make 
sudo make install 
sudo groupadd nginx 
sudo useradd -M -G nginx nginx 
rm -rf nginx-1.10.0 

をファイルを作成して、nginxを起動/停止して起動時に読み込むことができます。

ここには上記の設定と一致するものがあります。/etc/rc.d/init.d/nginxにそれを置く:

実行可能にサービスファイルを設定し
#!/bin/sh 
# 
# nginx - this script starts and stops the nginx daemon 
# 
# chkconfig: - 85 15 
# description: NGINX is an HTTP(S) server, HTTP(S) reverse \ 
#    proxy and IMAP/POP3 proxy server 
# processname: nginx 
# config:  /etc/nginx/nginx.conf 
# config:  /etc/sysconfig/nginx 
# pidfile:  /var/run/nginx.pid 

# Source function library. 
. /etc/rc.d/init.d/functions 

# Source networking configuration. 
. /etc/sysconfig/network 

# Check that networking is up. 
[ "$NETWORKING" = "no" ] && exit 0 

nginx="/etc/nginx/sbin/nginx" 
prog=$(basename $nginx) 

NGINX_CONF_FILE="/etc/nginx/nginx.conf" 

[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx 

lockfile=/var/run/nginx.lock 

make_dirs() { 
    # make required directories 
    user=`$nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -` 
    if [ -z "`grep $user /etc/passwd`" ]; then 
     useradd -M -s /bin/nologin $user 
    fi 
    options=`$nginx -V 2>&1 | grep 'configure arguments:'` 
    for opt in $options; do 
     if [ `echo $opt | grep '.*-temp-path'` ]; then 
      value=`echo $opt | cut -d "=" -f 2` 
      if [ ! -d "$value" ]; then 
       # echo "creating" $value 
       mkdir -p $value && chown -R $user $value 
      fi 
     fi 
    done 
} 

start() { 
    [ -x $nginx ] || exit 5 
    [ -f $NGINX_CONF_FILE ] || exit 6 
    make_dirs 
    echo -n $"Starting $prog: " 
    daemon $nginx -c $NGINX_CONF_FILE 
    retval=$? 
    echo 
    [ $retval -eq 0 ] && touch $lockfile 
    return $retval 
} 

stop() { 
    echo -n $"Stopping $prog: " 
    killproc $prog -QUIT 
    retval=$? 
    echo 
    [ $retval -eq 0 ] && rm -f $lockfile 
    return $retval 
} 

restart() { 
    configtest || return $? 
    stop 
    sleep 1 
    start 
} 

reload() { 
    configtest || return $? 
    echo -n $"Reloading $prog: " 
    killproc $nginx -HUP 
    RETVAL=$? 
    echo 
} 

force_reload() { 
    restart 
} 

configtest() { 
    $nginx -t -c $NGINX_CONF_FILE 
} 

rh_status() { 
    status $prog 
} 

rh_status_q() { 
    rh_status >/dev/null 2>&1 
} 

case "$1" in 
    start) 
     rh_status_q && exit 0 
     $1 
     ;; 
    stop) 
     rh_status_q || exit 0 
     $1 
     ;; 
    restart|configtest) 
     $1 
     ;; 
    reload) 
     rh_status_q || exit 7 
     $1 
     ;; 
    force-reload) 
     force_reload 
     ;; 
    status) 
     rh_status 
     ;; 
    condrestart|try-restart) 
     rh_status_q || exit 0 
      ;; 
    *) 
     echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" 
     exit 2 
esac 

:ブート時に自動的にロードするには

sudo service nginx start 

sudo chmod 755 /etc/rc.d/init.d/nginx 

今、あなたがそれを起動することができます

sudo chkconfig nginx on 

最後に、お客様の要件に合わせて/etc/nginx/nginx.confを編集し、sudo service nginx reloadを実行して変更を更新することを忘れないでください。

0

AWS Linux2を使用している場合は、AWSの「Extras Repository」からnginxをインストールする必要があります。利用可能なパッケージの一覧を参照するには、次のような

0 ansible2 disabled [ =2.4.2 ] 
1 emacs disabled [ =25.3 ] 
2 memcached1.5 disabled [ =1.5.1 ] 
3 nginx1.12 disabled [ =1.12.2 ] 
4 postgresql9.6 disabled [ =9.6.6 ] 
5 python3 disabled [ =3.6.2 ] 
6 redis4.0 disabled [ =4.0.5 ] 
7 R3.4 disabled [ =3.4.3 ] 
8 rust1 disabled [ =1.22.1 ] 
9 vim disabled [ =8.0 ] 
10 golang1.9 disabled [ =1.9.2 ] 
11 ruby2.4 disabled [ =2.4.2 ] 
12 nano disabled [ =2.9.1 ] 
13 php7.2 disabled [ =7.2.0 ] 
14 lamp-mariadb10.2-php7.2 disabled [ =10.2.10_7.2.0 ] 

それをインストールするamazon-linux-extras installコマンドを使用して、::

sudo amazon-linux-extras install nginx1.12 

もっと

# View list of packages to install 
amazon-linux-extras list 

あなたは次のようにリストが表示されます詳細はhttps://aws.amazon.com/amazon-linux-2/faqs/です。

関連する問題