Problema ao fazer composer update na VM da DigitalOcean

Aurelio de Oliveira Criador 05/01/2019
Aurelio de Oliveira

Bom dia Carlos,

Ao tentart fazer o composer update estou com esse erro:

 

  Problem 1

    - phpunit/phpunit 7.5.x-dev requires ext-dom * -> the requested PHP extension dom is missing from your system.

    - phpunit/phpunit 7.5.1 requires ext-dom * -> the requested PHP extension dom is missing from your system.

 

Criador Aurelio de Oliveira 05/01/2019
Aurelio de Oliveira

Carlos,

Consegui resolver o problema do update, mas depois de subir minha aplicação, não carrega as imagens do site.
Lembrei que tenho que rodar o comando php artisan storage:link para aquela questão dos links simbólicos mas esta dando o seguindo erro:

 

   ErrorException  : symlink(): No such file or directory

 

  at /var/www/html/f1d/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:252

    248|      */

    249|     public function link($target, $link)

    250|     {

    251|         if (! windows_os()) {

  > 252|             return symlink($target, $link);

    253|         }

    254|

    255|         $mode = $this->isDirectory($target) ? 'J' : 'H';

    256|

 

  Exception trace:

 

  1   symlink("/var/www/html/f1d/storage/app/public", "/var/www/html/f1d/public/storage")

      /var/www/html/f1d/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:252

 

  2   Illuminate\Filesystem\Filesystem::link("/var/www/html/f1d/storage/app/public", "/var/www/html/f1d/public/storage")

      /var/www/html/f1d/vendor/laravel/framework/src/Illuminate/Foundation/Console/StorageLinkCommand.php:35

 

  Please use the argument -v to see more details.

[email protected]:/var/www/html/f1d# artisan

artisan: command not found

 

Manager Carlos Ferreira 05/01/2019
Carlos Ferreira

Salve Aurelio!
Tudo bem?

Esse erro de  ext-dom é uma deficiência no servidor, está faltando algumas extensões:
sudo apt-get update
sudo apt-get install php7.1-xml
sudo apt-get install php-mbstring

Agora sobre o segundo erro, confere primeiramente se já contém o link simbólico em public/storage/ que aponta para storage/app/public/?
ls -la public/

Se tiver, já delete:
rm public/storage

Pode ser algo relacionado a permissão, qual é o usuário e grupo dos arquivos?
ls -la .
Me mostra um print (http://uploaddeimagens.com.br/).

Precisa ser www-data:
chown -R www-data:www-data ./*

Criador Aurelio de Oliveira 06/01/2019
Aurelio de Oliveira

Bom dia Carlos,

O primeiro problema foi resolvido.

Sobre a questão das imagens, verifiquei que já continha o link simbólico, então o deletei como sujerido (rm public/storage

Usuário e grupo de arquivos estão com www-data

Configurações no filesystems.php: 

'default' => env('FILESYSTEM_DRIVER', 'public'),
 
'disks' => [

'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],

'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
agora quanto tento rodar o comando:
[email protected]:/var/www/html/f1d# php artisan storage:link
 
   ErrorException  : symlink(): No such file or directory
 
  at /var/www/html/f1d/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:252
    248|      */
    249|     public function link($target, $link)
    250|     {
    251|         if (! windows_os()) {
  > 252|             return symlink($target, $link);
    253|         }
    254|
    255|         $mode = $this->isDirectory($target) ? 'J' : 'H';
    256|
 
  Exception trace:
 
  1   symlink("/var/www/html/f1d/storage/app/public", "/var/www/html/f1d/public/storage")
      /var/www/html/f1d/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:252
 
  2   Illuminate\Filesystem\Filesystem::link("/var/www/html/f1d/storage/app/public", "/var/www/html/f1d/public/storage")
      /var/www/html/f1d/vendor/laravel/framework/src/Illuminate/Foundation/Console/StorageLinkCommand.php:35
 
  Please use the argument -v to see more details.
    
Manager Carlos Ferreira 07/01/2019
Carlos Ferreira

Suas configurações estão corretas.

O Barry vd. Heuvel recomenda adiciona essa configuração no arquivo composer.json: https://github.com/laravel/ideas/issues/34#issuecomment-208895323
(precisa depois rodar o composer update para rodar o comando).

Você pode criar o link simbólico manualmente também, com o comando: ln -sr storage/app/public public/storage

Se não dê certo as opções acima pode ser algo relacionado com falta de memória no servidor (passei por algo semelhante), e resolvido isso configurando memória swap no servidor.

Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!