Upgrading and hybridizing a broken SharePoint 2013 installation

I’m currently working on a roadmap to update our botched SP 2013 installation to SP 2019 Hybrid.

The installation contains a large number of non-critical SharePoint solutions as well as a number of critical 2013 and 2010 workflows that we are mostly not able to edit or recreate because my predecessor did not demand the source code from the implementation company and our 2010 workflows are not editable with SharePoint Designer because they were deployed as solutions.

I’m unsure about the logical first step for this project.
Would it be better to first upgrade to SP 2019 (and probably break most of the workflows because of hardcoded version dependencies, etc.) or implement hybrid first, move the critical sites to the cloud, recreate workflows in MS Flows and upgrade after that?

hi, I have installed Version 2.3.5-p1 Installation is incomplete

I have installed Version 2.3.5-p1 community edition

now I am getting the following error

Installation is incomplete.
Check the console log for errors before trying again.

magento2.3 – Installation Problem Magento 2.3.5p1 on Centos 7

I have been trying to install Magento on Centos 7 with Nginx and Maria Db for the past 2-3 days now but each time I got errors. I have tried several ways and changed Nginx configuration file and tried many possible solutions available on stackoverflow and Magento docs.

I was only able to install it correctly once, but that was giving me server level error i.e. php-fpm security.limit_extensions. Therefore, I made the necessary changes to Nginx and I am not getting this error anymore. However, now my installation has 404 error on all the CSS and other files. As shown in the image below.

Store Home Page:

enter image description here

Store Admin Panel
enter image description here

Nginx logs are full of errors like:

> 2020/07/05 08:23:45 (error) 8864#8864: *94 open()
> "/var/www/user/pub/static/version1593936946/adminhtml/Magento/backend/en_US/css/styles.css"
> failed (2: No such file or directory), client: x.x.x.x, server:
> www.lavestir.com, request: "GET
> /pub/static/version1593936946/adminhtml/Magento/backend/en_US/css/styles.css
> HTTP/1.1", host: "www.user.com", referrer:
> "https://www.user.com/index.php/admin_h7r4ak/admin/index/index/key/57fe0e9d24ad111c0afbf63b34a7fd456106047e74662ae8a/"

I have tried to give magento directory permissions with both, `files and & dir as 777′ and also as mentioned in Magento docs i.e.

find var generated vendor pub/static pub/media app/etc -type f -exec
chmod g+w {} + find var generated vendor pub/static pub/media app/etc
-type d -exec chmod g+ws {} +

But this does not help. I have tried to install with both users i.e. nginx:nginx and user that i added to nginx group user:nginx. The result is same, as shown in the above images.

My Nginx.conf file:

    server {
    listen   80;
    server_name  example.com;
    root /var/www/example;
    return   301 https://www.example.com$request_uri; 
    }
    server {
    listen   80;
    server_name  www.example.com;
    root /var/www/example;
    return   301 https://www.example.com$request_uri; 
    } 
    server {
    listen   443 ssl http2;
    server_name example.com;
    keepalive_timeout    70;
    root   /var/www/example;
    return   301 https://www.example.com$request_uri;

    gzip    on;
    ssl_certificate  /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key  /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
    ssl_protocols   TLSv1.2;
    ssl_ciphers     EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4:!3DES;
    ssl_dhparam     /etc/nginx/conf.d/dhparam.pem;
    ssl_prefer_server_ciphers   on;
    ssl_session_tickets     off;
    ssl_session_cache       shared:SSL:10m; 
    }

    server {
    listen   443 ssl http2;
    server_name www.example.com;
    keepalive_timeout    70;

    gzip    on;
    #       modsecurity on;
    #       modsecurity_rules_file /etc/nginx/modsec/main.conf;

    ssl_certificate  /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key  /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
    ssl_protocols   TLSv1.2;
    ssl_ciphers     EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4:!3DES;
    ssl_dhparam     /etc/nginx/conf.d/dhparam.pem;
    ssl_prefer_server_ciphers   on;
    ssl_session_tickets     off;
    ssl_session_cache       shared:SSL:10m;

    add_header   X-Frame-Options "DENY";
    add_header   X-Content-Type-Options nosniff;

    access_log  /var/log/nginx/example.access.log;
    error_log   /var/log/nginx/example.error.log;


    set $MAGE_ROOT /var/www/example;      root $MAGE_ROOT/pub;
          charset UTF-8;      autoindex off;
  
    location / {
            root   /var/www/example;
            #try_files $uri $uri/ = /404.html;
            if ($request_uri ~ ^/(.*).html$) {  return 302 /$1;  }
            try_files $uri $uri/ $uri.html $uri.php?$args;
            #try_files $uri $uri/ /index.php$is_args$args;
            index  index.php index.html;
            add_header   Strict-Transport-Security "max-age=63072000; includeSubdomains" always;
    }

    error_page 404 403 = /errors/404.php;
    # redirect server error pages to the static page /50x.html
    #
    error_page  500 502 503 504  = /errors/50x.php;

  # PHP entry point for update application        
  location ~* ^/update($|/) {
      root $MAGE_ROOT;
      index  index.php;
      location ~ ^/update/index.php {
          fastcgi_split_path_info  ^(/update/index.php)(/.+)$;
          fastcgi_pass   php-fpm;
          fastcgi_index  index.php;
          fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
          fastcgi_param  PATH_INFO        $fastcgi_path_info;
          include        fastcgi_params;
      }

      # Deny everything but index.php
      location ~ ^/update/(?!pub/). {
          deny all;
      }

      location ~ ^/update/pub/ {
          add_header X-Frame-Options "SAMEORIGIN";
      }       }


  location /pub/ {
  location ~ ^/pub/media/(downloadable|customer|import|custom_options|theme_customization/.*.xml)
  {
          deny all;
      }
      alias $MAGE_ROOT/pub/;
      add_header X-Frame-Options "SAMEORIGIN";        }

  location /static/ {
      # Uncomment the following line in production mode
      # expires max;

      # Remove signature of the static files that is used to overcome the browser cache
      location ~ ^/static/version {
          rewrite ^/static/(versiond*/)?(.*)$ /static/$2 last;
      }

      location ~* .(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2|html|json)$
      {
          add_header Cache-Control "public";
          add_header X-Frame-Options "SAMEORIGIN";
          expires +1y;

          if (!-f $request_filename) {
              rewrite ^/static/(versiond*/)?(.*)$ /static.php?resource=$2 last;
          }
      }

      location ~* .(zip|gz|gzip|bz2|csv|xml)$ {
          add_header Cache-Control "no-store";
          add_header X-Frame-Options "SAMEORIGIN";
          expires    off;

          if (!-f $request_filename) {
                  rewrite ^/static/(versiond*/)?(.*)$ /static.php?resource=$2 last;
          }
      }
          if (!-f $request_filename) {
          rewrite ^/static/(versiond*/)?(.*)$ /static.php?resource=$2 last;
      }
      add_header X-Frame-Options "SAMEORIGIN";        }

  location /media/ {
      try_files $uri $uri/ $uri.html $uri.php?$args;

      location ~ ^/media/theme_customization/.*.xml {
          deny all;
      }

      location ~* .(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ {
          add_header Cache-Control "public";
          add_header X-Frame-Options "SAMEORIGIN";
          expires +1y;
          try_files $uri $uri/ $uri.html $uri.php?$args;
      }
      location ~* .(zip|gz|gzip|bz2|csv|xml)$ {
          add_header Cache-Control "no-store";
          add_header X-Frame-Options "SAMEORIGIN";
          expires    off;
          try_files $uri $uri/ $uri.html $uri.php?$args;
      }
      add_header X-Frame-Options "SAMEORIGIN";        }

  location /media/customer/ { deny all; }

  location /media/downloadable/ { deny all; }

  location /media/import/ { deny all; }

  location /media/custom_options/ { deny all; }

  location /errors/ {
      location ~* .xml$ { deny all; }        }

  # Deny access to sensitive files        
  location /.user.ini { deny all; }

  ######################################################################
  ######################################################################

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~* .php$ {
            root           /var/www/example;
            fastcgi_pass php-fpm;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            if ($request_uri ~ ^/((^?)*).php($|?)) {  return 302 /$1?$args;  }
            try_files $uri = 404;
            fastcgi_split_path_info  ^(.+.php)(/.+)$;
            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_intercept_errors  on;
            
            fastcgi_param  PHP_FLAG  "session.auto_start=off n suhosin.session.cryptua=off";
            fastcgi_connect_timeout  600s;
            fastcgi_read_timeout  600s;
            fastcgi_buffers 1024 4k;
            include  fastcgi_params;
    }


  gzip_disable "msie6";       
  gzip_comp_level 6;      
  gzip_min_length 1100;
  gzip_buffers 16 8k;
  gzip_proxied any;
  gzip_types
      text/plain
      text/css
      text/js
      text/xml
      text/javascript
      application/javascript
      application/x-javascript
      application/json
      application/xml
      application/xml+rss
      image/svg+xml;      gzip_vary on;

  # Banned locations (only reached if the earlier PHP entry point regexes don't match)
  location ~* (.php$|.phtml$|.htaccess$|.git) {
      deny all;       }

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

I have set memory_limit to 3G and execution timeout to 18000. What am I missing here?

magento2.3 – Magento installation stuck at 51%

Step-1
Open the file and change replace validateURLScheme Method

vendormagentoframeworkImageAdapterGd2.php

private function validateURLScheme(string $filename) : bool
    {
      $allowed_schemes = ('ftp', 'ftps', 'http', 'https');
      $url = parse_url($filename);
      if ($url && isset($url('scheme')) && !in_array($url('scheme'), $allowed_schemes) && !file_exists($filename)) {
          return false;
      }
      return true;
    }

when you replace that method and retry the installation.

Step -2

if you face admin going to black than please chnage method isPathInDirectories in file
vendormagentoframeworkViewElementTemplateFileValidator.php

protected function isPathInDirectories($path, $directories)
    {
        $realPath = str_replace('\', "https://magento.stackexchange.com/", $this->fileDriver->getRealPath($path));
        if (!is_array($directories)) {
            $directories = (array)$directories;
        }
        foreach ($directories as $directory) {
            if (0 === strpos($realPath, $directory)) {
                return true;
            }
        }
        return false;
    }

I hope this is helpful to you!!

Are Web hosts allowed to charge for Lets Encrypt installation?


Hey Everyone.

Feels like a while since I started a conversation. In a Facebook group page, a person was asking about moving their LetEncrypt SSL to a new host, and indirectly mentioned that it was paid for. We kindly told them that the new host can have the SSL installed once the IP points to the new host, but the real concern of the discussion was why was Hostinger charging for LE installations, and is it allowed? A quick search and a LE Forum support answer was a bit of a grey area, saying that even though they really push for it to be free and available for everyone, if a host should decide to charge for it, it’s out of their hands.

I posted this link to let them know this has been questioned before.

Another search and this came up about TSO…although reading through I can see why it played out this way.

https://www.reddit.com/r/webhosting/…_lets_encrypt/

I’ve never used the services of either hosts, nor had clients that used their service, so this post is an inquiry and conversation.

installation – Is there a way to optimize the process of uninstalling and installing SSMS?

in terms of patching sql server 2016 to the latest cumulative patches, I found out that stopping the services helps avoiding lots of inconveniences, specially if there is log shipping and replication involved:

enter image description here

However,

when upgrading to the newest SSMS, stopping the services does not seem to make the uninstall of the old version go quicker, it is indeed a very slow process.

enter image description here

same slow is the installation.

enter image description here

even having the relevant services stopped for this operation:

enter image description here

Plus a reboot at the end of the process.

Is there anything that can be done, in order to automate or optimise the process of installing the new SSMS (currently 18.5.1)?

ubuntu – GNU GO installation

I’m trying to install GNU GO in my ubuntu OS, but it is not working…

https://www.gnu.org/software/gnugo/download.html

I’ve downloaded the tar.gz source code, then:

  1. unzipped using the gzip followed by the tar command
  2. configured using ./configure
  3. tried to install using the command make, but installation is not working..warning: the use of defined may not be portable…

can somebody help me?

many thanks,

Fabiano

Using Ubuntu 18.04: On VestaCP installation, how to get result (https://subdomain.domain.tld:8083) instead of (https://123.312.321.23:8083)

I’m trying to install VestaCP on Ubuntu 18.04 but keep getting the following result after successful installation:

{https://123.231.312.23:8083} instead of:

{https://subdomain.domain.tld:8083}

What do I have to do get this result: {https://subdomain.domain.tld:8083}???

I set hostname to server1 $ sudo hostnamectl set-hostname server1

then edit host file: $ sudo nano /etc/hosts

IP_address subdomain.domain.tld subdomain

After all is done,I get hostname and FQDN as shown below, which is as it should be:

$ hostname server1 $ hostname -f server1.domain.tld

But then, the result after successful installation? : {https://123.231.312.23:8083}

What am I doing wrong pls?

magento2 – Magento 2.4 Blank page for store or admin pages after installation

this is my first time setting up a Magento2 server, I’ve followed the guide from the official website.

I am using PHP 7.4, mysql, apache, all on the same host.

I pulled the repo to /var/www/html where it puts itself into /var/www/html/magento2

I then run “composer install” within /var/www/html/magento2, which does its thing without error.

Then I run the magento install using bin/magento, which does its thing without error once again.

Since I just want to test for now, I’ve set the base url as 127.0.0.1/magento2.

According to every guide I’ve found, after that, I should only have to go to 127.0.0.1/magento2 and see the store, but I get a blank page instead. The default apache page on 127.0.0.1 works just fine, tested both locally and remotely with another computer on the lan, and on both 127.0.0.1/magento2 returns a blank page.

The PHP memory is set to 2G, I’ve done every little recommendation from the official guide. Since this was for a test run, I am running the webserver as root, so it shouldn’t be getting file permission issues (it passes the file permission check on the install).

Any help would be greatly appreciated, thank you for your time.

Edit: So the webserver installation seems to be fine, if I modify the index.php to do an echo test, that works fine, that means the issues seems to be within the running of the application within the index.php and further down the line but I am not getting any errors out of it. That means it doesn’t trigger the try/catch (which would output something) and then crashes later on.

Using Ubuntu 18.04: On VestaCP installation, how to get result (https://subdomain.domain.tld:8083) instead of (https://123.312.321.23:8083)

I’m trying to install VestaCP on Ubuntu 18.04 but keep getting the following result after successful installation:

{https://123.231.312.23:8083} instead of:

{https://subdomain.domain.tld:8083}

What do I have to do get this result: {https://subdomain.domain.tld:8083}???

I set hostname to server1
$ sudo hostnamectl set-hostname server1

then edit host file:
$ sudo nano /etc/hosts

IP_address subdomain.domain.tld subdomain

After all is done,I get hostname and FQDN as shown below, which is as it should be:

$ hostname
server1
$ hostname -f
server1.domain.tld

But then, the result after successful installation? :
{https://123.231.312.23:8083}

What am I doing wrong pls?