/ Tutorials

Nginx kompilen auf Debian/Ubuntu

Hier mal ein kleinen Tutorial wie man Nginx auf einem Debian System kompiled. Da in den Repositories ja nicht immer die aktuellstes Version enthalten ist.

Als erstes, es gibt eine repo von Nginx selber in der immer die neuste Version bezogen werden kann. Wer sich also selber nicht den Aufwand machen will, kann dies in die Sourcelist packen und von dort installieren. Die Anleitung dazu konnt ihr hier finden.

Vorbereitungen

Als erstes laden wir die neuste Version herunter. Diese könnt ihr hier herunterladen. Ladet das tar.gz Archiv herunter und entpackt es. Ich empfehle die Stable Version für Produktivsysteme.

Um die Optionen zu erfahren mit der das Paket im Debian repo erstellt wurde, installieren wir dies erst einmal.

 apt-get install nginx

sobald dies erfolgt ist, schauen wir uns die Optionen an. Um dies zu erledigen geben wir folgendes ein.

nginx -V

Beachtet das große V. Wenn dies erfolgt sollte euch folgendes angezeigt werden:

nginx version: nginx/1.4.6 (Ubuntu)
built by gcc 4.8.4 (Ubuntu/Linaro 4.8.4-2ubuntu1~14.04) 
TLS SNI support enabled
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 --with-mail --with-mail_ssl_module

Wie ihr seht ist die Version auf dem Ubuntu schon etwas in die Jahre gekommen :-)

Eigene Openssl Version (optional)

Wenn ihr eure eigene Openssl version benutzen wollt und nicht die, die mit der Distri geliefert wird, dann müsst ihr folgendes machen.

Als erstes ladet ihr euch die aktuelle Openssl Version herunter.

Entpackt diese in ein Verzeichnis eurer wahl und wechselt in diese Verzeichnis.
Dort gebt ihr folgende ein:

 ./config
  make depend
  make -j2

Wie immer die 2 durch die Anzahl eurer Prozessorkerne ersetzen.
Ihr brauch Openssl nicht zu installieren. Ihr müsst nginx nur noch den Pfad angeben wo er es finden kann. Dazu ergänzt ihr bei der configure von nginx folgenden Parameter:

 --with-openssl=/Pfad/zum/Verzeichnis

Erstellen

Nun wechseln wir in das entpackte Verzeichnis. Dort geben wir folgendes ein:

 ./configure

Hinter den Befehl geben wir das ein was beim obrigen komando als ergebnis geliefert wurde, und zwar alles nach configure arguments:

Wenn alles erfolgreich durchgelaufen ist, erstellen wir den Server mit:

 make -j2

Die Zahl hinter dem J ist die Anzahl der Prozessorkernen die zum Erstellen benutzt werden.

Wenn auch dieser Befehl erfolgreich durchgelaufen ist, erstellen wir ein Paket um den Nginx zu installieren. Wir benutzen nicht "make install". Ein Paket für den Debian/Ubuntu Paketmanager ist einfacher zu verwalten und wieder zu entfernen.
Dies erstellen wir mit:

 checkinstall

Wenn dies geschehen ist sollte Nginx installiert sein mit den selben Optionen wie das original Paket. Der Server kann nun konfiguriert werden. Um eine neue Version zu erstellen folgt dieser Anleitung mit der neu heruntergeladen Version. Das alte Paket wird dann durch das neu erstellte ersetzt.

Und nun viel Spaß am Gerät :-)

Nginx kompilen auf Debian/Ubuntu
Share this