Установите Laravel 5 на Ubuntu 16.04

21

Кто-нибудь устанавливал laravel 5 на Ubuntu 16.04? Я только что перешел на Ubuntu 16.04 и пытаюсь установить на него фреймворк laravel 5 с помощью composer. Но каждый раз, когда я пытаюсь создать проект, это дает мне эту ошибку

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.

Я читаю статьи. Здесь один из них говорит, что Ubuntu 16.04 поставляется с PHP7 по умолчанию, но мы все еще можем использовать PHP5. Однако я пробовал оба PHP7 и PHP5 и все еще получаю те же ошибки! Любые идеи? Благодарность

Мохаммад Бархоуш
источник

Ответы:

30

Как установить Laravel в Ubuntu 16.04

Обновление: Laravel 5.4

Из-за большого интереса к этому вопросу я решил обновить его и создать небольшой скрипт bash, чтобы установить все, что вам нужно для работы с Laravel (этот с NGINX)

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

Вы можете просто скопировать его и отредактировать как вам угодно ... может быть, у вас уже установлены некоторые компоненты, которые находятся внутри скрипта, если это так, вы можете свободно удалять ненужные вам части.


Laravel 5.2 внизу:

базовая установка (опционально)

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

ФОНАРЬ

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

CURL

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

включить моды

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

Композитор

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

установить phpmyadmin

sudo apt-get install phpmyadmin     

позже доступно через localhost / phpmyadmin

Создание проекта 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!)

Создание виртуального хоста work.com

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

и вставьте это в этот документ


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

включить этот сайт

sudo a2ensite work.com
service apache2 reload

исправить файл hosts, чтобы вы могли получить к нему доступ через веб-браузер

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

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

или используйте эту команду

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

Вот и все Laravel установлен!

Я сделал учебник на YouTube, как сделать это правильно ... Со всеми вещами, которые вам нужны для работы с Laravel. Вот ссылка: https://www.youtube.com/watch?v=A6TdaRIsG6g

lewis4u
источник
Если, например, я не хочу запускать composer как sudo, что я могу сделать? есть предупреждение о том, что не используйте sudo с композитором.
m33bo
вам нужно создать каталог как пользователь и установить laravel и composer без использования sudo
lewis4u
милая. 100+ Работает на моей машине
Semo
Извините, разве chmod 77 5 не достаточно?
Semo
1
папка для хранения и начальной загрузки должна быть 777
lewis4u
3

Я обновил php 5.6.11 до 5.6.21.

Итак, в моем случае мне пришлось бежать:

sudo apt-get install php5.6-mbstring

PS: Как я обновил с 5.6.11 до 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

Причина обновления: zend_mm_heap поврежден во время обновления композитора.

а также
источник
3

Вот шаги, которые мне пришлось предпринять, чтобы установить Laravel 5 на Ubuntu Server 16.04 после нового обновления

Сначала мне пришлось полностью удалить весь PHP, так как Мохаммад Бархуш заявил:

  • sudo apt-get -y purge php.*

Затем я переустановил PHP с:

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

После переустановки PHP ver.7.0 я установил дополнительные связанные пакеты, которые рекомендовал Мохаммед:

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

И включил моды

  • sudo phpenmod mcrypt
  • sudo phpenmod mbstring

    И, наконец, после всего этого композитор все еще испытывал боль, жалуясь, что у него нет расширения zip для a, composer updateпоэтому я установил следующее:

  • sudo apt-get install php7.0-zip

После этого все работало без ошибок!

Это были шаги, необходимые для работы laravel 5 с предыдущей LTS-версии Ubuntu Server. Надеюсь, это помогло! С наилучшими пожеланиями :)

-Derick

Дерик Винье
источник
2

Расширение PHP mbstring теперь находится в отдельном пакете, поэтому вам нужно сделать:

apt-get install php-mbstring
oerdnj
источник
По-прежнему получаю такой же журнал ошибок
Мохаммад Бархоуш
это сработало для меня! Tx
Джулиатзин дель Торо
1

Решение oerdnj работает, после установки mbstringвы должны включить его php.iniперед запуском composer install. В моем случае laravel требует ext-mbstring и ext-dom:
apt-get install php-dom

spqa
источник
но он не говорит, как добавить его в php.ini :(
Juliatzin del Toro
1

Спасибо всем за ваши ответы .. Я наконец смог решить эту проблему, выполнив:

  • Сначала полностью удалите php:

    sudo apt-get -y purge php.*

  • Переустановите php и эти важные связанные пакеты:

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

  • Включить моды (благодаря видео lewis4u):

    sudo phpenmod mcrypt

    sudo phpenmod mbstring

Мохаммад Бархоуш
источник
1

Там вы должны сделать что-то вручную в файле конфигурации .. Я обнаружил, что эта статья была действительно полезной. Во-первых, необходимо проверить, установлена ​​ли в системе библиотека погоды mbstring.dll с помощью функции phpinfo (). Если он включен, вместо того, чтобы раскомментировать 'extension = php_mbstring.dll', просто оставьте комментарий в файле конфигурации php.ini или, если его нет, установите его sudo apt-get install php-mbstring php7.0-mbstring

Затем просто настройте следующее.

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

Вот и все .. Я думаю, вы знаете все остальное, например, как установить Laravel и все ..

Арун Мадатил
источник
1

Так что у меня была та же проблема, что и у приведенного выше парня, где мне нужно было установить php-dom, поэтому я попытался запустить, apt-get install php-domно он просто выдал сообщение

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.

Поскольку я немного новичок в терминале, я нашел это немного запутанным, но я использую Ubuntu 16.04 с php7, поэтому я просто запустил: apt-get install php7.0-xmlи это сработало для меня ... надеюсь, это кому-нибудь поможет!

Мэтью Джонат
источник
0

Для того, чтобы установить Laravel 5.4на Ubuntu 16.04как в Laravel документации с проверкой:

  1. Проверьте вашу версию PHP в терминале:, php -vваша версия PHP должна бытьPHP >= 5.6.4
  2. Проверьте в терминале php -m для OpenSSL PHP Extensionи PDO PHP Extension.
  3. Терминал: sudo apt install php-mbstring и проверьте еще раз php -mдля Mbstring PHP Extensionи Tokenizer PHP Extension.

  4. Terminal: sudo apt install php-xmlи проверьте снова php -mдляXML PHP Extension

  5. Загрузите Composer этими 4 шагами в терминале:

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

    • php -r "if (hash_file ('SHA384', 'composer-setup.php') === '669656bab3166a7aff8a7506b8cb2d1c292f042046c5a994c43155c0be6190fa0355160742ab2355160 '42ab2 echo; php ');} echo PHP_EOL; "

    • php composer-setup.php

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

  6. Проверьте композитора в терминале: php composer.phar

  7. Установите Laravel в терминале:

    php composer.phar global require "laravel/installer"
    Вывод в терминале покажет ваш текущий каталог /home/yourname/.config/composer , перейдите в текущий каталог и нажмите, ctrl+hчтобы показать скрытый файл.
    Перейдите в .configпапку, а затем в composerпапку со следующим содержимым: содержимое папки композитора

  8. Создание Laravel project в /var/www/htmlтерминальном:

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

  9. Откройте myLaravel в терминале, затем вставьте: php artisan serveи скопируйте http://127.0.0.1:8000в браузер

Ноха Салах
источник