Instalar laravel 5 en Ubuntu 16.04

21

¿Alguien instaló laravel 5 en Ubuntu 16.04? Acabo de cambiar a Ubuntu 16.04 y estoy tratando de instalar el marco de trabajo de Laravel 5 usando Composer. Pero cada vez que intento crear un proyecto me da este error

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - laravel/laravel v5.2.0 requires laravel/framework 5.2.* -> satisfiable by laravel/framework[v5.2.0, v5.2.1, v5.2.10, v5.2.11, v5.2.12, v5.2.13, v5.2.14, v5.2.15, v5.2.16, v5.2.17, v5.2.18, v5.2.19, v5.2.2, v5.2.20, v5.2.21, v5.2.22, v5.2.23, v5.2.24, v5.2.25, v5.2.26, v5.2.27, v5.2.28, v5.2.29, v5.2.3, v5.2.30, v5.2.31, v5.2.4, v5.2.5, v5.2.6, v5.2.7, v5.2.8, v5.2.9].
    - laravel/laravel v5.2.15 requires laravel/framework 5.2.* -> satisfiable by laravel/framework[v5.2.0, v5.2.1, v5.2.10, v5.2.11, v5.2.12, v5.2.13, v5.2.14, v5.2.15, v5.2.16, v5.2.17, v5.2.18, v5.2.19, v5.2.2, v5.2.20, v5.2.21, v5.2.22, v5.2.23, v5.2.24, v5.2.25, v5.2.26, v5.2.27, v5.2.28, v5.2.29, v5.2.3, v5.2.30, v5.2.31, v5.2.4, v5.2.5, v5.2.6, v5.2.7, v5.2.8, v5.2.9].
    - laravel/laravel v5.2.23 requires laravel/framework 5.2.* -> satisfiable by laravel/framework[v5.2.0, v5.2.1, v5.2.10, v5.2.11, v5.2.12, v5.2.13, v5.2.14, v5.2.15, v5.2.16, v5.2.17, v5.2.18, v5.2.19, v5.2.2, v5.2.20, v5.2.21, v5.2.22, v5.2.23, v5.2.24, v5.2.25, v5.2.26, v5.2.27, v5.2.28, v5.2.29, v5.2.3, v5.2.30, v5.2.31, v5.2.4, v5.2.5, v5.2.6, v5.2.7, v5.2.8, v5.2.9].
    - laravel/laravel v5.2.24 requires laravel/framework 5.2.* -> satisfiable by laravel/framework[v5.2.0, v5.2.1, v5.2.10, v5.2.11, v5.2.12, v5.2.13, v5.2.14, v5.2.15, v5.2.16, v5.2.17, v5.2.18, v5.2.19, v5.2.2, v5.2.20, v5.2.21, v5.2.22, v5.2.23, v5.2.24, v5.2.25, v5.2.26, v5.2.27, v5.2.28, v5.2.29, v5.2.3, v5.2.30, v5.2.31, v5.2.4, v5.2.5, v5.2.6, v5.2.7, v5.2.8, v5.2.9].
    - laravel/laravel v5.2.27 requires laravel/framework 5.2.* -> satisfiable by laravel/framework[v5.2.0, v5.2.1, v5.2.10, v5.2.11, v5.2.12, v5.2.13, v5.2.14, v5.2.15, v5.2.16, v5.2.17, v5.2.18, v5.2.19, v5.2.2, v5.2.20, v5.2.21, v5.2.22, v5.2.23, v5.2.24, v5.2.25, v5.2.26, v5.2.27, v5.2.28, v5.2.29, v5.2.3, v5.2.30, v5.2.31, v5.2.4, v5.2.5, v5.2.6, v5.2.7, v5.2.8, v5.2.9].
    - laravel/laravel v5.2.29 requires laravel/framework 5.2.* -> satisfiable by laravel/framework[v5.2.0, v5.2.1, v5.2.10, v5.2.11, v5.2.12, v5.2.13, v5.2.14, v5.2.15, v5.2.16, v5.2.17, v5.2.18, v5.2.19, v5.2.2, v5.2.20, v5.2.21, v5.2.22, v5.2.23, v5.2.24, v5.2.25, v5.2.26, v5.2.27, v5.2.28, v5.2.29, v5.2.3, v5.2.30, v5.2.31, v5.2.4, v5.2.5, v5.2.6, v5.2.7, v5.2.8, v5.2.9].
    - laravel/laravel v5.2.31 requires laravel/framework 5.2.* -> satisfiable by laravel/framework[v5.2.0, v5.2.1, v5.2.10, v5.2.11, v5.2.12, v5.2.13, v5.2.14, v5.2.15, v5.2.16, v5.2.17, v5.2.18, v5.2.19, v5.2.2, v5.2.20, v5.2.21, v5.2.22, v5.2.23, v5.2.24, v5.2.25, v5.2.26, v5.2.27, v5.2.28, v5.2.29, v5.2.3, v5.2.30, v5.2.31, v5.2.4, v5.2.5, v5.2.6, v5.2.7, v5.2.8, v5.2.9].
    - laravel/framework v5.2.9 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.8 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.7 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.6 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.5 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.4 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.31 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.30 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.3 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.29 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.28 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.27 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.26 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.25 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.24 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.23 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.22 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.21 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.20 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.2 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.19 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.18 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.17 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.16 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.15 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.14 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.13 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.12 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.11 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.10 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.1 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v5.2.0 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - Installation request for laravel/laravel ^5.2 -> satisfiable by laravel/laravel[v5.2.0, v5.2.15, v5.2.23, v5.2.24, v5.2.27, v5.2.29, v5.2.31].

  To enable extensions, verify that they are enabled in those .ini files:
    - /etc/php/5.6/cli/php.ini
    - /etc/php/5.6/cli/conf.d/10-opcache.ini
    - /etc/php/5.6/cli/conf.d/10-pdo.ini
    - /etc/php/5.6/cli/conf.d/20-calendar.ini
    - /etc/php/5.6/cli/conf.d/20-ctype.ini
    - /etc/php/5.6/cli/conf.d/20-exif.ini
    - /etc/php/5.6/cli/conf.d/20-fileinfo.ini
    - /etc/php/5.6/cli/conf.d/20-ftp.ini
    - /etc/php/5.6/cli/conf.d/20-gettext.ini
    - /etc/php/5.6/cli/conf.d/20-iconv.ini
    - /etc/php/5.6/cli/conf.d/20-json.ini
    - /etc/php/5.6/cli/conf.d/20-phar.ini
    - /etc/php/5.6/cli/conf.d/20-posix.ini
    - /etc/php/5.6/cli/conf.d/20-readline.ini
    - /etc/php/5.6/cli/conf.d/20-shmop.ini
    - /etc/php/5.6/cli/conf.d/20-sockets.ini
    - /etc/php/5.6/cli/conf.d/20-sysvmsg.ini
    - /etc/php/5.6/cli/conf.d/20-sysvsem.ini
    - /etc/php/5.6/cli/conf.d/20-sysvshm.ini
    - /etc/php/5.6/cli/conf.d/20-tokenizer.ini
  You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

Installation failed, deleting ./composer.json.

Leí artículos. Aquí uno de ellos dice que Ubuntu 16.04 viene con PHP7 por defecto, pero aún podemos usar PHP5. Sin embargo, probé tanto PHP7 como PHP5 y sigo teniendo los mismos errores. ¿Algunas ideas? Gracias

Mohammad Barhoush
fuente

Respuestas:

30

Cómo instalar Laravel en Ubuntu 16.04

Actualización: Laravel 5.4

Debido a un gran interés por esta pregunta, he decidido actualizarla y crear un pequeño script bash para instalar todo lo que necesita para trabajar con Laravel (este es con el NGINX)

https://github.com/emilas44/laravel-5.4-on-Ubuntu/blob/master/script.sh

Simplemente puede copiarlo y editarlo como desee ... tal vez ya tenga algunos componentes instalados que están dentro del script, si es así, puede eliminar libremente las partes que no necesita.


Laravel 5.2 está abajo:

instalación de cosas básicas (opcional)

sudo apt-get install git
sudo apt-get install zip

LÁMPARA

sudo apt-get install tasksel
sudo tasksel install lamp-server

RIZO

sudo apt-get install curl php-curl php-mcrypt php-mbstring php-gettext

habilitar mods

sudo phpenmod mcrypt
sudo phpenmod mbstring
sudo a2enmod rewrite
sudo systemctl restart apache2

Compositor

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

instalar phpmyadmin

sudo apt-get install phpmyadmin     

Más tarde accesible a través de localhost / phpmyadmin

Creando Proyecto Laravel

cd /var/www/html/
sudo composer create-project laravel/laravel work --prefer-dist
sudo chmod -R 777 work (do not set 777 on "live" server!)

Creación de host virtual work.com

sudo gedit /etc/apache2/sites-available/work.com.conf

y pegue esto dentro de ese documento


#/etc/apache2/sites-available/work.com.conf contains following lines
<VirtualHost *:80>
        ServerName work.com
        DocumentRoot /var/www/html/work/public

        <Directory /var/www/html/work/public>
            AllowOverride All
            Require all granted
        </Directory>
</VirtualHost>

habilitar ese sitio

sudo a2ensite work.com
service apache2 reload

arreglar el archivo de hosts para que pueda acceder a él a través del navegador

sudo gedit /etc/hosts //space between gedit and destination!

        #/etc/hosts contents following lines                                
        127.0.0.1       work.com

o usa este comando

sudo -- sh -c "echo '\n127.0.0.1 \twork.com'>> /etc/hosts"

Eso es todo laravel está instalado!

He hecho un tutorial en youtube sobre cómo hacerlo bien ... Con todas las cosas que necesitas para trabajar con laravel. Aquí está el enlace: https://www.youtube.com/watch?v=A6TdaRIsG6g

lewis4u
fuente
Si, por ejemplo, no quisiera ejecutar el compositor como sudo, ¿qué podría hacer? hay una advertencia que dice no usar sudo con el compositor.
m33bo
necesita crear el directorio como usuario e instalar laravel y compositor sin usar sudo
lewis4u
dulce. Más de 100 trabajos en mi máquina
Semo
Disculpe, ¿no es suficiente chmod 77 5 ?
Semo
1
el almacenamiento y la carpeta de arranque deben tener 777
lewis4u
3

Había actualizado php 5.6.11 a 5.6.21.

Entonces, en mi caso tuve que correr:

sudo apt-get install php5.6-mbstring

PD: Cómo actualicé de 5.6.11 a 5.6.21 siguiendo:

sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php 
sudo apt-get update 
sudo apt-get install php5.6

Motivo de la actualización: zend_mm_heap dañado durante la actualización del compositor.

y
fuente
3

Estos son los pasos que tuve que seguir para instalar Laravel 5 en Ubuntu Server 16.04 después de una nueva actualización

Primero tuve que eliminar completamente todo PHP, por lo que Mohammad Barhoush declaró:

  • sudo apt-get -y purge php.*

Luego reinstalé PHP con:

  • sudo apt install php libapache2-mod-php
  • sudo apt install php-cli
  • sudo apt install php-mysql

Después de reinstalar PHP ver.7.0 instalé los paquetes relacionados adicionales que Mohhammad recomendó:

  • sudo apt-get install curl php-curl php-mcrypt php-mbstring php-gettext php-gd

Y habilitado los mods

  • sudo phpenmod mcrypt
  • sudo phpenmod mbstring

    Y finalmente, después de todo, este compositor seguía siendo un dolor quejándose de que no tenía la extensión zip para un, composer updateasí que instalé lo siguiente:

  • sudo apt-get install php7.0-zip

¡Después de eso funcionó bien sin errores!

Estos fueron los pasos necesarios para que laravel 5 funcione desde la versión LTS anterior de Ubuntu Server. Espero que esto haya ayudado! Atentamente :)

-Derick

Derick Vigne
fuente
2

La extensión PHP mbstring ahora reside en un paquete separado, por lo que debe hacer lo siguiente:

apt-get install php-mbstring
oerdnj
fuente
Todavía obteniendo el mismo registro de errores
Mohammad Barhoush
¡funcionó para mí! Tx
Juliatzin del Toro
1

La solución de oerdnj funciona, después de la instalación mbstringdebe habilitarla php.iniantes de ejecutarla composer install. En mi caso, laravel requiere ext-mbstring y ext-dom:
apt-get install php-dom

spqa
fuente
pero no dice cómo agregarlo a php.ini :(
Juliatzin del Toro
1

Gracias a todos por sus respuestas. Finalmente puedo resolver este problema haciendo:

  • Eliminar completamente php primero:

    sudo apt-get -y purge php.*

  • Vuelva a instalar php y estos importantes paquetes relacionados:

    sudo apt-get install curl php-curl php-mcrypt php-mbstring php-gettext

  • Habilitar mods (gracias al video lewis4u):

    sudo phpenmod mcrypt

    sudo phpenmod mbstring

Mohammad Barhoush
fuente
1

Allí debe hacer algo manualmente en el archivo de configuración. Descubrí que este artículo fue realmente útil. Primero, es necesario verificar que la biblioteca weather mbstring.dll ya esté instalada en el sistema usando la función 'phpinfo ()'. Si está habilitado, en lugar de descomentar 'extension = php_mbstring.dll' simplemente manténgalo comentado en el archivo de configuración php.ini o si no está allí, instálelo por sudo apt-get install php-mbstring php7.0-mbstring

Luego solo configure lo siguiente.

; mbstring.language = All
;mbstring.internal_encoding = UTF-8
;mbstring.http_output = UTF-8
;mbstring.encoding_translation = On
;mbstring.func_overload = 0

Eso es todo ... Creo que sabes el resto de cosas como cómo instalar laravel y todo ...

ARUN Madathil
fuente
1

Así que tuve el mismo problema que el tipo anterior, donde necesitaba instalar php-dom, así que intenté ejecutarlo, apt-get install php-dompero apareció el mensaje

Package php-dom is a virtual package provided by:
php5.5-xml 5.5.35-1+donate.sury.org~xenial+2
php7.0-xml 7.0.6-1+donate.sury.org~xenial+1
php5.6-xml 5.6.21-1+donate.sury.org~xenial+2
You should explicitly select one to install.

Como soy un poco nuevo en la terminal, esto me pareció un poco confuso, pero estoy ejecutando Ubuntu 16.04 con php7, así que simplemente ejecuté: apt-get install php7.0-xmly eso funcionó para mí ... ¡espero que ayude a alguien!

Matthew Jonat
fuente
0

Para instalar Laravel 5.4en la Ubuntu 16.04que en la documentación laravel con cheque:

  1. Verifique su versión de PHP en la terminal por: php -vsu versión de php debe serPHP >= 5.6.4
  2. Compruebe en la terminal con php -m para OpenSSL PHP Extensiony PDO PHP Extension.
  3. Terminal: sudo apt install php-mbstring y comprobar de nuevo por php -mpara Mbstring PHP Extensiony Tokenizer PHP Extension.

  4. Terminal: sudo apt install php-xmly comprobar de nuevo por el php -mdeXML PHP Extension

  5. Descarga Composer siguiendo estos 4 pasos en la terminal:

    • php -r "copy (' https://getcomposer.org/installer ', 'composer-setup.php');"

    • php -r "if (hashffile ('SHA384', 'composer-setup.php') === '669656bab3166a7aff8a7506b8cb2d1c292f042046c5a994c43155c0be6190fa0355160742ab2e1c.' '. php ');} echo PHP_EOL; "

    • php composer-setup.php

    • php -r "unlink ('composer-setup.php');"

  6. Comprobar compositor en terminal: php composer.phar

  7. Instala Laravel en la terminal:

    php composer.phar global require "laravel/installer"
    La salida en la terminal mostrará su directorio actual /home/yourname/.config/composer , vaya a su directorio actual y presione ctrl+hpara mostrar el archivo oculto.
    Ir a la .configcarpeta y luego a la composercarpeta con los siguientes contenidos: contenido de la carpeta del compositor

  8. Crear Laravel project en /var/www/htmlla Terminal:

    php composer.phar create-project --prefer-dist laravel/laravel /var/www/html/myLaravel

  9. Abra su myLaravel en la terminal y luego pegue: php artisan servey copie http://127.0.0.1:8000en su navegador

Noha Salah
fuente