0

By mistake I deleted the default sever configuration in /etc/nginx/sites-enabled/default. Now the sever will not start.

Can someone please tell me what it is so fix it?

  • If you have not made other changes after installing you could reinstall the package. – Steve Robillard Jan 19 '16 at 1:34
  • i did make some changes, but nothing too major. Is there a command to reinstall the package? – DavidK Jan 19 '16 at 2:27
  • How is this question (as currently described) related to Raspberry Pi rather than specific to nginx? – Chetan Bhargava Feb 25 '16 at 6:15
1

The file you deleted was a link to the file in /etc/nginx/sites-available/default if you happened to have deleted the actual file that's what the below is for, incase someone else needs it in the future. You need to just recreate the link from the /etc/nginx/sites-enabled folder to the /etc/nginx/sites-available folder.

I believe you can use this to link the original /etc/nginx/sites-available:

sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default

If you happened to have deleted the file /etc/nginx/sites-available/default you can recreate it with the following:

##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# http://wiki.nginx.org/Pitfalls
# http://wiki.nginx.org/QuickStart
# http://wiki.nginx.org/Configuration
#
# Generally, you will want to move this file somewhere, and start with a clean
# file but keep this around for reference. Or just disable in sites-enabled.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##      
# Default server configuration
#
server {
    listen 80 default_server;
    listen [::]:80 default_server;

# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;

root /var/www/html;

# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;

server_name _;

location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to displaying a 404.
    try_files $uri $uri/ =404;
}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
#   include snippets/fastcgi-php.conf;
#
#   # With php5-cgi alone:
#   fastcgi_pass 127.0.0.1:9000;
#   # With php5-fpm:
#   fastcgi_pass unix:/var/run/php5-fpm.sock;
#}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
#   deny all;
#}
}


# Virtual Host configuration for example.com
#
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
#
#server {
#   listen 80;
#   listen [::]:80;
#
#   server_name example.com;
#
#   root /var/www/example.com;
#   index index.html;
#
#   location / {
#       try_files $uri $uri/ =404;
#   }
#}

That is the original file in version Nginx 1.6.2 in the /etc/nginx/sites-available/ folder named default with no file extension. You will have to use:

sudo nano /etc/nginx/sites-available/default 

to write to this directory and recreate the file.

1

The universal way to restore the default configuration is to run

sudo apt-get --reinstall -o Dpkg::Options::=--force-confask install package

This command will reinstall the package, prompting to replace any configuration files you may have modified or deleted.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.