在 Ubuntu 14.04 上搭建 LNMP 环境

背景:

1
2
3
4
2核8G, Intel Haswell CPU、DDR4 内存
40G ssd 系统盘 + 20G ssd 数据盘
ubuntu14.04
2Mbps带宽

PS : 脑子抽了我才会在 Ubuntu 16.04 出来后还选 14.04 系统。。。。后来多做了好多事情。。。

PHP编译安装部分请参考 编译安装的 PHP7.0 升级 7.2

准备工作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
apt-get update //更新apt-get 
apt-get install unzip //安装unzip
apt-get install //安装git
//生成ssh密钥,并配置code平台
apt-get install //安装Nginx, ubuntu 14.04 的主坑之一,默认Nginx版本过低,后面升级HTTP2又要重新升级版本
service nginx start // 启动nginx
apt-get install redis-server redis-tools // 安装Redis,检查是否绑定ip,默认bind 127.0.0.1
apt-get install memcached // 安装Memcached,telnet localhost 11211可访问,外网不可访问
apt-get -y install mysql-server mysql-client // 安装mysql,中间设置root-pwd

//安装依赖库
apt-get install libxml2-dev libxml2
apt-get install openssl libssl-dev mcrypt
(find / -name libssl.so)
(ln -s /usr/lib/x86_64-linux-gnu/libssl.so /usr/lib)
apt-get install curl libcurl3
apt-get install libkrb5-dev \
libc-client2007e \
libc-client2007e-dev \
libcurl4-openssl-dev \
libbz2-dev \
libjpeg-dev \
libmcrypt-dev \
libxslt1-dev \
libxslt1.1 \
libpq-dev \
libpng12-dev \
libfreetype6-dev \
build-essential

Laravel Eloquent ORM 学习

Eloquent ORM 是 Laravel 自带的 ORM , 提供了一个优雅的、简单的 数据库 ActiveRecord 实现。每一个数据库的表有一个对应的 “Model” 用来与这张表交互。葡萄的Kerisy框架中的ORM直接采用了Eloquent.

注:以下文档基于 Laravel 5.1 版本。

参考文档:
(1) GoLaravel中文社区Eloquent ORM文档
(2) JohnLui: 深入理解 Laravel Eloquent(一)——基本概念及用法
(3) JohnLui: 深入理解 Laravel Eloquent(二)——中间操作流(Builder)
(4) JohnLui: 深入理解 Laravel Eloquent(三)——模型间关系(关联)

一、数据库配置

配置文件:

app/config/database.php

配置文件内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
'default' => env('DB_CONNECTION', 'mysql'),
'connections' => [
/**
* 默认数据库连接,业务部分
* 如需链接多个数据库,该部分可以配置多份,即可在创建 Model 的时候选择链接的是哪个数据库
*/
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8mb4', // 根据需要配置数据库和数据库链接的编码格式,默认是utf8
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => false,
],
]

其中数据库的各项链接信息配置可以直接在环境配置文件 .env 中进行配置同时环境隔离。

我想要的技术团队

从安居客出来之后来了学识堂,然后又来葡萄,突然发现自己在安居客的一年多被养的“娇惯”了许多,对公司,对自己所在的技术团队,有了很多的奢望和想法,仔细想了想发现有些东西也许不只是“我想要”这么简单,对于一个技术团队而言,有些东西真的是比较重要和有意义的,一方面吸引和留住人才,因为它可以让团队工作变得流畅简单,另一方面培养人才,因为这些东西有规范的东西时间久了就是积淀,就是教程,新手也可以有迹可循的顺着爬上前人的肩膀,从而更快速的成长为对团队有价值的存在。

一、工具

团队意味着不是一个人,意味着协作。工具于团队而言就是为了更好地协作和交流,于个人而言就是为了更简明的安排工作。

1.代码托管&版本控制 Git V.S. SVN

个人推荐Git,但是团队初期svn也是可以的。Git与SVN的差别请咨询度娘orGoogle。个人推荐它的另一个原因是,Git会有很多开源的web管理平台,譬如Gitlab,Gogs等。

这些平台一方面可以在网页上直观的进行一些浏览和操作,查看版本差异、版本历史,甚至代码内容,另一方面也可以作为一个文档分享平台来使用,他们多半对Markdown文档的展示都有很好的支持。而文档本身又是另一个很重要也很必要的工具。