使用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

屌炸天:vim 编辑器安装 NERD tree 补丁,显示目录树

既然要在Linux下做开发,当然少不了VIM的使用,今天介绍的这款显示目录树插件,可以解决你想在vim中实现类似Sublime中左边栏显示项目目录文件夹的功能!

NERD tree 插件下载地址:http://www.vim.org/scripts/script.php?script_id=1658

插件安装方法:在 ~/.vim 目录下,解压下载的压缩包。

Unzip the archive into your ~/.vim directory.
That should put NERD_tree.vim in ~/.vim/plugin and NERD_tree.txt in ~/.vim/doc.

搭配快捷键:
ctrl + z // 按2次,让 NERD tree 在后台工作
fg // 恢复到前台

:NEDRTree // 进入你的项目文件夹,打开vim编辑器,在vim编辑器的底行输入该命令,显示目录树

最终实现效果:

ab模拟压力测试,iptables防火墙限制同一IP的访问

提示:RPM包安装的apache自带ab命令。

(1) 在客户机上用命令ab命令进行压力测试

Select Code
1
2
ab -n 100000 -c 40 http://106.14.41.112/index.html
# -n 总请求数 -c 每次并发的连接数

(2) 观察服务器的连接数、性能情况

Select Code
1
2
3
4
5
w
# 查看负载情况

netstat -an|grep 80|grep 220.115.189.54|wc -l
# httpd请求数

(3) 加入iptables的规则,来限制对http 80端口的访问

Select Code
1
2
iptables -I INPUT -p tcp --dport 80 -s 220.115.189.54 -m connlimit --connlimit-above 10 -j REJECT
# 控制单个ip的并发访问数量

(4) 在客户端,再一次执行ab命令,查看结果:

Select Code
1
2
3
4
5
6
7
[root@localhost /]# ab -n 1000000 -c 100 http://106.14.41.112/ecshop/index.php
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 106.14.41.112 (be patient)
apr_socket_recv: Connection refused (111)