Zainstaluj laravel 5 na Ubuntu 16.04

21

Czy ktoś zainstalował Laravel 5 na Ubuntu 16.04? Właśnie przełączyłem się na Ubuntu 16.04 i próbuję zainstalować na nim platformę laravel 5 za pomocą kompozytora. Ale za każdym razem, gdy próbuję stworzyć projekt, otrzymuję ten błąd

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.

Czytam artykuły Tutaj jeden z nich mówi, że Ubuntu 16.04 jest domyślnie wyposażony w PHP7, ale nadal możemy używać PHP5. Jednak próbowałem zarówno PHP7, jak i PHP5 i nadal otrzymuję te same błędy! Jakieś pomysły? Dzięki

Mohammad Barhoush
źródło

Odpowiedzi:

30

Jak zainstalować Laravel w Ubuntu 16.04

Aktualizacja: Laravel 5.4

Ze względu na duże zainteresowanie tym pytaniem postanowiłem go zaktualizować i utworzyć mały skrypt bash, aby zainstalować wszystko, czego potrzebujesz do pracy z Laravelem (ten jest z NGINX)

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

Możesz go po prostu skopiować i edytować, jak chcesz ... może masz już zainstalowane komponenty, które są w skrypcie, jeśli tak, możesz swobodnie usuwać niepotrzebne części.


Laravel 5.2 znajduje się poniżej:

podstawowa instalacja rzeczy (opcjonalnie)

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

LAMPA

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

KĘDZIOR

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

włącz mody

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

Kompozytor

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

zainstaluj phpmyadmin

sudo apt-get install phpmyadmin     

później dostępne przez localhost / phpmyadmin

Tworzenie projektu 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!)

Tworzenie wirtualnego hosta work.com

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

i wklej to do tego dokumentu


#/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>

włącz tę stronę

sudo a2ensite work.com
service apache2 reload

napraw plik hosts, aby uzyskać do niego dostęp za pośrednictwem przeglądarki internetowej

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

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

lub użyj tego polecenia

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

To jest to, że laravel jest zainstalowany!

Zrobiłem samouczek na youtube, jak to zrobić dobrze ... Ze wszystkimi rzeczami, które musisz pracować z laravel. Oto link: https://www.youtube.com/watch?v=A6TdaRIsG6g

lewis4u
źródło
Jeśli na przykład nie chciałbym uruchomić kompozytora jako sudo, co mogę zrobić? pojawia się ostrzeżenie: nie używaj sudo z kompozytorem.
m33bo
musisz utworzyć katalog jako użytkownik i zainstalować laravel i kompozytor bez użycia sudo
lewis4u
Słodkie. Ponad 100 prac na moim komputerze
Semo
Przepraszam, czy chmod 77 5 nie wystarczy?
Semo
1
Pamięć i folder bootstrap muszą mieć 777
lewis4u
3

Uaktualniłem php 5.6.11 do 5.6.21.

Więc w moim przypadku musiałem biec:

sudo apt-get install php5.6-mbstring

PS: Jak zaktualizowałem wersję 5.6.11 do 5.6.21:

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

Powód aktualizacji: zend_mm_heap uszkodzony podczas aktualizacji kompozytora.

i
źródło
3

Są to kroki, które musiałem podjąć, aby zainstalować Laravel 5 na Ubuntu Server 16.04 po nowej aktualizacji

Najpierw musiałem całkowicie usunąć cały PHP, tak jak stwierdził Mohammad Barhoush:

  • sudo apt-get -y purge php.*

Następnie przeinstalowałem PHP z:

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

Po ponownej instalacji PHP w wersji 7.0 zainstalowałem dodatkowe powiązane pakiety, które Mohhammad polecił:

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

I włączył mody

  • sudo phpenmod mcrypt
  • sudo phpenmod mbstring

    I w końcu ten kompozytor wciąż narzekał na ból, że nie miał rozszerzenia zip, composer updatewięc zainstalowałem:

  • sudo apt-get install php7.0-zip

Potem wszystko poszło dobrze, bez błędów!

Były to kroki niezbędne do uzyskania funkcjonalności laravel 5 pochodzącej z poprzedniej wersji Ubuntu Server LTS. Mam nadzieję, że to pomogło! Z poważaniem :)

-Derick

Derick Vigne
źródło
2

Rozszerzenie PHP mbstring znajduje się teraz w osobnym pakiecie, więc musisz wykonać:

apt-get install php-mbstring
oerdnj
źródło
Wciąż
pojawia
zadziałało dla mnie! Tx
Juliatzin del Toro
1

Rozwiązanie oerdnj działa, po instalacji mbstringpowinieneś włączyć je php.iniprzed uruchomieniem composer install. W moim przypadku laravel wymaga ext-mbstring i ext-dom:
apt-get install php-dom

spqa
źródło
ale nie mówi, jak dodać go do php.ini :(
Juliatzin del Toro
1

Dziękujemy wszystkim za odpowiedzi. W końcu jestem w stanie rozwiązać ten problem, wykonując:

  • Najpierw całkowicie usuń php:

    sudo apt-get -y purge php.*

  • Ponownie zainstaluj php i te ważne powiązane pakiety:

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

  • Włącz mody (dzięki wideo lewis4u):

    sudo phpenmod mcrypt

    sudo phpenmod mbstring

Mohammad Barhoush
źródło
1

Tam musisz coś zrobić ręcznie w pliku konfiguracyjnym. Odkryłem, że ten artykuł był bardzo pomocny. Najpierw sprawdź, czy biblioteka mbstring.dll jest już zainstalowana w systemie za pomocą funkcji „phpinfo ()”. Jeśli jest włączony, zamiast odkomentować „extension = php_mbstring.dll”, po prostu pozostaw go w komentarzu w pliku konfiguracyjnym php.ini lub jeśli go nie ma, zainstaluj go przez sudo apt-get install php-mbstring php7.0-mbstring

Następnie skonfiguruj następujące elementy.

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

To wszystko .. Myślę, że znasz resztę rzeczy, takich jak instalacja laravel i wszystko ...

ARUN Madathil
źródło
1

Miałem więc ten sam problem, co powyższy facet, w którym musiałem zainstalować php-dom, więc próbowałem uruchomić, apt-get install php-domale właśnie pojawił się komunikat

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.

Jako, że jestem trochę nowy w terminalu, uznałem to za nieco mylące, ale używam Ubuntu 16.04 z php7, więc po prostu uruchomiłem: apt-get install php7.0-xmli to działało dla mnie ... mam nadzieję, że to komuś pomoże!

Matthew Jonat
źródło
0

Aby zainstalować Laravel 5.4na Ubuntu 16.04jak w dokumentacji laravel z czeku:

  1. Sprawdź swoją wersję PHP w terminalu przez: php -vTwoja wersja php musi byćPHP >= 5.6.4
  2. Sprawdź w terminalu php -m za OpenSSL PHP Extensioni PDO PHP Extension.
  3. Terminal: sudo apt install php-mbstring i sprawdź ponownie php -mza Mbstring PHP Extensioni Tokenizer PHP Extension.

  4. Terminal: sudo apt install php-xmli sprawdź ponownie php -mzaXML PHP Extension

  5. Pobierz Kompozytora, wykonując 4 kroki w terminalu:

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

    • php -r "if (plik hash ('SHA384', 'composer-setup.php') === '669656bab3166a7aff8a7506b8cb2d1c292f042046c5a994c43155c0be6190fa0355160742ab2e1c88deboo {instalowany'; 'ech' {uszkodzony ') {install' zweryfikowany 'Zainstaluj' zweryfikowany 'Zainstaluj' zweryfikowany {zainstaluj '') php ');} echo PHP_EOL; "

    • php composer-setup.php

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

  6. Sprawdź kompozytora w terminalu: php composer.phar

  7. Zainstaluj Laravel w terminalu:

    php composer.phar global require "laravel/installer"
    Dane wyjściowe w terminalu pokażą twój bieżący katalog /home/yourname/.config/composer , przejdź do bieżącego katalogu i naciśnij, ctrl+haby pokazać ukryty plik.
    Przejdź do .configfolderu, a następnie composerfolderu z następującą zawartością: zawartość folderu kompozytora

  8. Tworzenie Laravel project się /var/www/htmlw terminalu:

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

  9. Otwórz myLaravel w terminalu, a następnie wklej: php artisan servei skopiuj http://127.0.0.1:8000do przeglądarki

Noha Salah
źródło