Screwed up Nginx with yum update to 1.8.0

February 9, 2016 1.9k views
Apache Nginx PHP

Hello. I did a "yum update" on my DO droplet with Linux. Now I have Nginx 1.8.0, but now my config doesn’t work for some reason. It gives me an error while starting up:

Feb 09 09:52:37 servername systemd[1]: Starting The nginx HTTP and reverse proxy server… 
*Feb 09 09:52:37 servername nginx[27173]: nginx: [alert] version 1.6.3 of is required, but 1.8.0 was found 
*Feb 09 09:52:37 servername nginx[27173]: nginx: configuration file /etc/nginx/nginx.conf test failed 

Any ideas how to fix this? I tried the options mentioned here - - but they don't work. Here's my nginx.conf:

location ~ \.php$ {

    try_files $uri =404;
    fastcgi_index index.php;

    #include fastcgi_params;
    include fastcgi.conf;

    #This is the first line inside fastcgi.conf
    #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

    #fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;


Just FYI:

  1. I tried fastcgi_pass with the unix sock thing, instead of the bit. Both give the same error.

  2. Here's my full fastcgi.conf file:

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  HTTPS              $https if_not_empty;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

3 Answers

It looks like something on your server is expecting Nginx 1.6.3, possibly the perl module. Are you using your distribution's packages? What distribution are you running?

Hi ,
It looks like you have both nginx versions installed.
You could try to keep the only one needed with the following command :

yum replace nginx16 --replace-with=nginx18

Hope this helps

  • Thank you, but when I try that, it shows me:

    Command line error: no such option: --replace-with

    OK, edit: I installed the replace plugin after googling. Now when I issue that command it shows me:

    yum replace nginx16 --replace-with=nginx18
    Loaded plugins: fastestmirror, replace
    Replacing packages takes time, please be patient...
    Error: Package 'nginx16' is not installed.
    • Just FYI:

      > yum list nginx*
      Loaded plugins: fastestmirror, replace
      Loading mirror speeds from cached hostfile
       * base:
       * epel:
       * extras:
       * updates:
       * webtatic:
      Installed Packages
      nginx.x86_64                                                      1:1.6.3-8.el7                                           @epel   
      nginx-filesystem.noarch                                           1:1.6.3-8.el7                                           @epel   
      Available Packages
      nginx16.x86_64                                                    1.6.3-1.w7                                              webtatic
      nginx18.x86_64                                                    1.8.0-1.w7                                              webtatic
      • And the installed ones:

        yum list installed nginx*
        Loaded plugins: fastestmirror, replace
        Loading mirror speeds from cached hostfile
         * base:
         * epel:
         * extras:
         * updates:
         * webtatic:
        Installed Packages
        nginx.x86_64                                                       1:1.6.3-8.el7                                             @epel
        nginx-filesystem.noarch                                            1:1.6.3-8.el7                                             @epel
        • Oh, thank you. I just tried replacing nginx16 in the above suggestion with "nginx", and it worked. THANK YOU!

          Now, the following line doesn't work:

          more_set_headers              'Server: NotDisclosed'; 

          The "moresetheaders" requires the Headers More module: -- how do I install this using a yum-friendly way, instead of tinkering with custom installs? Thank you!

          • Hi !
            Happy to see it worked at the end.
            I am sorry to say that you will need to repackage nginx with module headers to have it working.
            If you want to install nginx a yum-friendly-way, i would recommend you to add the nginx repository to your yum file :

            name=nginx repo

            It looks like they propose pre-built packages, you can have more information here :




  • I now have the opposite problem. My yum update installed Nginx 1.8.1. But everything in Nginx is setup for 1.8.0. So Now Nginx doesn't start!

     systemctl status nginx.service
    ...version 1.8.1 of is required, but 1.8.0 was found

    Any thoughts?

Sorry to tell you this, but if you go for 1.9.5 or newer (I ran 1.9.10) you can use http/2 :-)
I compiled it from source, it's not very hard:

I'm looking forward to the dynamic modules in the 1.9.11 though, maybe we soon have dynamic module for ngx-pagespeed :-)

  • Thank you for this. I'd like to try http2. But couple of questions:

    *Question 1: *
    Even with the nginx repo, will my manually installed Nginx (which is easy, I agree) conflict with some "yum update" in the future?

    *Question 2: *
    What packages should I include? RIght now nginx -V shows me this:

    # nginx -V
    nginx version: nginx/1.8.0
    built by gcc 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) 
    built with OpenSSL 1.0.1e-fips 11 Feb 2013
    TLS SNI support enabled
    configure arguments: 
    --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic' 
    --with-ld-opt='-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E'

    *Question 3: *
    Should I compile with all the above? Of course, replacing the SPDY with http2? However, this begs the question: I will need SSL. So all my domains will become https? Without purchasing a certificate from the likes of InstantSSL or Comodo or something, will I break my websites that are currently on http? (Also http2 support on all browsers isn't there yet -- will those older browsers default to 1.1?)

    Thank you!

Have another answer? Share your knowledge.