Installazione tramite composer
Come letto nei vari articoli e consigliatomi in questa chat. Dalla versione 8 conviene usare composer per l'instazzione di drupal e dei moduli.
Ho fatto una prova in locale su XAMMP ed è andato tutto bene. Volevo fare una prova sullo spazio web ma mi trovo in difficoltà in quanto non ho capito come poterlo fare.
Il provider usa l'interfaccia PLESK e nel pannello di controllo c'è un'icona per composer (la cartella web principale è vuota). Quando clicco su composer mi dice che ci sono degli errori nel file json e devo modifcare il file (che risulta vuoto) o aprire la cartella.
Ho controlalto tramite filezilla ed ho visto che è presente nella cartella principale la cartella .composer. Cosa mi conviene fare cancellare la cartella composer e riprovare?
Ho cercato in rete su come fare l'installazione, tramite composer, sul web ma non trovato nulla
Risposte
Ciao, hai accesso ssh al tuo
Ciao, hai accesso ssh al tuo spazio web? Se sì, allora devi accedere tramite quello e, esattamente come avrai fatto su xampp, dovrai effettuare l'installazione di Drupal e di tutti i moduli di cui avrai bisogno.
Nel caso tu non avessi accesso ssh al tuo spazio, allora io alzo le mani perché da pannello plesk o cpanel non saprei darti una mano, non li ho mai usati.
Stessa situazione. In locale
Stessa situazione. In locale tutto ok, in remoto dall'interfaccia di Plesk il massimo che ho ottenuto è stato di impallare il server e l'ho dovuto riavviare. da linea di comando stessa cosa (connessione ssh con putty), perchè Composer si mangia tutta la memoria e manda in blocco il server.
sto cercando una soluzione, nel frattempo faccio gli aggiornamenti in locale e li sposto in remoto...
Ciao Maurino, personalmente
Ciao Maurino, personalmente non ho mai incontrato questo tipo di problemi, che caratteristiche ha la VM che stai utilizzando e che ti sta dando problemi?
ciao Niubbo75, 1 GB RAM, 1
ciao Niubbo75,
1 GB RAM, 1 vCPU, 40 GB SSD... è una macchina virtuale basata su Ubuntu di Amazon AWS.
normalmente utilizza 1-2% di cpu, in caso di utilizzo di composer la cpu va al 70% e consuma tutta la capacità di burst. ho provato ad aumentare la memoria a 2 GB, senza successo. poi il problema di AWS è che puoi amumentare la memoria ma poi non puoi diminuirla... altrimenti sarebbe facile assegnare 8 gb per mezz'ora e poi riportare a 1 gb...
in locale ricordo che ho dovuto assegnare più memoria perché si bloccava pure lì, però sul PC ho 8 gb, non ho problemi...
La VM è risicata, ma mi
La VM è risicata, ma mi sembra comunque strano che ti si inchiodi così, c'è da dire che io non ho mai lavorato su Ubunzozz (si nota che non la amo come distro?), con Debian non ho problemi ma la VM sulla quale lavoro io è un pelino più performante, 2 vCPU e 4 GB di vRAM con 60 GB di disco, nulla di esagerato, comunque, è una Buster però (Debian 10).
eh, non sono un sistemista,
eh, non sono un sistemista, quello che mi danno uso... per dire, tra ubuntu e debian non so che differenza ci sia... :D a casa ho windows, sul lavoro Cent OS...
a casa (windows) ho risolto così (messo memoria a 2G):
https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors
sul mio sito personale l'uso della memoria è illimitato... -1
non ricordo se avevo già messo 2G o no.
potrei spendendo il doppio portare la macchina a 2G... ora spendo 5$ al mese più un altro dollaro per un backup che potrei anche eliminare...
Grazie per le risposte e
Grazie per le risposte e grazie a te maurino. Ho parlato con il provider e mi ha detto che devo aprire una connessione ssh e con putty effettuare l'installazione. Il problema che mi pongo è se posso fare danni sul server bloccando anche gli altri.
Maurino avevo pensato anch'io di fare installazione con composer localmente e poi spostare sul web.
Una domanda con composer crea una cartella web. Con filezilla vedo che c'è una cartella httpdocs. La copia la devo fare in questa cartella?
Grazie per le risposte e
Grazie per le risposte e grazie a te maurino. Ho parlato con il provider e mi ha detto che devo aprire una connessione ssh e con putty effettuare l'installazione. Il problema che mi pongo è se posso fare danni sul server bloccando anche gli altri.
Maurino avevo pensato anch'io di fare installazione con composer localmente e poi spostare sul web.
Una domanda con composer crea una cartella web. Con filezilla vedo che c'è una cartella httpdocs. La copia la devo fare in questa cartella?
Ciao, se il tuo ISP ha
Ciao, se il tuo ISP ha configurato a modo lo spazio, non dovresti poter fare danni agli altri, diversamente lo spazio è stato configurato male, ma proprio male male! (Dubito che sia stato configurato male, comunque).
Composer colloca di default tutti i file del sito nella cartella web che poi è la root dove punta il tuo dominio quando fai www.quellocheè.it se tu hai httpdocs e dentro quella cartella trovi tutti i file del tuo sito, allora la root è quella, se decidi di aggiornare a manina, dovrai mettere li tutti i file.
esattamente come dice
esattamente come dice Niubbo75.
a me si impalla la mia VPS, ma c'è solo il mio sito su, quindi nessun problema.
di sicuro non mi metto a fare esperimenti sul VPS aziendale... ;)
sarei curioso di sapere se mai qualcuno è riuscito ad usare il composer da plesk.
così per fare una prova mi
così per fare una prova mi sono creato un vps con solo drupal e 2 giga di ram su AWS... fatto upgrade con composer all'installazione in pochi secondi e senza alcun problema....
grazie per le risposte al più
grazie per le risposte al più presto proverò
un ulteriore suggerimento:
un ulteriore suggerimento: senza usare putty o la console dell'hosting come facevo io, da Plesk puoi usare "SSH terminal" dalla dashboard del dominio. hai il vantaggio sia di trovarti già nel ramo giusto delle cartelle che di avere l'utente giusto per i permessi delle cartelle del sito.
ho reinstallato Drupal 9 con tutti i moduli ieri, in maniera da avere tutta l'installazione fatta con Composer e non mista come prima.
Rispetto all'installazione manuale avrai in Httpdocs le cartelle "Vendor" e "Web", quindi la document root sarà httpdocs/web in Hosting Settings.
grazie per i suggerimenti,
grazie per i suggerimenti, proverò a breve
In attesa che il provider mi
In attesa che il provider mi attivi il servizio terminal SSH ho provato a fare la copia del sito da locale a onLine. E' andato tutto bene e funziona ma poi mi sono accorto che se inserisco o modifico un nodo mi ritorna questo errore
Drupal\Component\Plugin\Exception\PluginNotFoundException: The "MenuSettings" plugin does not exist. Valid plugin IDs for Drupal\Core\Validation\ConstraintManager are: Callback, Blank, NotBlank, Email, CommentName, DateTimeFormat, FileUriUnique, FileValidation, LinkAccess, LinkType, LinkExternalProtocols, LinkNotExistingInternal, MenuTreeHierarchy, PathAlias, TaxonomyHierarchy, ProtectedUserField, UserMailUnique, UserName, UserMailRequired, UserNameUnique, Count, UniqueField, Length, Range, Uuid, PrimitiveType, NotNull, Null, AllowedValues, Regex, ComplexData, UniquePathAlias, ValidPath, EntityType, ReferenceAccess, EntityUntranslatableFields, EntityChanged, Bundle, ValidReference, EntityHasField in Drupal\Core\Plugin\DefaultPluginManager->doGetDefinition() (line 53 of core/lib/Drupal/Component/Plugin/Discovery/DiscoveryTrait.php).
Su xampp non mi riotrna questo errore possibile che non abbia copiato qualcosa nel passaggio?
pare manchi il plug in
pare manchi il plug in MenuSettings... però mi pare strano che si sia perso qualcosa caricando il sito online.
che versione di php stai usando in locale e in remoto? prova ad usare la stessa versione e vedi che succede.
Quindi su Plesk non hai attivato SSH terminal di default?
Ne convengo. Su plesk 7.3.27,
Ne convengo. Su plesk 7.3.27, localmente, 7.4.23 da vedere se il provider me l'aggiorna
Ho fatto la richiesta ma mi è stato risposto di usare putty perchè il terminal su plesk ha dei bug
Ho provato ad usare putty ma mi ritorna l'errore che manca symphoni
Strano che ti dia
Strano che ti dia quell'errore, che versione di composer stai utilizzando in locale e quale, invece, hai a disposizione in remoto?
fai COMPOSER DIAGNOSE e vedi
fai COMPOSER DIAGNOSE e vedi che risultati ti da...
a me:
C:\xampp\htdocs\www>composer diagnose
Checking composer.json: WARNING
require.drupal/form_placeholder : exact version constraints (1.x-dev@dev) should be avoided if the package follows semantic versioning
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity to packagist: OK
Checking https connectivity to packagist: OK
Checking github.com rate limit: OK
Checking disk free space: OK
Checking pubkeys:
Checking composer version: You are not running the latest stable version, run `composer self-update` to update (2.1.1 => 2.1.9)
Composer version: 2.1.1
PHP version: 7.3.15
PHP binary path: C:\xampp\php\php.exe
OpenSSL version: OpenSSL 1.1.1d 10 Sep 2019
cURL version: 7.68.0 libz 1.2.11 ssl OpenSSL/1.1.1d
zip: extension present, unzip not available, 7-Zip not available
Niubbo75, in locale la
Niubbo75, in locale la 2.1.8
Sono riuscito ad entrare con putty ed in remoto la versione di composer è vecchia.
Ho provato a lanciare l'aggiornamento ma mi ritorna l'errore
[Composer\Downloader\FilesystemException]
Filesystem exception:
Composer update failed: "/opt/psa/var/modules/composer/composer.phar" could
not be written.
rename(/var/www/vhosts/yourpersonalsoftware.it/.composer/cache/composer-tem
p.phar,/opt/psa/var/modules/composer/composer.phar): Permission denied
Per quel che ho capito non riesce a rinominare il file composer.temp.phar
Ho controllato i permessi ed in scrittura ha quelli del proprietario e quindi dovrebbe funzionare
Che mi consigliate di mettere i permessi di scrittura anche per il gruppo e poi toglierlo?
Maurino grazie per il consiglio in questa maniera mi sono accorto del problema. Una domanda se dal sito di produzione cancello la cartella .composer poi me la dovrebbe ricreare?
Dal pannello plesk ho usato la relativa icona e penso l'abbia installato
Niubbo75, in locale la
Niubbo75, in locale la 2.1.8
Sono riuscito ad entrare con putty ed in remoto la versione di composer è vecchia.
Ho provato a lanciare l'aggiornamento ma mi ritorna l'errore
[Composer\Downloader\FilesystemException]
Filesystem exception:
Composer update failed: "/opt/psa/var/modules/composer/composer.phar" could
not be written.
rename(/var/www/vhosts/yourpersonalsoftware.it/.composer/cache/composer-tem
p.phar,/opt/psa/var/modules/composer/composer.phar): Permission denied
Per quel che ho capito non riesce a rinominare il file composer.temp.phar
Ho controllato i permessi ed in scrittura ha quelli del proprietario e quindi dovrebbe funzionare
Che mi consigliate di mettere i permessi di scrittura anche per il gruppo e poi toglierlo?
Maurino grazie per il consiglio in questa maniera mi sono accorto del problema. Una domanda se dal sito di produzione cancello la cartella .composer poi me la dovrebbe ricreare?
Dal pannello plesk ho usato la relativa icona e penso l'abbia installato
prova "sudo composer
prova "sudo composer self-update"
Provato ma mi ritorna
Provato ma mi ritorna l'errore termine sudo non riconosciuto
Tu con quale provider hai lo spazio web?
Ciao Gaetano, mi sa che qui
Ciao Gaetano, mi sa che qui state parlando di due cose differenti, nel tuo caso e sempre che io non abbia capito male, tu hai uno spazio su un hosting condiviso, quindi il solo fatto che tu abbia accesso ssh è già una bella cosa, non tutti lo mettono a disposizione.
Dall'altra parte, Maurino dovrebbe disporre di un VM dedicata, quindi con accesso riservato solamente a lui, sulla quale ha, di conseguenza, anche privilegi di amministratore, da qui il fatto che il suo utente sia sudoers.
A mio avviso, l'unica cosa che potresti provare a fare è quella di scaricarti la nuova versione di composer all'interno del tuo spazio e usarla da li (dovresti avere delle cartelle opt bin ecc, mettila dentro opt e poi la richiami usando il path completo, quindi ipotizzando che il percorso sia /opt/composer dovresti richiamare il comando con /opt/composer/composer.phar) oppure provare anche ad installarlo solamente per il tuo utente (ma qui non so se hai i privilegi per poterlo fare) seguendo questa procedura.
Tu con quale provider hai lo
Tu con quale provider hai lo spazio web?
Amazon Lightsail... costa pochissimo e paghi per quello che lo usi. ho costruito e distrutto decine di istanze di VPS. ;)
effettivamente Niubbo ha ragione, probabilmente il tuo spazio condiviso ha dei limiti... allora passa ad un VPS nel cloud di Amazon, che se non altro ti diverti a sperimentare. Poi aggioranare e installare Drupal in manciate di secondi non ha prezzo.
Niubbio e maurino, grazie per
Niubbio e maurino, grazie per le delucidazioni. non sono esperto come voi, cerco di capire quel che mi avete detto e vi aggionerò
Niubbio , ho controllato e la
Niubbio , ho controllato e la cartella principale ha la cartella .composer e vendor (probabilmente creata quando ho usato composer da plesk), nonchè la cartella httpdocs (che è la cartella principale) ed un paio di sottodomini.
La situazione ad oggi è cambiata in quanto riesco ad usare dei comandi composer da putty ma non riesco ad installare drupal con composer perchè mi riporta una serie di errori.
La questione è che ho installato drupal con composer in locale ma quando copio la cartella sul sito onLine mi riporta una serie di errori e non capisco il perchè
Ho controllato error_log e questo è il risultato dopo che copiato il sito
Ho fatto un'altra prova, ho
Ho fatto un'altra prova, ho installato drupal localmente tramite composer. solo l'installazione base e null'altro.
Dopo l'installazione ho lanciato questi comandi composer
composer diagnose
composer update --dry-run
composer selfupdate --2
composer require drush/drush
Poi ho copiato il sito.
Ho provato a creare un nodo con la pagina di base ma mi ritorna sempre lo stesso errore. Localmente no. A questo punto penso che il mio provider non abbia php aggiornato o manchi qualcose di symphoni
Voi installate drupal tramite composer onLine?
Se si mi indicate qual'è il vostro provider?
Ho necessità di risolvere il problema e ho perso già 2 settimane e non ho tempo
Ciao Gaetano, prova a fare
Ciao Gaetano, prova a fare un'installazione base di D9 con composer online e da li prova a creare un contenuto, vedi se da errore.
Io installo online e poi riporto il sito sviluppato in locale, c'è da dire che online installo e poi sistemo il file composer.json in modo che contenga tutti i moduli che ho installato localmente (c'è da dire che la struttura che utilizzo in locale come ambiente di sviluppo è la medesima che ho online in produzione), poi sposto i contenuti del sito ed il database, dopo aver allineato le versioni di tutto quello che ho installato (quindi core e moduli aggiuntivi).
Ciao Nubbio il problema è
Ciao Nubbio il problema è proprio questo.
OnLine tramite il pannello di controllo plesk non riesco ad effettuare l'installazione onLine.
Mi era stato consigliato di farla localmente e poi copiarla sul sito di produzione.
Ho seguito il consiglio ed ho fatto l'installazione base senza aggiungere o modificare qualcosa.
Ho copiato sito e dataBase onLine e sembrava funzionare tutto bene sin quando non ho provato a creare una pagina base.
In fase di salvataggio mi riporta un errore.
Sto cercando la soluzione su come gestire composer su plesk.
Ho copiato il file composer.json (non sono tanto informato) e provato l'installazione, ma mi ritorna un errore. Con composer diagnose, ho visto che riporta la versione 7.0 per php.
Ho fatto una ricerca e visto che attraverso il file json posso settare anche la versione di php ma non riconosce il comando.
Faccio altre prove e poi ti posto tutto i file json così ci dai un'occhiata se ti è possibile
Ciao, a questo punto la
Ciao, a questo punto la domanda mi sorge spontanea, che versione di PHP stai utilizzando in produzione?
Perché se nemmeno l'installazione iniziale di Drupal 9 va a buon fine, il problema è altro, non composer.
Preciso che sul sito di
Preciso che sul sito di produzione sto installando drupal in un sottodominio.
Dal pannello leggo che c'è php 7.4
Da putty quando lancio il comando composer diagnose mi riporta php 7.0
Ho letto che posso settare la versione di php direttamente nel file json presente nel percorso web/core/modules/system/tests/fixtures/HtaccesTest (che allegherò in coda), riprovato ma nulla da fare
File json presente in plesk nella cartella web/core/modules/system/tests/fixtures/HtaccesTest
Ciao, da cli all'interno
Ciao, da cli all'interno della cartella dove stai provando ad installare Drupal, lancia il comando php -v e guarda che versione sta girando li, giusto per stare dalla parte della ragione.
puoi forzare composer ad
puoi forzare composer ad usare la versione php "giusta"...
da shell sulla mia vps c'era di default php 8.0 con le estensioni sbagliate, quindi ho forzato ad usare php 7.4
/opt/plesk/php/7.4/bin/php /usr/lib/plesk-9.0/composer.phar require 'drupal/core-recommended:^9.2.7' --update-with-all-dependencies
vedi dove hai installato tu php.
Niubbio provato e mi ritorna
Niubbio provato e mi ritorna ciò
PHP 7.0.33-0ubuntu0.16.04.16 (cli) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with the ionCube PHP Loader + ionCube24 v10.4.5, Copyright (c) 2002-2020, by ionCube Ltd.
with Zend OPcache v7.0.33-0ubuntu0.16.04.16, Copyright (c) 1999-2017, by Zend Technologies
Puto a php 7.0.33
Maurino, ho lanciato il
Maurino,
ho lanciato il comando che mi hai segnalato ma mi ritorna l'errore di seguito indicato
Riuscito a settare la
Riuscito a settare la versione di php 7.4.16 nella cli.
Adesso se scrivo php -v mi esce la versione che mi serve.
Ho provato ad installare drupal con composer e me l'ha installato.
Ho 2 domande da porre:
1) da cli per installare drupal devo dare anche la directory (nel mio caoso un sottodominio), ma dopo l'installazione il sottodominio non è presente in plesk e se provo a richiamare il sottodominio dal browser non me lo da'. C'é un modo per installare drupal da composer, su una directory già presente?
Nel senso in plesk creo il sottodominio e poi con composer l'installo in quella directory
2) La cartella principale è httpdocs, come faccio ad installarlo nella cartella principale (simile alla precedente) ?
nel mio caso il dominio
nel mio caso il dominio puntava a /httpdocs/web
se ti ha installato drupal nella cartella "web" come fa di default devi settare che il domino (o il sottodominio) non punti ad httpdocs ma a httpdocs/web quindi "web" diventa la root del sito.
lo puoi fare in plesk da "hosting settings" cambiando la voce "Document root".
ok grazie, Per un mio
ok grazie,
Per un mio chiarimento, in plesk creo un sottodominio e con putty installo drupal con composer
composer create-project drupal/recommended-project a.dominio.it
Per installare drupal nel dominio lancio questo comando
composer create-project drupal/recommended-project httpdocs e dovrebbe installarmi drupal nella cartella httpdocs
Poi devo fare la modifica che mi hai indicato su plesk per farlo puntare su /web