Nginx installation guide for Debian Wheezy



  • Hi all,

    I’m currently using Clonezilla, and would like to try out FOG.
    However, I can’t find a installation guide for Nginx.
    My server is currently running on Nginx, therefore, Apache 2 causing conflict for me.

    Thanks in advance.



  • I installed FOG again, and same issue happened.

    1. /opt/fog/.fogsettings is nowhere to be found.

    2. Can’t find the proper file to stop apache2.

    drwxr-xr-x 8 root root 4096 Aug 21 14:10 …
    drwxr-xr-x 2 fog fog 4096 Aug 21 14:10 bin
    -rwxr-xr-x 1 fog fog 27695 Jul 20 2014 changelog.txt
    drwxr-xr-x 3 fog fog 4096 Aug 21 14:10 FOGCrypt
    drwxr-xr-x 4 fog fog 4096 Jul 21 2014 FOG Service
    -rwxr-xr-x 1 fog fog 1419 May 28 2014 installation.txt
    drwxr-xr-x 2 fog fog 4096 Aug 21 14:10 kernel
    drwxr-xr-x 5 fog fog 4096 Jul 21 2014 lib
    -rwxr-xr-x 1 fog fog 35147 Feb 12 2008 license.txt
    drwxr-xr-x 6 fog fog 4096 Jul 21 2014 packages
    drwxr-xr-x 2 fog fog 4096 Aug 21 14:11 rpttmp
    drwxr-xr-x 7 fog fog 4096 Jul 21 2014 src
    drwxr-xr-x 7 fog fog 4096 Aug 21 14:10 utils ```

    1. This is installation error message: ```

    Configuring services.

    • Setting up and starting MySql…OK

    • Backing up user reports…OK

    • Did you leave the mysql password blank during install? (Y/n) n

    • Please enter your mysql password:

    • Please re-enter your mysql password:

    • Setting up and starting Apache Web Server…Failed!
      Script done, file is /var/log/foginstall.log ```


  • Senior Developer

    Just follow the end of my upgrade script (obviously you will need to alter it for Debian). Simply stop and disable Apache, there is no need to uninstall it.



  • @Joe-Schmitt
    Hi,
    I’m not concern about the upgrade process right now.
    Do I follow Wayne’s guide to remove Apache2 after the installation in order for Nginx to work?


  • Senior Developer

    @techworld I also run my dev servers on nginx. Here is my upgrade-fog.sh script for CentOS:

    #!/bin/bash
    echo
    echo ===========================================================
    echo Stopping nginx
    echo ===========================================================
    echo
    
    systemctl stop nginx
    
    echo
    echo ===========================================================
    echo Upgrading FOG
    echo ==========================================================
    echo
    
    cd /opt/fogproject
    git pull
    cd /opt/fogproject/bin
    ./installfog.sh -y
    
    echo
    echo ===========================================================
    echo Reconfiguring Web Server
    echo ===========================================================
    echo
    
    systemctl stop httpd
    systemctl disable httpd
    systemctl start nginx
    
    echo
    

    As you can see I leave apache (httpd) installed, but I just disable the service. As for uploading images, that is done through NFS, and not http(s) (nginx).

    And the nginx configuration Tom posted is exactly what you should be using. We (and some google fu) made it together when porting our servers to nginx and it works flawlessly for us.



  • @Wayne-Workman

    I think I found the php-fpm setting for Nginx:

    upstream php-handler {
        server 127.0.0.1:9000;
        #server unix:/var/run/php5-fpm.sock;
    

    So there is no other way to avoid Apache2 install prior to the installion?
    I don’t want Apache2 mess it up with my Nginx.
    I tried earlier today, and it screw me up.

    Another thing I notice that since we save (upload) images to the server, we need to define the client max size too, right?
    Maybe like this ?

    client_max_body_size 20m;
    client_body_buffer_size 128k;```

  • Moderator

    @techworld said in Nginx installation guide for Debian Wheezy:

    My question is when I follow the instruction, Apache2 is install automatically.
    How do I avoid that?

    After FOG is installed, open /opt/fog/.fogsettings and remove apache2 from the packages list, save and close. It will then - on next update/reinstall - not install apache.

    However, there are other problems too. The fog installer tries to configure and restart apache. You’ll probably need to just comment those lines out.



  • Hi,

    I’d set up a few webserver, if you guys can point in me the direction, I think I can set it up.
    If I successfully set it up, I would post my result here.

    In the mean time, we’re getting somewhere here.
    I don’t have /etc/php-fpm.d/www.conf in my server.
    It has these: /etc/php5/fpm$ ls -la total 84 drwxr-xr-x 3 root root 4096 Jun 29 18:19 . drwxr-xr-x 8 root root 4096 Jun 30 19:05 .. lrwxrwxrwx 1 root root 9 Mar 11 19:23 conf.d -> ../conf.d -rw-r--r-- 1 root root 4555 May 22 2015 php-fpm.conf -rw-r--r-- 1 root root 64378 Jun 16 18:12 php.ini drwxr-xr-x 2 root root 4096 Aug 19 13:35 pool.d

    My question is when I follow the instruction, Apache2 is install automatically.
    How do I avoid that?


  • Moderator

    #wiki worthy


  • Senior Developer

    I don’t know that it’s specific to debian or not, but I do run nginx on my dev box simply because my box isn’t all that powerful and I need faster response for testing purposes.

    My methods required a bit of configuration first.

    My example layout:

    Install nginx. This can be found anywhere, but most likely you can just run sudo apt-get install nginx

    Ensure you have php-fpm module installed. sudo apt-get install php5-fpm

    Configure FPM so nginx can access it: You will need to find the www.conf file for fpm.

    For me it’s found under: /etc/php-fpm.d/www.conf I don’t know what it relates to in debian.

    In this www.conf file look for the listen = line. It will likely be set to a socket, but I prefer to use tcp on port 9000. My config for this line reads: listen = 127.0.0.1:9000

    Save the file and start php-fpm service. (sudo service php5-fpm restart).

    Next comes nginx config. My config location is at /etc/nginx/conf.d

    In this folder I created a file called fog.conf.

    Contents of this file are:

    server {
        #Normal web port
        listen 80;
        #SSL Web port
        listen 443 ssl;
        #Where to get the cert -- I have secure setup on my side
        ssl_certificate /path/to/ssl/file.crt;
        #Where to get the key
        ssl_certificate_key /path/to/ssl/file.key;
        #This is important will post copy after this
        include conf.d/*.loc;
        server_name somenameifneeded.com;
        #This sets the web root path for me I don't need /fog trailing.
        root /path/to/web/fog;
        #This enables auto loading of index.php if requested to the root file instead of index.php
        index index.php index.html index.htm;
        #Self explanatory
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        #Turn on my ciphers
        ssl_prefer_server_ciphers on;
        #How to diffie helman information
        ssl_dhparam /path/to/ssl/dhparams.pem;
        #My cipher list (pretty strong I think)
        ssl_cipher 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
        #SSL Session times out in one day
        ssl_session_timeout 1d;
        #SSL Cache getter.
        ssl_session_cache shared:SSL:50m;
        #More header to ensure security
        add_header Strict-Transport-Security max-age=15768000;
    }
    

    The *.loc from earlier:
    You might have other .locs so adjust as needed. For me I only have a file called php.loc
    This is the important bit as it is how it handles php.
    It contains:

    location ~ \.php$ {
        # Zero-day exploit defense.
        try_files $url =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        include fastcgi_params;
        fastcgi_index index.php
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass 127.0.0.1:9000;
    }
    

    That’s about it I think. Of course you will need to find your stuff. But this should help you along the way.

    Also, please restart the nginx service so all these things can take affect.

    When this is running, errors are not written to /var/log/httpd or /var/log/apache2. Some errors will be in /var/log/nginx but most relevant bits is found in /var/log/php-fpm/www-error.log

    sudo service nginx restart


  • Moderator

    I’m told that FOG can run on Nginx but takes some doing to get it to work. I wouldn’t know what those doings are.

    Can you not create a VM on this server and install FOG with it’s standard installer and use Apache, or simply provision another server?


Log in to reply
 

377
Online

38975
Users

10712
Topics

101675
Posts

Looks like your connection to FOG Project was lost, please wait while we try to reconnect.