Vagrant Homestead 开发环境部署 无法读取本地 box

我通过wget已经成功下载了box,这个box一开始的时候也成功在mac上运行了,box应该是没有问题的.

然后git clone了Homestead下来,然后通过bash init.sh创建了homestead.yaml 在默认的配置下在Homestead目录下进行vagrant up,但是没法获取本地的box,会自动到网络服务器是下载:

这个问题是因为Homestead更新为最新版本为0.4.0了。

原因:

用wget下载回来的virtualbox.box虽然是0.4的,但是在vagrant box list 中显示为 0 在下载回来的homestead默认的配置中就会出现错误。

方法:

在clone回来的Homestead\scripts\文件夹中,打开homestead.rb文件

config.vm.box_version = settings[“version”] ||= “>= 0.4.0”改为 config.vm.box_version = settings[“version”] ||= “>= 0”

在Mac OS X中开启或关闭显示隐藏文件命令

打开终端,输入:

命令运行之后需要重新加载Finder:快捷键option+command+esc,选中Finder,重新启动即可

[git] warning: LF will be replaced by CRLF | fatal: CRLF would be replaced by LF

遇到这两个错误,是因为Git的换行符检查功能。

Git提供了一个换行符检查功能(core.safecrlf),可以在提交时检查文件是否混用了不同风格的换行符。这个功能的选项如下:

建议使用最严格的 true 选项。

假如你正在Windows上写程序,又或者你正在和其他人合作,他们在Windows上编程,而你却在其他系统上,在这些情况下,你可能会遇到行尾结束符问题。这是因为Windows使用回车和换行两个字符来结束一行,而Mac和Linux只使用换行一个字符。虽然这是小问题,但它会极大地扰乱跨平台协作。

Git可以在你提交时自动地把行结束符CRLF转换成LF,而在签出代码时把LF转换成CRLF。用core.autocrlf来打开此项功能,如果是在Windows系统上,把它设置成true,这样当签出代码时,LF会被转换成CRLF:

 

Linux或Mac系统使用LF作为行结束符,因此你不想 Git 在签出文件时进行自动的转换;当一个以CRLF为行结束符的文件不小心被引入时你肯定想进行修正,把core.autocrlf设置成input来告诉 Git 在提交时把CRLF转换成LF,签出时不转换:

 

这样会在Windows系统上的签出文件中保留CRLF,会在Mac和Linux系统上,包括仓库中保留LF。

如果你是Windows程序员,且正在开发仅运行在Windows上的项目,可以设置false取消此功能,把回车符记录在库中:

Tlinux 2.0 下部署Laravel 5.1

前几天在做一个小项目,本地的开发环境是vagrant+homestead,在本地测试一切OK,但是生产环境有问题,因为tlinux2.0默认php的版本是:5.4.16

001

laravel要求的php环境>=5.5.9

所以需要自己编译安装~

1. 首先安装nginx 和 mysql

(注意:CentOS 7.0中,已经使用MariaDB替代了MySQL数据库)

2. 为数据库root账户设置密码

回车,根据提示输入Y

输入2次密码,回车

根据提示一路输入Y

最后出现:Thanks for using MySQL!

MariaDB密码设置完成,重新启动 MariaDB即可.

3. 编译php前的准备

因为编译php要依赖好多扩展库,所以先安装一下:

4. 编译安装php

我安装的php版本是5.6.12,可以去官网下载,也可以执行下面的命令直接下载:

解压缩:

A. 编译安装:

B. 编辑php-fpm.conf 

C. 设置 php-fpm开机启动

D. 编辑配置文件

这样php就基本配置完成了,但是在我的使用过程中还是会有坑,mysql和php不通。

所以继续下面的操作:

E. 继续修改php配置文件

找到:mysql.default_socket=  pdo_mysql.default_socket= mysqli.default_socket=

去掉注释将等号后面的参数全部修改为: /var/lib/mysql/mysql.sock

这样在tlinux2.0下整个环境配置就完成了。

附带我的nginx配置

最后在说明一下,还要将应用的根目录用户权限修改为:nginx:nignx

因为nginx默认用户是nginx,我在php-fpm里面配置的也是nginx。

到此,整个环境搞好了,laravel应用成功上线。

Laravel系列之magration

今天深入学习magration

详见:http://laravel-china.org/docs/5.1/migrations

在开始下节学习之前,先做个笔记:

很多时候,在Laravel中,我们在创建一个model的时候都会有一些约定俗成的命名方法:

如果说我们有一个articles数据表,我们的model相对应就命名为Article;

如果说我们有一个users的数据表,我们的model对应就命名为User;

就是基本上遵守数据表复数而model单数大写就可以了。