vagrant 设置文件映射,将windows文件夹映射到linux中

首先,我们为什么要这样做?

我们用vagrant搭建起来了linux环境,也就是在windows下面虚拟出来的linux环境,但是,可以用如下的几种方式进行编辑:

1.如果我们用vim进行编辑,是非常费劲的,不提倡

2.通过编辑器的ftp直连,就像:

Linux 作为开发环境的方法分享

这种方式只能用notepad这种,只在连接的时候加载,而不能用phpstorm这种提前加载到本地,因为这种方式,用phpstorm会造成一定的问题,我的开发环境用的是阿里云主机,随便找个电脑安装个notepad就可以干活了,也就说这种方式比较适合远程。

3. 最通用的方式,就是本地window通过vagrant虚拟出来一个linux,然后,通过映射的方式,将windows下的文件夹映射到vagrant的linux中,然后,我们的编辑器(phpstorm)加载window下的这个文件夹,就可以了,当我们修改window下的这个文件夹,因为是挂载到linux的(有点像u盘的感觉),我们把nginx指向该文件夹,就可以进行开发了(上面说的有点啰嗦,不过意思说明白了),这也就是本文要讲述的方式。

另外需要注意的是:
vagrant虚拟的linux的文件是无法映射到windows中的,只能windows的文件映射到linux中,就像window环境中的某个文件夹挂载到vagrant 的 linux中的感觉,但是不能把linux的文件夹挂载到windows,具体操作如下:

打开Vagrantfile,修改配置内容如下(完全修改):

# -*- mode: ruby -*-
# vi: set ft=ruby :

# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|
  # The most common configuration options are documented and commented below.
  # For a complete reference, please see the online documentation at
  # https://docs.vagrantup.com.

  # Every Vagrant development environment requires a box. You can search for
  # boxes at https://atlas.hashicorp.com/search.
  config.vm.box = "centos-6.6-x86_64"
  
  config.vm.hostname = "dev"
  config.ssh.username = "root"
  config.ssh.password = "123456"
  config.ssh.insert_key = "true"
  config.ssh.shell = "bash -c 'BASH_ENV=/etc/profile exec bash'"
  config.ssh.forward_agent = true
  # Disable automatic box update checking. If you disable this, then
  # boxes will only be checked for updates when the user runs
  # `vagrant box outdated`. This is not recommended.
  # config.vm.box_check_update = false

  # Create a forwarded port mapping which allows access to a specific port
  # within the machine from a port on the host machine. In the example below,
  # accessing "localhost:8080" will access port 80 on the guest machine.
   config.vm.network "forwarded_port", guest: 80, host: 80

  # Create a private network, which allows host-only access to the machine
  # using a specific IP.
  config.vm.network "private_network", ip: "192.168.10.12"

  # Create a public network, which generally matched to bridged network.
  # Bridged networks make the machine appear as another physical device on
  # your network.
  config.vm.network "public_network"

  # Share an additional folder to the guest VM. The first argument is
  # the path on the host to the actual folder. The second argument is
  # the path on the guest to mount the folder. And the optional third
  # argument is a set of non-required options.
  # config.vm.synced_folder "../data", "/vagrant_data"
    config.vm.synced_folder "D:\\linux\\fecshop", "/www/web/develop/fecshop"
  # Provider-specific configuration so you can fine-tune various
  # backing providers for Vagrant. These expose provider-specific options.
  # Example for VirtualBox:
  #
  config.vm.provider "virtualbox" do |vb|
    # Display the VirtualBox GUI when booting the machine
    # vb.gui = true
    vb.name = "dev"
    # Customize the amount of memory on the VM:
    vb.memory = "2048"
  end
  #
  # View the documentation for the provider you are using for more
  # information on available options.

  # Define a Vagrant Push strategy for pushing to Atlas. Other push strategies
  # such as FTP and Heroku are also available. See the documentation at
  # https://docs.vagrantup.com/v2/push/atlas.html for more information.
  # config.push.define "atlas" do |push|
  #   push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME"
  # end

  # Enable provisioning with a shell script. Additional provisioners such as
  # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
  # documentation for more information about their specific syntax and use.
  # config.vm.provision "shell", inline: <<-SHELL
  #   apt-get update
  #   apt-get install -y apache2
  # SHELL
end

在上面的配置中可以看到如下:

config.vm.synced_folder “D:\\linux\\fecshop”, “/www/web/develop/fecshop”

第一个路径是window的路径,第二个是vagrant’中linux的路径

启动,如图:

 

注意:

1.如果 /www/web/develop/fecshop 这个文件夹在linux中存在,那么启动后,原来的文件夹将看不到。

2. 如果linux存在文件夹/www/web/develop/fecshop,您想把这个文件夹的内容复制到映射后的/www/web/develop/fecshop中,那么,您可以先将/www/web/develop/fecshop  改名为 /www/web/develop/fecshop_cp,然后,添加映射配置,重启(vagrant reload)vagrant,然后通过命令复制过去即可

\cp -rf /www/web/develop/fecshop_cp/*  /www/web/develop/fecshop/

 

安装 RabbitMQ – centos 6

 

1.安装Erlang环境

cd /usr/local/src/  
mkdir rabbitmq  
cd rabbitmq  
  
wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm  
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm  
  
rpm --import http://packages.erlang-solutions.com/rpm/erlang_solutions.asc  
  
sudo yum install erlang

2.安装RabbitMQ

上面都成功后 安装RabbitMQ

wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.1/rabbitmq-server-3.6.1-1.noarch.rpm
rpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
yum install rabbitmq-server-3.6.1-1.noarch.rpm

安装输出log如下:

Loaded plugins: security
Setting up Install Process
Examining rabbitmq-server-3.6.1-1.noarch.rpm: rabbitmq-server-3.6.1-1.noarch
Marking rabbitmq-server-3.6.1-1.noarch.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package rabbitmq-server.noarch 0:3.6.1-1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===================================================================================================================
 Package                    Arch              Version             Repository                                  Size
===================================================================================================================
Installing:
 rabbitmq-server            noarch            3.6.1-1             /rabbitmq-server-3.6.1-1.noarch            5.5 M

Transaction Summary
===================================================================================================================
Install       1 Package(s)

Total size: 5.5 M
Installed size: 5.5 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : rabbitmq-server-3.6.1-1.noarch                                                                  1/1 
  Verifying  : rabbitmq-server-3.6.1-1.noarch                                                                  1/1 

Installed:
  rabbitmq-server.noarch 0:3.6.1-1                                                                                 

Complete!

run the following command to allow SELinux to enable RabbitMQ service:

setsebool -P nis_enabled 1

开启端口,如果是本地测试,关掉iptables也可以

4369 (epmd), 25672 (Erlang distribution)
 5672, 5671 (AMQP 0-9-1 without and with TLS)
 15672 (if management plugin is enabled)
 61613, 61614 (if STOMP is enabled)
 1883, 8883 (if MQTT is enabled)

启动:

/etc/init.d/rabbitmq-server start

log如下:

[root@iZ942k2d5ezZ tools]# /etc/init.d/rabbitmq-server start
Starting rabbitmq-server: SUCCESS
rabbitmq-server.

加入浏览器界面:

rabbitmq-plugins enable rabbitmq_management
chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/

然后访问:

http://120.24.37.249:15672

就可以看到界面了:

RabbitMQ Management - Google Chrome_005

增加账户:

rabbitmqctl add_user mqadmin 123456
rabbitmqctl set_user_tags mqadmin administrator
rabbitmqctl set_permissions -p / mqadmin ".*" ".*" ".*"

 

上面的命令中

mqadmin就是登陆的账户

123456就是登陆的密码

然后就可以看到界面了,如下:

RabbitMQ Management

composer 默认地址改为中国镜像地址,以及中国镜像地址还原成默认地址

一、查看当前镜像地址

在命令行输入如下命令,即可查看镜像地址:

$ composer config -g repo.packagist
{"type":"composer","url":"https://packagist.org","allow_ssl_downgrade":true}

也可以使用 composer config -l -g 查看所有全局配置

下面有把地址修改为中国镜像,如果中国镜像出现了问题,那么您可以还原成官方的默认地址,下面是详细。

二、启用中国全量镜像服务:

启用中国全量镜像服务有两种方式,具体配置方法如下:

1. 系统全局配置:

即将配置信息添加到 Composer 的全局配置文件 config.json 中。修改composer的全局配置文件(推荐方式),打开命令行并执行如下命令:

默认地址改为中国镜像地址:

composer config -g repo.packagist composer https://packagist.phpcomposer.com

中国镜像地址还原成默认地址:(注意:这个是将中国镜像还原)

composer config -g repo.packagist composer https://packagist.org

 

2. 单个项目配置:

即将将配置信息添加到某个项目的 composer.json 文件中。修改当前项目的composer.json配置文件有两种方式,最后都是向文件中添加如下配置信息:

"repositories": {
    "packagist": {
        "type": "composer",
        "url": "https://packagist.phpcomposer.com"
    }
}

2.1 打开命令行并进入项目的根目录(也就是 composer.json 文件所在目录),执行如下命令:

默认地址改为中国镜像地址:

composer config repo.packagist composer https://packagist.phpcomposer.com

该命令将会在当前项目中的 composer.json 文件的末尾自动添加镜像的配置信息

中国镜像地址还原成默认地址:(注意:这个是将中国镜像还原)

composer config repo.packagist composer https://packagist.org

2.2 手动向composer.json文件中添加以上信息

默认地址改为中国镜像地址:

"repositories": {
    "packagist": {
        "type": "composer",
        "url": "https://packagist.phpcomposer.com"
    }
}

中国镜像地址还原成默认地址(注意:这个是将中国镜像还原)

将url的值改为:https://packagist.org

 

 

 

 

 

 

 

 

 

 

 

 

 

linux防火墙 – apf 安装 ,配置,使用

apf是一款比较好用的linxu防火墙,用它来设置iptables等是一个比较好的工具,线上一般免费版,很多使用这个,下面说一下他的安装与配置

wget http://www.rfxn.com/downloads/apf-current.tar.gz  
tar -xvzf apf-current.tar.gz  
cd apf-9.7-2/  
./install.sh  
  
[root@iZ942k2d5ezZ apf-9.7-2]# ./install.sh  
Installing APF 9.7-2: Completed.  
  
Installation Details:  
  Install path:         /etc/apf/  
  Config path:          /etc/apf/conf.apf  
  Executable path:      /usr/local/sbin/apf  
  
Other Details:  
  Listening TCP ports: 22,80,100,3306,6379,27017  
  Listening UDP ports: 123,636  
  Note: These ports are not auto-configured; they are simply presented for information purposes. You must manually configure all port options.

到上面就安装成功了

启动

/etc/init.d/apf start  
chkconfig apf on

二,配置apf

vim /etc/apf/conf.apf   一般按照下面的配置好,然后apf -f(或者apf -r) 刷新一下就行了

IG_TCP_CPORTS="21,22,80,443,3306,8080"   //设置服务器允许被访问的TCP端口    
IG_UDP_CPORTS="53"                       //设置服务器允许被访问的UDP端口    
EG_TCP_CPORTS="21,25,80,443,43,2089"     //设置服务器允许对外访问的TCP端口    
EG_UDP_CPORTS="20,21,53"                 //设置服务器允许对外访问的UDP端口    
   
DEVEL_MODE="1" 改为 DEVEL_MODE="0"    
DLIST_SPAMHAUS="0" 改为 DLIST_SPAMHAUS="1"    
DLIST_DSHIELD="0" 改为 DLIST_DSHIELD="1"

配置过程中要注意以下几点:
1,根据不同的服务器开放不同的端口,web服务器根mysql服务器开放的端口肯定不一样。
2,DEVEL_MODE=”1″表示在调试模式下,每五分钟重调配置,这样能避免因为错误的配置而使服务器崩溃。
3,设置只通许192.168.1.139远程连接22端口

// 在/etc/apf/allow_hosts.rules添加如下信息:    
tcp:in:d=22:s=192.168.1.139    
out:d=22:d=192.168.1.139    
    
// 在/etc/apf/deny_hosts.rules添加如下信息:    
tcp:in:d=22:s=0/0    
out:d=22:d=0/0

开始的时候,我以为只要在allow_hosts.rules里面加就行了,改过一后,我换了一个IP,已然可以连接,搞得我很无语。后在deny_hosts.rules加上了上面的规则后,在连接时就提示超时了。allow_hosts.rules和deny_hosts.rules里面都加了规则后,重起apf会提示配置成功的信息,偶然发现的。

apf(12234): {trust} allow outbound 192.168.1.139 to port 22    
apf(12234): {trust} allow inbound tcp 192.168.1.139 to port 22

三:apf常用命令

apf -s  // 启动APF防火墙    
apf -r  // 重启APF防火墙    
apf -f  // 刷新APF防火墙配置文件    
apf -l  // 列出APF的过虑规则    
apf -t  // APF的日志信息。    
apf -e  // 将域名解释加入信认规则    
apf -a  // 将IP/IP段添加到白名单    
apf -d  // 将IP/IP段添加到黑名单    
apf -u  // 将IP/IP段从白/黑名单中删除    
apf -o  // 将IP/IP段从白/黑名单中删除

常用端口:

21/tcp       //ftp    
22/tcp       //ssh    
25/tcp       //smtp    
53/udp       //dns    
80/tcp       //http    
110/tcp      //pop3    
143/tcp      //imap    
443/tcp      //https    
993/tcp      //imaps    
995/tcp      //pop3    
3306/tcp     //mysql    
5432/tcp     //postgresql

 

其他:
IG_TCP_CPORTS=”21,22,80,443,3306,8080″   //设置服务器允许被访问的TCP端口

IG_UDP_CPORTS=”53″                       //设置服务器允许被访问的UDP端口

EG_TCP_CPORTS=”21,25,80,443,43,2089″     //设置服务器允许对外访问的TCP端口

EG_UDP_CPORTS=”20,21,53″                 //设置服务器允许对外访问的UDP端口

DEVEL_MODE=”1″ 改为 DEVEL_MODE=”0″

DLIST_SPAMHAUS=”0″ 改为 DLIST_SPAMHAUS=”1″

DLIST_DSHIELD=”0″ 改为 DLIST_DSHIELD=”1″

配置过程中要注意以下几点:

1,根据不同的服务器开放不同的端口。

2,DEVEL_MODE=”1″表示在调试模式下,每五分钟重调配置,这样能避免因为错误的配置而使服务器崩溃。

3,设置只通许192.168.1.139远程连接22端口

// 在/etc/apf/allow_hosts.rules添加如下信息:

tcp:in:d=22:s=192.168.1.139

out:d=22:d=192.168.1.139

// 在/etc/apf/deny_hosts.rules添加如下信息:

tcp:in:d=22:s=0/0

out:d=22:d=0/0

开始的时候,我以为只要在allow_hosts.rules里面加就行了,改过一后,我换了一个IP,已然可以连接,搞得我很无语。后在 deny_hosts.rules加上了上面的规则后,在连接时就提示超时了。allow_hosts.rules和deny_hosts.rules里 面都加了规则后,重起apf会提示配置成功的信息,偶然发现的。

apf(12234): {trust} allow outbound 192.168.1.139 to port 22

apf(12234): {trust} allow inbound tcp 192.168.1.139 to port 22

三,apf的常用命令

apf -s  // 启动APF防火墙

apf -r  // 重启APF防火墙

apf -f  // 刷新APF防火墙配置文件

apf -l  // 列出APF的过虑规则

apf -t  // APF的日志信息。

apf -e  // 将域名解释加入信认规则

apf -a  // 将IP/IP段添加到白名单

apf -d  // 将IP/IP段添加到黑名单

apf -u  // 将IP/IP段从白/黑名单中删除

apf -o  // 将IP/IP段从白/黑名单中删除

四,常用端口列表

21/tcp       //ftp

22/tcp       //ssh

25/tcp       //smtp

53/udp       //dns

80/tcp       //http

110/tcp      //pop3

143/tcp      //imap

443/tcp      //https

993/tcp      //imaps

995/tcp      //pop3

3306/tcp     //mysql

5432/tcp     //postgresql