版本控制工具:Git,使用Github部署项目

敬请期待

Select Code
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
30
31
32
33
34
35
36
37
内容大纲
	简介
		关于版本控制
		发展史
	github
		简介
		网页版github使用
	git的安装
		windows下安装git bash
		linux下安装git
			初次运行 Git 前的配置
			获取帮助
	git常用命令
		git init
		git clone
		git add
		git rm
		git mv
		git show
		git status
		git commit
		git diff
		git log
	git分支
		何谓分支
		分支的新建、切换与合并
		分支删除
		利用分支进行开发的工作流程
		代码冲突
	案例演示:
		已存在的项目部署到本地
		克隆已存在远程服务器端项目到本地开发
        
        参考资料:
		https://code.csdn.net/help/CSDN_Code/code_support/Index
		http://rogerdudler.github.io/git-guide/index.zh.html
		http://marklodato.github.io/visual-git-guide/index-zh-cn.html

使用Samba,Windows上开发,代码同步到Linux

说明:在Linux上安装Samba文件服务器,然后添加Samba用户,即可在Windows上使用我的电脑(包括Sublime编辑器打开Linux上的文件)打开Linux上的文件(注意设置权限为777,或者使用ACL权限设置),在Windows上做的任何修改,保存时会更新到Linux。

服务器环境:

  • CentOS 6.8
  • LNMP1.2一键搭建环境

步骤如下:
1. 安装samba:

Select Code
1
yum -y install samba samba-client smaba-common

2. 设置samba的配置文件

Select Code
1
vim /etc/samba/smb.conf

添加如下设置,也就是你的项目文件夹设置可写、可浏览

Select Code
1
2
3
4
5
6
[web]                                  # 自定义节点
comment = 网站根目录                   # 备注
path = /home/wwwroot                   # Nginx主目录
writable = yes                         # 是否可写
browseable = yes                       # 是否可浏览
valid users = web                      # 允许的用户

3. 启动smb服务器:

Select Code
1
service smb restart|start|stop

4. 到 windows 系统下访问,使用路径「\\192.168.199.200」

5. 设置项目文件夹ACL权限

Select Code
1
2
setfacl -R -m u:bls:rwx 目标文件夹
setfacl -R -m d:bls:rwx 目标文件夹 // 新建的文件也拥有rwx权限

或者:

Select Code
1
chmod 777 domain.com

6. 效果预览

常见PHP框架安装

一文搞定常见的PHP框架的安装。环境的搭建,使用了LNMP1.3一键安装,参考:http://www.webjust.org/archives/460

YII
PHP >= 5.4.0
版本:YII2.0的basic版

Select Code
1
2
composer global require "fxp/composer-asset-plugin:^1.2.0"
composer create-project --prefer-dist yiisoft/yii2-app-basic basic // 被墙

被墙可以使用国内的git源:

// yii2.0 basic版

Select Code
1
git clone https://code.csdn.net/wbo86/yii2_basic.git basic

// yii2.0 advance版

Select Code
1
git clone https://code.csdn.net/wbo86/yii2_advance.git advance

备注:注意YII框架安装后,需要配置服务器的环境才能够使用。请参考:http://www.yiichina.com/doc/guide/2.0/start-installation

ThinkPHP
PHP >= 5.4.0

版本1:thinkphp 3.2

Select Code
1
composer create-project --prefer-dist topthink/thinkphp tp3 // 被墙

被墙,使用国内的git源:

Select Code
1
git clone https://code.csdn.net/topthink2011/ThinkPHP.git tp3

版本2:thinkphp 5

Select Code
1
composer create-project topthink/think tp5 --prefer-dist

Laravel
PHP >= 5.5.9
storage 和 bootstrap/cache 目录必须让服务器有写入权限

版本1:Laravel 5.3.*

Select Code
1
composer create-project --prefer-dist laravel/laravel lar53 "5.3.*"

版本2:Laravel 5.2.*

Select Code
1
composer create-project --prefer-dist laravel/laravel lar52 "5.2.*"

版本3:Laravel 5.1.*

Select Code
1
composer create-project --prefer-dist laravel/laravel lar51 "5.1.*"

特殊权限设置:

Select Code
1
2
setfacl -R -m u:www:rwx /home/wwwrot/laravel
setfacl -R -m d:www:rwx /home/wwwrot/laravel

备注:此处的“/home/wwwrot/laravel”指的是你的项目的文件夹。

其他管理工具安装:

Nodejs:
http://nodejs.cn/download/

Composer:
http://docs.phpcomposer.com/

LNMP1.3一键安装Linux环境,配置Nginx运行ThinkPHP3.2

你是否遇见过:安装LNMP1.3环境后,运行ThinkPHP 3.2,只能打开首页,不能访问控制器,报404错误。

按照以下3步设置,即可解决。

ThinkPHP支持的URL模式有四种:普通模式、PATHINFO、REWRITE和兼容模式,系统默认的PATHINFO模式。

LNMP1.3 一键安装完成后,默认支持REWRITE,需要手动开启 PATHINFO。

第1步修改:php.ini文件
位置:/usr/local/php/etc/php.ini

搜索查找到:cgi.fix_pathinfo 配置项,默认为0,修改为1,开启 pathinfo 选项。

如图1:

第2步修改:nginx的配置文件 (笔者使用的是虚拟域名配置文件:/usr/local/nginx/conf/vhost/*.conf)

找到 server 的配置选项:

默认只有 include enable-php.conf,请注释掉;
然后添加一行:include enable-php-pathinfo.conf

如:

Select Code
1
2
3
#error_page   404   /404.html;
#include enable-php.conf;             # 注册这一行
include enable-php-pathinfo.conf;     # 加入这行

如图2:

继续修改,在添加下面配置信息:

Select Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
location ~ .php
{
    set $path_info "";
    set $real_script_name $fastcgi_script_name;
    #如果地址与引号内的正则表达式匹配
    if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
    #将文件地址赋值给变量 $real_script_name
    set $real_script_name $1;
    #将文件地址后的参数赋值给变量 $path_info
    set $path_info $2;
    }
    
    #配置fastcgi的一些参数
    fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
    fastcgi_param SCRIPT_NAME $real_script_name;
    fastcgi_param PATH_INFO $path_info;
}

在Nginx,可以通过在Nginx.conf中配置转发规则实现,解决其他不支持PATHINFO的WEB服务器环境。

#如果请求既不是一个文件,也不是一个目录,则执行一下重写规则

Select Code
1
2
3
4
5
6
7
if (!-e $request_filename)
{
	#地址作为将参数rewrite到index.php上。
	rewrite ^/(.*)$ /index.php/$1;
	#若是子目录则使用下面这句,将subdir改成目录名称即可。
	#rewrite ^/subdir/(.*)$ /subdir/index.php/$1;
}

官方出处:http://document.thinkphp.cn/manual_3_2.html#url_rewrite

第3步:重启LNMP环境,配置生效。

最终效果测试:
1. 去掉了 index.php
2. 可以访问控制器下的方法。
3. U 方法正确。

如图3:

参考:笔者配置文件示例:

Select Code
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
server
    {
        listen 80;
        #listen [::]:80;
        server_name tp32.com;
        index index.html index.htm index.php default.html default.htm default.php;
        root  /home/wwwroot/tp32.com;

        include other.conf;
        #error_page   404   /404.html;
        #include enable-php.conf;
        include enable-php-pathinfo.conf; #加入这行


        location ~ .php
        {
            set $path_info "";
            set $real_script_name $fastcgi_script_name;
            #如果地址与引号内的正则表达式匹配
            if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
            #将文件地址赋值给变量 $real_script_name
            set $real_script_name $1;
            #将文件地址后的参数赋值给变量 $path_info
            set $path_info $2;
            }
            
            #配置fastcgi的一些参数
            fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
            fastcgi_param SCRIPT_NAME $real_script_name;
            fastcgi_param PATH_INFO $path_info;
        }

        #如果请求既不是一个文件,也不是一个目录,则执行一下重写规则
        if (!-e $request_filename)
        {
            #地址作为将参数rewrite到index.php上。
            rewrite ^/(.*)$ /index.php/$1;
            #若是子目录则使用下面这句,将subdir改成目录名称即可。
            #rewrite ^/subdir/(.*)$ /subdir/index.php/$1;
        }

        access_log  /home/wwwlogs/tp32.com.log;
    }

参考:
http://www.thinkphp.cn/topic/3138.html