在Ubuntu 16.04上安装laravel 5

有人在Ubuntu 16.04上安装了laravel 5吗? 我刚刚切换到Ubuntu 16.04,我正在尝试使用composer在其上安装laravel 5框架。 但每次我尝试创建一个项目时,它都会给我这个错误

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并仍然得到相同的错误! 有任何想法吗? 谢谢

如何在Ubuntu 16.04中安装Laravel

更新: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 

启用mods

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

composer php

 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  ServerName work.com DocumentRoot /var/www/html/work/public  AllowOverride All Require all granted   

启用该网站

 sudo a2ensite work.com service apache2 reload 

修复hosts文件,以便您可以通过Web浏览器访问它

 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

我已经将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 

升级原因:在composer php更新期间zend_mm_heap损坏 。

这些是我在新升级后在Ubuntu Server 16.04上安装Laravel 5时必须采取的步骤

首先,我必须完全删除所有PHP,因为Mohammad Barhoush说:

  • 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后,我安装了Mohhammad推荐的其他相关软件包:

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

并启用了mod

  • sudo phpenmod mcrypt
  • sudo phpenmod mbstring

    最后,在所有这位composer php仍抱怨之后,它还没有用于composer update的zip扩展,所以我安装了以下内容:

  • sudo apt-get install php7.0-zip

之后它运行得很好,没有错误!

这些是我从前一个LTS版本的Ubuntu Server获得laravel 5function所需的步骤。 希望这有帮助! 最好的祝福 :)

-Derick

PHP mbstring扩展现在位于一个单独的包中,因此您需要执行以下操作:

 apt-get install php-mbstring 

oerdnj的解决方案有效,在安装mbstring你应该在运行composer install之前在php.ini启用它。 在我的情况下,laravel需要ext-mbstring和ext-dom:
apt-get install php-dom

所以我遇到了与上面那个我需要安装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. 

由于我有点新的终端我发现这有点令人困惑,但我运行unbuntu 16.04与php7所以我只是运行: apt-get install php7.0-xml ,这对我apt-get install php7.0-xml …希望有助于某人!

谢谢大家的回复..我终于能够通过以下方式解决这个问题:

  • 首先完全删除php:

    sudo apt-get -y purge php.*

  • 重新安装php和这些重要的相关包:

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

  • 启用mods(感谢lewis4uvideo):

    sudo phpenmod mcrypt

    sudo phpenmod mbstring

你需要在配置文件中手动执行某些操作..我发现这篇文章真的很有帮助。 首先,需要检查天气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和所有..

要在Urantu Ubuntu 16.04上安装Laravel 5.4 ,就像在Laravel文档中使用check一样:

  1. 在终端上检查你的PHP版本: php -v ,你的php版本必须是PHP >= 5.6.4
  2. 使用php -m检查终端,以获取OpenSSL PHP ExtensionPDO PHP Extension
  3. 终端: sudo apt install php-mbstring并再次通过php -m检查Mbstring PHP ExtensionTokenizer PHP Extension

  4. 终端: sudo apt install php-xml并再次通过php -m检查XML PHP Extension

  5. 通过终端中的以下4个步骤下载Composer:

    • php -r“copy(’ https://getcomposer.org/installer','composer-setup.php ‘);”

    • php -r“if(hash_file(’SHA384’,’composer-setup.php’)===’669656bab3166a7aff8a7506b8cb2d1c292f042046c5a994c43155c0be6190fa0355160742ab2e1c88d40d5be660b410’){echo’Installer verified’;} else {echo’Installer corrupt’; unlink(’composer-setup。 php’);} echo PHP_EOL;“

    • php composer-setup.php

    • php -r“unlink(’composer-setup.php’);”

  6. 检查终端中的php composer.pharphp composer.phar

  7. 在终端安装Laravel:

    php composer.phar global require "laravel/installer"
    终端中的输出将显示当前目录到/home/yourname/.config/composer ,转到当前目录并按ctrl+h显示隐藏文件。
    转到.config文件夹然后转到composer文件夹,其中包含以下内容: composer文件夹内容

  8. 在终端的/var/www/html中创建Laravel project

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

  9. 在终端打开myLaravel然后粘贴: php artisan serve并在浏览器中复制http://127.0.0.1:8000