您的位置:首页 > 编程语言 > PHP开发

安装laravel

2015-06-25 01:25 573 查看
检查版本和依赖

laravel对系统环境有一些要求。最新的laravel5.1要求php版本大于等于5.5.9,同时需要OpenSSL,Mbstring,Tokenizer三个扩展。

那么怎么知道自己是否达到要求了呢?

使用命令:php -v察看php的版本。

使用命令:php -m检查php所安装并启用的所有模块。

有些文章建议使用phpinfo函数检查,还有一个extension_loaded函数可以检查某个模块是否已经安装。但是新建一个php文件,然后到浏览器访问非常麻烦。这里推荐一种简单的方法。

使用命令:php filename可以直接解析某个php文件,将输出写在终端上。比如新建下面一个文件test.php如下:

<?php

echo "test";

?>

然后执行:php test.php就能输出字符床“test”。

如果只是执行单个的函数,那么连新建一个文件都很麻烦,那么可是使用linux的管道。

使用命令:echo "php文件内容" | php即可执行“php文件内容”。比如:

echo "<?php echo 'test'; ?> | php达到的效果与上面的一样。

这里就相当于echo输出一个文本流到一个临时文件中,然后php解析执行该临时文件。

注意:如果不加“”,请回忆一下在文件中不加这些有什么后果。可是尝试一下。

如果连""都懒得写,可以使用:php -r “php语句”命令直接执行“php语句”。可以使用php -h察看帮助,里面说了选项-r的作用。

如果在执行php -m的时候发现输出太多,显示不出来怎么办?

使用less或者more命令。如此:php -m | less

说很难说清楚,试一下就知道了。这里也用到了管道。

安装composer

怎么知道自己是不是以前安装过这个命令呢?输入composer执行一下就行了。一般地,如果一个命令运行必需参数,但你有没给,它就会输出提示。如果该命令不存在,shell会提示不存在。

我下意识用apt-get命令试试看,结果不行。然后谷歌一下,找到http://www.phpcomposer.com/网站,里面的文档介绍了如何安装。这里把主要的命令择出来:

curl -sS https://getcomposer.org/installer | php

只有一条,非常简单。

curl是一个用来下载网络文件的命令。管道已经说过了。那么就很明显,这条命令是从网络上下载一个文件,然后用php解析执行。看来下载下来的是一个可以被php解析执行的文件,要么是php文件,要么是别的一些文件。

当然也可以用另外一个命令:

php -r "readfile('https://getcomposer.org/installer');" | php

上面也说了php -r的作用。php函数readfile是读取文件的函数。这里是从网络上下载一个文件。作用与curl一样。

从这里可以看出,只要我们下载这么一个installer文件,然后用php解析执行它,就能安装完成。聪明的你就能想到,无论使用什么方法,之需要下载这么一个文件,然后使用php installer执行就可以了。至于下载的方法不限,可以是用任何下载软件下载,比如用浏览器,也可以使用curl之外的下载命令,比如wget。

执行外这条命令之后产生了什么影响呢?执行完成之后它有提示,说composer.phar文件被成功安装在当前目录。

也就是说它下载了一个composer.phar文件。phar文件是个啥?搜索一下发现是php归档文件。这个不管。关键是它可以用php解析执行。也就是说我们可以使用:php composer.phar来执行这条命令。不过php前缀可以不加,直接使用composer命令。为啥?我们知道linux文本文件中许多都在第一行加这么一句:#!/bin/sh xx或者#!/bin/bash xx或者类似的东西。这用来指示用哪一个命令来解析执行该文件。所以有时候不需要加命令。

到目前为止,composer放在你执行上面安装命令的那个目录下,还不是全局的。之需要把它移到全局命令文件夹下就可以了,顺便也该个名,去掉文件扩展名。使用命令:sudo mv composer.phar /usr/local/bin/composer。

现在composer可以全局执行。

除此之外,composer还建立了一个隐藏文件夹,是~/.composer,用来存放composer使用中产生的数据。

还有一点要说明,我们在那里执行这条命令呢?答案是那里都可以。

那么installer会在那里建立.composer文件夹呢?我测试过,都在~/下,不会在别处。

注意这个.composer文件夹,下面还会遇到。使用tree命令察看它的目录结构,清晰明了。

安装laravel

按照官网给出的方法来。执行命令:composer global require "laravel/installer=~1.1"

发生了什么?文档说composer下载了laravel的安装包。安装包放在哪里?

检查当前目录,什么都没有发生啊?

还记得.composer吗?去看看。使用tree察看。太多了!不过眼尖的会发现有个laravel文件夹。里面陌生的文件名称都不认识,不过知道一点:原来laravel被下载到这里了。

知道这个就放心了。以后不要傻乎乎在去下载好几遍了——虽然多执行那个命令并没有任何影响。

然后我们看到.composer/vendor/bin文件夹里多出来一个laravel。这是可以执行的。它不再系统目录中,不能全局执行。把.composer/vendor/bin放到系统路径中去,然后我们就能全局执行laravvel了。方法是配置/etc/environment文件。里面一般已经有一行命令用来设置系统路径了,它添加了好几个路径到系统路径中去,你照着在末尾再加一个就是了。

使用laravel新建项目

使用laravel命令可以方便地新建项目。比如laravel new blog命令就建立了一个blog项目,在当前目录下产生了blog文件夹及其下面的一大堆文件和文件夹。

问题是:新项目要放在那里呢,我们又要怎么访问它呢?

首先要明白blog文件是用来做什么的。blog下面有个public文件,那里是blog站点的起始点。所以最方便的是放在/var/www/html下面或者它的子目录下面。因为apache2默认将/var/www/html作为根目录。比如文件结构是这样的:/var/www/html/blog,那么就可以在浏览器中用http://domain/blog/public来访问新建的站点。

但是当在/var/www/html中执行laravel时,系统提示说找不到命令。这是因为使用sudo执行只是,系统处于安全考虑重置了系统路径,也就是说系统路径不再是你设置的哪一个了。要怎么办?一是让sudo能找到laravel。我第一次是这么做的。后来觉得麻烦。于是就首先在~/下生成blog,然后转移文件。

还是不行。哦,忘了分配写权限给storage以及bootstrap/cache了。

做好之后,OK。

配置

这时,我们要通过http://domain/blog/public才能访问,太丑了。设置/etc/apache2/sites-enabled/*.conf文件。

首先说下那个文件是什么。tree一下/etc/apache2可以看到一个sites-available目录和sites-enabled目录。通过名字就知道,前一个放的是所有站点的配置文件,后一个放的是当前使用的站点的配置文件。等等,貌似有重复。对了,可以看到后一个目录中的文件其实是前一个目录中某个文件的链接。有些文章说要配置前一个目录下的某个文件,其实是不对的,他只是赶巧了而已。应该修改后一个目录中的文件。当然它只是一个链接-_-||。

配置方法是,找到DocumentRoot项,它只是站点根目录。将它设置为/var/www/html/blog/public。最后重启一下apache2即可。以后,就能通过http://domain/直接访问了。

当然,这样该来该去的很麻烦。有高手可以另外写个配置文件,然后使用a2dissite和a2ensite命令更换站点。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: