installare magento 2

Installare Magento 2

cd public_html
wget https://getcomposer.org/composer.phar

Per ottenere l’username e la password richieste in fase di installazione è necessario essere registrati sul marketplace di Magento.

php composer.phar global config http-basic.repo.magento.com <public_key> <private_key>

Eventualmente puoi utilizzare le seguenti chiavi:

Public Key: c7af1bfc9352e9c986637eec85ed53af
Private Key: 17e1b72ea5f0b23e9dbfb1f68dc12b53
php composer.phar create-project --repository=https://repo.magento.com/ magento/project-community-edition:2.3 . 
php composer.phar require mageplaza/magento-2-italian-language-pack:dev-master

Installazione da linea di comando:

php bin/magento setup:install \
–db-user=dbuser \
–db-password=dbpassword \
–db-name=magento \
–admin-user=admin \
–admin-password="password" \
–admin-firstname=Nome \
–admin-lastname=Cognome \
–admin-email=mail@domani.tld
php bin/magento setup:static-content:deploy it_IT
php bin/magento indexer:reindex
php bin/magento cache:clean
php bin/magento cache:flush
cache-service-worker-js

Cache con service-worker.js

file sw.js

var cacheName = 'cache-v1';

self.addEventListener('install', event => {
  event.waitUntil(
    caches.open(cacheName)
      .then(cache => cache.addAll([
          '/',
          '/wp-content/themes/*/style.css',
          '/favicon.ico'
      ]))
  );
});

self.addEventListener('message', function (event) {
  if (event.data.action === 'skipWaiting') {
    self.skipWaiting();
  }
});

self.addEventListener('fetch', function (event) {
  event.respondWith(
    caches.match(event.request)
      .then(function (response) {
        if (response) {
          return response;
        }
        return fetch(event.request);
      })
  );
});

file functions.php del tema

function add_sw_header() { ?>
<script type='text/javascript'>
if ('serviceWorker' in navigator) {
  window.addEventListener('load', function() {
    navigator.serviceWorker.register('/sw.js').then(function(registration) {
      // Registration was successful
      console.log('ServiceWorker registration successful with scope: ', registration.scope);
    }, function(err) {
      // registration failed :(
      console.log('ServiceWorker registration failed: ', err);
    });
  });
}
</script>
<?php }
add_action( 'wp_head', 'add_sw_header' );
Stress test server Vegeta

Stress test del tuo server con Vegeta

Lo stress test consente di verificare il comportamento di un’applicazione in condizioni reali simulando le richieste simultanee dell’utente. Questo può aiutare a determinare il comportamento di un’applicazione quando più utenti accedono ad essa contemporaneamente.

Installa Go e scarica Vegeta:

apk add go
wget https://github.com/tsenart/vegeta/releases/download/v12.7.0/vegeta-12.7.0-linux-amd64.tar.gz
tar xvzf vegeta-12.7.0-linux-amd64.tar.gz
cp vegeta /usr/local/bin/vegeta

Esegui il test:

echo GET https://www.google.it/ | vegeta attack -duration=5s -rate=5 -insecure | tee results.bin | vegeta report

Il comando sopra restituirà un rapporto come il seguente:

Requests      [total, rate]            6000, 50.01
Duration      [total, attack, wait]    2m0.072491358s, 1m59.980003112s, 92.488246ms
Latencies     [mean, 50, 95, 99, max]  76.235976ms, 72.996349ms, 109.192641ms, 133.960662ms, 187.907358ms
Bytes In      [total, mean]            65862000, 10977.00
Bytes Out     [total, mean]            0, 0.00
Success       [ratio]                  100.00%
Status Codes  [code:count]             200:6000
Error Set:
  • Requests mostra il numero totale di richieste inviate durante il test e la frequenza delle richieste
  • Duration mostra la durata totale del test, il periodo di attacco che simula il carico sull’applicazione e il tempo di attesa
  • Latencies mostra la latenza media, il 50 °, il 95 ° e il 99 ° percentile, rispettivamente, delle latenze di tutte le richieste in un attacco e la latenza massima riconosciuta.
  • Bytes In e Bytes Out mostra:
    • Il totalnumero di byte inviati (in uscita) o ricevuti (in) con gli organismi di richiesta o risposta.
    • Il meannumero di byte inviati (in uscita) o ricevuti (in) con gli organismi di richiesta o risposta.
  • Success mostra i percentili delle richieste riuscite inviate all’applicazione
  • Status Codes fornisce un contatore dei codici di risposta HTTP ricevuti e della loro occorrenza. Un codice di stato indica che non è stato possibile inviare una richiesta.

WordPress con HTTPS e l'errore Mixed-Content

WordPress con HTTPS e l’errore Mixed-Content

L’ errore Mixed-Content si riscontra comunemente quando si verifica un problema con la configurazione HTTPS del sito web in WordPress.

Ad esempio, quando il tuo sito in WordPress è configurato con HTTPS ma le immagini, i fogli di stile ( CSS ), i file javascript ( JS ) e altri collegamenti multimediali vengono caricati con il protocollo HTTP, il browser lo vede come attività sospetta e non sicura pertanto genera un avviso di contenuto misto per ricordare al visitatore che alcuni collegamenti sul sito potrebbero essere non sicuri .

HTTPS

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
</IfModule>

CSP

<ifModule mod_headers.c>
    Header always set Content-Security-Policy "upgrade-insecure-requests;"
</IfModule>

.htaccess

<IfModule mod_rewrite.c>
# BEGIN https
    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
# END https
# BEGIN WordPress
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
# END WordPress
</IfModule>

<ifModule mod_headers.c>
# BEGIN fix Mixed-Content
    Header always set Content-Security-Policy "upgrade-insecure-requests;"
# END fix Mixed-Content 
</IfModule>
1 2