neděle 28. února 2016

Překlad Openwrt Attitude Adjustment 12.09

Jde o to, že potřebuji přeložit balíček pro staré OpenWrt. Pravděpodobně se Vám nebude dařit, protože scripts/feed update nebude moci najít cestu.

Řešením je nahradit cestu k svn repozitáři v souboru feeds.conf.default na

src-git packages git://git.openwrt.org/12.09/packages.git

Po té už budete postupovat klasicky dle návodu https://wiki.openwrt.org/doc/howto/buildroot.exigence

./scripts/feeds update -a

./scripts/feeds install -a

A následovně
make world

neděle 21. února 2016

Redmine 2.6.6 + svn + plánování aktualizace repozitáře

Někdy se stane, že je třeba vypnout automatickou aktializaci svn repozitářů (v mém případě mě k tomu donutil nedostatek RAM při aktualizaci hodně rozsáhlého repozitáře.

Synchronizace svn a redmine se poté dá spustit povelem
script/rails runner "Repository.fetch_changesets" -e production
v domovském adresáři redmine

sobota 20. února 2016

Chromium přístup z lokální stránky na jiné sítě - Access-Control-Allow-Origin

Ladíte js stránku a snažíte se, aby vyčítala data ze služby někde na netu...a ono to nejde, protože javascript za normálních okolností nesmí posílat požadavky jinam než v rámci své domény.

Řešení:
Pokud jde o web, mělo by do stačit přidat do hlavičky Access-Control-Allow-Origin. Pokud jde o lokální stránku, pomůže --disable-web-security v Chromiu. Není to nejbezpečnější, ale funguje to;)

středa 17. února 2016

Nginx + OxidCommerce + HTTPS

oxid/config.inc.php - zcela nelogicky funguje nasledující nastavení
$this->sShopURL = 'https://www.domain.com'; // eShop base url, required
$this->sSSLShopURL  = 'https://www.domain.com';
$this->sAdminSSLURL = null;
sites-enabled/domain.com - standartní instalace s ssl a přesměrováním
server {
    listen 80;
    server_name domain.com;
    location ^~ /redmine/ {
        rewrite ^/redmine/(.*) http://redmine.domain.com/$1 permanent;
    }
    location / {
        rewrite     ^   https://$server_name$request_uri? permanent;
    }
}

server {
    listen 443 ssl ;
    listen [::]:443 ssl ;

       server_name www.domain.com domain.com;

       set $script_name $fastcgi_script_name;
       set $fcgi_php unix:/var/run/php5-fpm.sock;

       root /var/www/oxid4;

       index index.php index.html;

      if ($request_method ~ ^(TRACE|TRACK)$ ) {
               return 403;
      }

       location = /favicon.ico {
                log_not_found off;
                access_log off;
       }
       location = /robots.txt {
                allow all;
                log_not_found off;
                access_log off;
       }

       location ~ (/\.|EXCEPTION_LOG\.txt|\.log$|\.tpl$|pkg.rev) {
                deny all;
       }

      location ~ /out/pictures/.*(\.jpg|\.gif|\.png)$ {
               try_files $uri /core/utils/getimg.php;
      }

      location ~ ^/(admin|setup)/?$ {
      }

      location ~ /(core|export|modules|out|tmp|views)/ {
      }


       location ~ \.php$ {
           try_files $uri =404;
           fastcgi_split_path_info ^(.+\.php)(/.+)$;
           fastcgi_index index.php;
           include fastcgi_params.oxid;
           fastcgi_pass $fcgi_php;
       }

       location / {
           fastcgi_index index.php;
           set $script_name $fastcgi_script_name;
           if (!-e $request_filename) {
               set $script_name /oxseo.php;
               fastcgi_pass $fcgi_php;
           }
           include fastcgi_params.oxid;
       }


    location ^~ /redmine/ {
        rewrite ^/redmine/(.*) http://redmine.domain.com/$1 permanent;
    }




    ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
    ssl_prefer_server_ciphers On;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
    ssl_session_cache shared:SSL:20m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000";

}

Postfixadmin + Nginx + Debian na subdoméně


/etc/nginx/sites-enabled/postfixadmin.domain.cz
server {
    listen 80;
    listen [::]:80;
    server_name postfixadmin.domain.cz;

    index index.php index.html index.htm;
    root /usr/share/postfixadmin/;

    access_log /var/log/nginx/postfixadmin_access.log;
    error_log /var/log/nginx/postfixadmin_error.log;


    location / {
        try_files $uri $uri/ index.php;
        index index.php;
    }

    location ~* \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;

        set $script_name $fastcgi_script_name;
        set $fcgi_php unix:/var/run/php5-fpm.sock;
        fastcgi_pass $fcgi_php;

        fastcgi_index   index.php;
        fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

}

Dobrou volnou je povolit postfixadmin pouze pro localhost, popř. pro omezený rozsah adres.

/etc/nginx/fastcgi_params

#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;

Redmine 2.6.6 + Nginx + na subdomeně


Nastavení Redmine

redmine/config/enviromment.rb

# Initialize the rails application
:shallow_path => '/redmine' }
RedmineApp::Application.routes.default_scope = { :path => '/', :shallow_path => '/' }
RedmineApp::Application.initialize!
# Tento prázdný řetězec je důležitý!!!
Redmine::Utils::relative_url_root = ''

Nastavení Nginx

/etc/nginx/sites-enabled/redmine
server {
    listen 80;
    listen [::]:80;
    server_name redmine.domain.com;
    root /opt/redmine-2.6.6/public;
    passenger_enabled on;
    client_max_body_size      50m;
    location / {
        root /opt/redmine-2.6.6/public/;
        passenger_enabled on;
        client_max_body_size      50m; # Max attachemnt size
    }
}