Nginx配置指定媒体类型文件强制下载

由于业务需要,在点击显示链接(如www.xxx.com/2015-01-15/xxx.png)显示媒体资源(如图片、视频、音频、文档),而在点击下载链接(如www.xxx.com/2015-01-15/xxx.png?download=true)请求静态资源时,强制下载而不是在浏览器中直接显示。可以采用nginx配置加前端js方法来实现。

1、配置NGINX配置、在nginx的站点配置server { } 里面添加如下:

location ~ .*\.(gif|jpg|jpeg|bmp|png|mp3|wma|mp4|swf|txt)$
 {
     if ( $query_string ~ "download=true$" )
     {
         add_header Content-Disposition "attachment; filename=$request_filename";
     }
 }

2、前端js 实现方法、在vue中定义方法、在下载按钮上调用即可:

// JS 方法、传入文件URL。点击事件上调用download方法即可
download (data) {
    if (!data) {
        return
    }
    let filename = data.replace(/(.+)[\\/]/,"");
    let url = data + "?download=true";
    let link = document.createElement('a')
    link.style.display = 'none'
    link.href = url
    link.setAttribute('download', filename)

    document.body.appendChild(link)
    link.click()
}

 

Linux命令行导出MySQL备份及定时批量导出

1、数据库导出

用命令行导出数据库

mysqldump -uDatabaseUserName -pPassword DataBaseName  > /home/backup/DataBaseName_$(date +%Y%m%d_%H%M%S).sql

导出并压缩为.gz

mysqldump -uDatabaseUserName -pPassword DataBaseName | gzip > /home/backup/DataBaseName_$(date +%Y%m%d_%H%M%S).sql.gz

2、导出脚本

创建脚本文件如 databaeBackup.sh。

vi /home/backup/databaeBackup.sh

脚本内容如下:

#!/bin/bash
mysqldump -uDatabaseUserName -pPassword DataBaseName | gzip > /home/backup/DataBaseName_$(date +%Y%m%d_%H%M%S).sql.gz

修改脚本权限使其可执行。

chmod u+x  ./databaeBackup.sh

3、定时任务

crontab -e

0 3 * * * * /home/backup/databaeBackup.sh

每天凌晨3点运行备份命令。

4、实时同步文件到另一台服务器

请参考本站文章 两台linux服务器之间同步文件

两台linux服务器之间同步文件

1、前提条件

服务器A为主服务器,服务器B为备份服务器。我们将服务器A的/home/backup/data 目录同步到B服务器的/home/orhon/backup/data/ 目录。

思路是在A服务器上通过inotify监听文件夹的变化、如果有变化就运行rsync命令同步到B服务器。B服务器上以守护进程deamon的形式运行rsync。

  1. 两台服务器必须都需要安装rsync软件。安装方法不讲了。
  2. 源服务器安装inotify软件。

2、源服务器上的配置和操作(本文中的A服务器)

  • 打开或创建备份相关文件夹,进入备份目录。
mkdir /home/backup & cd /home/backup
  •  安装inotify先查看服务器是否支持inotify
    ll /proc/sys/fs/inotify

    会有三个文件,这说明此服务器是支持 inotify的。可以yum源安装的,如epel源。

  • 创建同步任务脚本vi rsyncData.sh
#!/bin/bash
host=192.168.100.100
src=/home/backup/data
des=web
user=orhon
rsyncd_secrets=/home/backup/rsync.passwd
/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src \
| while read files
do
/usr/bin/rsync -zrtopg --delete --progress --password-file=$rsyncd_secrets $src $user@$host::$des
echo "${files} was rsynced" > /var/log/rsyncd.log 2>&1
done

# –delete 参数为本地删除的话远程也会被删除。

# rsyncd_secrets 参数为密码文件的路径,本文中将文件放到了备份相关的目录里了。

  • 创建同步文件所需要的密码文件,这样做是为了安全
touch /home/backup/rsync.passwd
echo 'newpassword' > /home/backup/rsync.passwd

注:这里的newpassword可以是任意字符

出于安全考虑要把此文件的权限改成600:

chmod 600 /home/backup/rsync.passwd

至此A服务器的改配置的项目基本完成,但是根据服务器和环境的不同可能会会出现不同的报错情况,如防火墙原因、读写权限、端口配置等,更多问题可以参考文章rsync 常见问题记录 进行查看。

 

3、备份服务器上的配置操作(本文中的B服务器)

  • 1、建立密码文件:
touch /etc/rsyncd.secrets
echo "webuser:newpassword" >/etc/rsyncd.secrets
chmod 600 /etc/rsyncd.secrets

同样要给此文件一个600的权限,注:在源服务器A建立的密码文件,只有密码,没有用户名;而在目标备份服务器B里建立的密码文件,用户名与密码都有。

  • 2、写rsync的配置文件:
[web]
path = /home/orhon/backup/data/
comment = Data base files
ignore errors
read only = no
write only = no
hosts allow = 192.168.100.103
hosts deny = *
list = false
uid = root
gid = root
auth users = orhon
secrets file = /etc/rsyncd.secrets
  • 3、目标备份服务器 启动 rsync (进程模式) (B服务器)
/usr/bin/rsync --daemon --config=/etc/rsyncd.conf
  • 查看rsync进程是否开启.
    ps -ef |grep rsync
    root     12450     1  0 10:50 ?        00:00:00 /usr/bin/rsync --daemon --config=/etc/rsyncd.conf
    root     13254 13234  0 15:04 pts/0    00:00:00 grep --color=auto rsyn

    说明已开启

  • 实现开机自启动rsync守护进程

使用 rsync –daemon 然后放到 /etc/rc.local中的最后一行即可.
使用 echo “rsync –daemon” >>/etc/rc.local  就行了。切记是 >>  不是>  .
然后使用tail -2 /etc/rc.local查看一下是否追加成功.

  • 4、源服务器启动同步脚本:
/usr/bin/rsyncData.sh &

 

到这里,所有的都已完成。可以到源服务器下的/home/backup/data 目录下建一个文件,然后再看一下目标服务器下的/home/orhon/backup/data/ 下是否有?

rsync 常见问题记录

rsync在使用中往往会报错误,综合自己亲身经验,总结几条错误的解决方案(IP以10.10.10.10代替):

错误一:

password file must not be other-accessible
continuing without password file
Password:
rsync客户端路径是否写错,权限设置不对,需要再次输入密码,客户端和服务端的密码文件都应该是600的权限才可以

错误二:

@ERROR: Unknown module ‘bak’
rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver= 3.0.3]
服务端server的配置中的[bak]名字和客户端client的10.10.10.10::bak不符

错误三:

rsync: failed to connect to 10.10.10.10: Connection timed out (110)
rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.6]
检查服务端server服务是否正常启动,检查端口防火墙,iptables打开873端口
如果服务端是windows server则在防火墙入站规则中增加873端口
如果服务端是Linux则先检查服务是否启动#ps aux | grep rsync
然后开启873端口#iptables -A INPUT -p tcp –dport 873 -j ACCEPT开启873端口
附:
安装rsync yum install rsync
启动服务/usr/bin/rsync –daemon
启动服务错误failed to create pid file /var/rsyncd.pid: File exists
看看提示服务错误的路径(这个路径不一定就是这个,看自己的报错路径)这里是/var/rsyncd.pid所以
rm -rf /var/rsyncd.pid;再重新启动Rsync服务
此时在看一下ps aux | grep rsync启动成功

错误四:

@ERROR: access denied to gmz88down from unknown (10.10.10.10)
rsync error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6]
看看是不是服务端server hosts allow限制了IP,把这里的IP加入到服务端server的hosts allow白名单中,windows rsync不能写多个allow,可以在一个allow中加多个IP,例:hosts allow=10.10.10.10 20.20.20.20

错误五:

@ERROR: chdir failed
rsync error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6]
服务端server的目录不存在或者没有权限(要同步的那个文件路径),安装windows rsync时候会创建一个SvcCWRSYNC用户,这个用户对要拷贝的目录没有权限,方法一,将这个用户给权限加入到目录中,方法二,修改这个用户隶属于的组,修改后要在管理中重启服务

错误六:

rsync error: error starting clie
nt-server protocol (code 5) at main.c(1524) [Receiver= 3.0.7 ]
/etc/rsyncd.conf配置文件内容有错误,检查下配置文件

错误七:

rsync: ch
own “” failed: Invalid argument (22)
权限无法复制,去掉同步权限的参数即可

错误八:

@ERROR: auth failed on module bak
rsync error: error starting client-server protocol (code 5) at main.c(1530) [receiver=3.0.6]
密码错误或服务器上是否有bak模块

错误九:

rsync: connection unexpectedly closed (5 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(600) [sender=3.0.6]
模块read only = no设置为no false

错误十:

@ERROR: invalid uid nobody
rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]
设置
uid =0
gid = 0

错误十一:

rsync: failed to connect to 10.10.10.10: No route to host (113)
rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.6]
防火墙原因

错误十二:

rsync: read error: Connection reset by peer (104)
rsync error: error in rsync protocol data stream (code 12) at io.c(759) [receiver=3.0.6]

/etc/rsyncd.conf配置文件不存在

错误十三:

rsync: Failed to exec ssh: No such file or directory (2)
rsync error: error in IPC code (code 14) at pipe.c(84) [receiver=3.0.6]
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: error in IPC code (code 14) at io.c(600) [receiver=3.0.6]

需要在客户端安装yum install -y openssh-clients即可

 

问题一:
@ERROR: chroot failed
rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]

原因:
服务器端的目录不存在或无权限,创建目录并修正权限可解决问题。

 

问题二:
@ERROR: auth failed on module tee
rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]

原因:
服务器端该模块(tee)需要验证用户名密码,但客户端没有提供正确的用户名密码,认证失败。
提供正确的用户名密码解决此问题。

 

问题三:
@ERROR: Unknown module ‘tee_nonexists’
rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]

原因:
服务器不存在指定模块。提供正确的模块名或在服务器端修改成你要的模块以解决问题。

 

问题四:
password file must not be other-accessible
continuing without password file
Password:
原因:
这是因为rsyncd.pwd rsyncd.secrets的权限不对,应该设置为600。如:chmod 600 rsyncd.pwd
问题五:
rsync: failed to connect to 218.107.243.2: No route to host (113)
rsync error: error in socket IO (code 10) at clientserver.c(104) [receiver=2.6.9]
原因:
对方没开机、防火墙阻挡、通过的网络上有防火墙阻挡,都有可能。关闭防火墙,其实就是把tcp udp的873端口打开。
问题六:
rsync error: error starting client-server protocol (code 5) at main.c(1524) [Receiver=3.0.7]
原因:
/etc/rsyncd.conf配置文件内容有错误。请正确核对配置文件。
问题七:
rsync: chown “” failed: Invalid argument (22)
原因:
权限无法复制。去掉同步权限的参数即可。(这种情况多见于Linux向Windows的时候)
 问题八:
@ERROR: daemon security issue — contact admin
rsync error: error starting client-server protocol (code 5) at main.c(1530) [sender=3.0.6]
原因:
同步的目录里面有软连接文件,需要服务器端的/etc/rsyncd.conf打开use chroot = yes。掠过软连接文件。

问题九:

ERROR: module is read only
rsync error: syntax or usage error (code 1) at main.c(747) [receiver=2.6.8]
rsync: connection unexpectedly closed (4 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(600) [sender=3.0.6]
解决: 提示打开了read only,将配置文件 read only = no

 

问题十:

cat /var/log/rsyncd.log

2011/12/14 11:58:37 [22377] name lookup failed for XX.XX.XX.XX: Name or service not known
2011/12/14 11:58:37 [22377] connect from UNKNOWN (XX.XX.XX.XX)
2011/12/14 11:58:37 [22377] rsync to html/ from unknown (XX.XX.XX.XX)

解决:需要在服务端这台机上上的/etc/hosts里面添加客户端机的ip和机器名

 

问题十一:

 

[root@Dell-R710 ~]# rsync -artuz -R –delete ./ 192.168.1.233::gex

rsync: failed to connect to 61.145.118.206: Connection refused (111)

rsync error: error in socket IO (code 10) at clientserver.c(124) [sender=3.0.6]

解决:

一、查看防火墙

二、查看服务端是否开启守护进程

ps ax|grep rsync

rsync –daemon –config=/etc/rsyncd.conf

#####################################################################

 

问题1:
在client上遇到问题:
rsync -auzv –progress –password-file=/etc/rsync.pas root@192.168.133.128::backup /home/
rsync: could not open password file “/etc/rsync.pas”: No such file or directory (2)
Password:
@ERROR: auth failed on module backup
rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]

遇到这个问题:client端没有设置/etc/rsync.pas这个文件,而在使用rsync命令的时候,加了这个参数–
password-file=/etc/rsync.pas

问题2:
rsync -auzv –progress –password-file=/etc/rsync.pas root@192.168.133.128::backup /home/
@ERROR: auth failed on module backup
rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]
遇到这个问题:client端已经设置/etc/rsync.pas这个文件,里面也设置了密码111111,和服务器一致,但是
服务器段设置有错误,服务器端应该设置/etc/rsync.pas  ,里面内容root:111111 ,这里登陆名不可缺少

问题3:
rsync -auzv –progress –password-file=/etc/rsync.pas root@192.168.133.128::backup /home/
@ERROR: chdir failed
rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]

遇到这个问题,是因为服务器端的/home/backup  其中backup这个目录并没有设置,所以提示:chdir failed

问题4:
rsync: write failed on “/home/backup2010/wensong”: No space left on device (28)
rsync error: error in file IO (code 11) at receiver.c(302) [receiver=3.0.7]
rsync: connection unexpectedly closed (2721 bytes received so far) [generator]
rsync error: error in rsync protocol data stream (code 12) at io.c(601) [generator=3.0.7]
磁盘空间不够,所以无法操作。
可以通过df /home/backup2010 来查看可用空间和已用空间

问题5:网络收集问题
1、权限问题
类似如下的提示:rsync: opendir “/kexue” (in dtsChannel) failed: Permission denied (13)注意查看同步的目录权限是否为755
2、time out
rsync: failed to connect to 203.100.192.66: Connection timed out (110)
rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.5]
检查服务器的端口netstat –tunlp,远程telnet测试。
3、服务未启动
rsync: failed to connect to 10.10.10.170: Connection refused (111)
rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.5]
启动服务:rsync –daemon –config=/etc/rsyncd.conf
4、磁盘空间满
rsync: recv_generator: mkdir “/teacherclubBackup/rsync……” failed: No space left on device (28)
*** Skipping any contents from this failed directory ***
5、Ctrl+C或者大量文件
rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(544) [receiver=3.0.5]
rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(544) [generator=3.0.5]

6、xnetid启动
rsync: read error: Connection reset by peer (104)
rsync error: error in rsync protocol data stream (code 12) at io.c(759) [receiver=3.0.5]
查看rsync日志
rsync: unable to open configuration file “/etc/rsyncd.conf”: No such file or directory
xnetid查找的配置文件位置默认是/etc下,根据具体情况创建软链接。例如:
ln -s /etc/rsyncd/rsyncd.conf /etc/rsyncd.conf
或者更改指定默认的配置文件路径,在/etc/xinetd.d/rsync配置文件中

参考链接:

1、https://blog.whsir.com/post-392.html

2、http://blog.51cto.com/71241/1007644

Linux centos 6/7安装反病毒软件ClamAV

Clam AntiVirus(ClamAV)是免费而且开放源代码的防毒软件,软件与病毒码的更新皆由社群免费发布。目前ClamAV主要是使用在由Linux、FreeBSD等Unix-like系统架设的邮件服务器上,提供电子邮件的病毒扫描服务。ClamAV本身是在文字接口下运作,但也有许多图形接口的前端工具可用,另外由于其开放源代码的特性,在Windows与Mac OS X平台都有其移植版。

#注:本文采用的安装方法是yum安装,版本为(0.99.2)。编译安装暂时不记录,后期再完善。

1、添加yum源,应为不管是centso6或centos7都官方的yum源里没有ClamAV的。所以需要手动添加。我们这里采用了比较常用的RPM yum源epel和webtatic。

CentOS/RHEL 7.x:

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

CentOS/RHEL 6.x:

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm

 

2、运行安装命令

yum install clamav  clamav-server clamav-data clamav-update clamav-filesystem clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd

yes继续安装,最后出现 Complete! 就安装完成。

3、配置Clam AntiVirus

vi /etc/clamd.conf  ← 修改clamd的配置文件
ArchiveBlockMax ← 找到这一行,在行首加上“#”(不把大容量的压缩文件看作被感染病毒的文件)
 ↓
#ArchiveBlockMax ← 变为此状态

### centos 6
User clamav  ← 找到这一行,在行首加上“#”(不允许一般用户控制)
 ↓
#User clamav  ← 变为此状态

### centos 
User clamscan  ← 找到这一行,在行首加上“#”(不允许一般用户控制)
 ↓
#User clamscan  ← 变为此状态

4、运行 Clam AntiVirus

chkconfig clamd on   ← 将其设置为自系统启动后启动
chkconfig --list clamd ← ← 查看开机启动设置
# clamd 0:off 1:off 2:on 3:on 4:on 5:on 6:off  ← 确认2--5为on的状态就OK

/etc/rc.d/init.d/clamd start  ← 启动clamd服务(运行Clam AntiVirus)
# Starting Clam AntiVirus Daemon:      [ OK ]  ← 启动成功

5、更新 Clam AntiVirus 的病毒库 安装后建议立即更新病毒库,以保证最新病毒的查杀。

freshclam  ← 更新clam的病毒库

 

6、病毒扫描
然后进行病毒扫描的测试,在这里,我们首先下载测试用的病毒文件。

clamdscan

clamadscan 可以带很多参数、如删除病毒文件、扫描路径、列出可以文件等,具体命令请用clamscan –-help 进行查询。

7、让病毒扫描定期运行

建立自动扫描脚本,如下:

vi scan.sh

centsos6:

#!/bin/bash
PATH=/usr/bin:/bin
CLAMSCANTMP=`mktemp`
clamdscan --recursive --remove / > $CLAMSCANTMP
[ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \
grep FOUND $CLAMSCANTMP | mail -s "Virus Found in `hostname`" root
rm -f $CLAMSCANTMP

centos 7

#!/bin/bash
PATH=/usr/bin:/bin
CLAMSCANTMP=`mktemp`
clamscan --recursive --remove / > $CLAMSCANTMP
[ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \
grep FOUND $CLAMSCANTMP | mail -s "Virus Found in `hostname`" root
rm -f $CLAMSCANTMP

 

chmod 700 scan.sh  ← 赋予脚本可被执行的权限
crontab -e   ← 编辑计划任务,添加如下行
00 03 * * * /root/scan.sh   ← 添加这一行,让其在每天3点钟执行扫描

 

参考文献:

1、 linux下的杀毒软件Clam AntiVirus安装与使用

 

 

 

 

 

 

 

 

 

 

 

 

# centos 7 安装启用

参考文档:http://blog.csdn.net/heiby/article/details/52136340

If you are installing ClamAV for the first time, you have to add a new user and group to your system:

groupadd clamav

useradd -g clamav -s /bin/false -c “Clam AntiVirus” clamav

1.建立源,epel-release

yum install -y epel-release (这是一个源)

yum -y update

2.安装clamav包

yum install clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd -y

3.设定clamav守護進程(Configuration of Clam daemon)

cp /usr/share/clamav/template/clamd.conf /etc/clamd.d/clamd.conf

vim /etc/clamd.d/clamd.conf

Example改为#Example

sed -i -e ‘s/^Example/#Example/’ /etc/clamd.d/clamd.conf(这是用命令行来为Example加#)

 

Configure SELinux for ClamAV.You had to write this command to get it working with SELinux:

setsebool -P antivirus_can_scan_system 1   (实际操作并没有用到此行)

4.1修改freshclam配置(Enable Freshclam)

cp /etc/freshclam.conf /etc/freshclam.conf.bak

vim /etc/freshclam.conf

Example改为#Example

sed -i -e ‘s/^Example/#Example/’ /etc/freshclam.conf (这是用命令行来为Example加#)

 

4.2 启用每日自动更新病毒库

freshclam通过/etc/cron.d/clamav-update来运行,默认情况下是禁止的,

vim /etc/sysconfig/freshclam

FRESHCLAM_DELAY=disabled-warn # REMOVE ME改为#FRESHCLAM_DELAY=disabled-warn # REMOVE ME

4.3配置扫描文件

Edit the configuration installed by the clamd-scanner package:

vim /etc/clamd.d/scan.conf

Example改为#Example                             sed -i -e ‘s/^Example/#Example/’ /etc/clamd.d/scan.conf (这是用命令行来为Example加#)

#LocalSocket /var/run/clamd.scan/clamd.sock改为LocalSocket /var/run/clamd.scan/clamd.sock   (85行)

资料:https://www.adminsys.ch/2015/08/21/installing-clamav-epel-centosred-hat-7-nightmare/

4.4建立“clam-freshclam.service”服务

vim /usr/lib/systemd/system/clam-freshclam.service

 

# Run the freshclam as daemon
[Unit]
Description = freshclam scanner
After = network.target
[Service]
Type = forking
ExecStart = /usr/bin/freshclam -d -c 4
Restart = on-failure
PrivateTmp = true
[Install]
WantedBy=multi-user.target

4.5启动更新病毒库服务

systemctl enable clam-freshclam.service
systemctl start clam-freshclam.service
systemctl status clam-freshclam.service

image

看到active字样,就表示clam-freshclam.service安装成功。

4.6 手动更新病毒库:

freshclam

*******************************************************************************************************************************

*******************************************************************************************************************************

*******************************************************************************************************************************

5.启动服务

cd /usr/lib/systemd/system

 

systemctl enable clamd@scan.service

会显示Created symlink from /etc/systemd/system/multi-user.target.wants/clamd@scan.service to /usr/lib/systemd/system/clamd@scan.service.

image

systemctl start clamd@scan.service

systemctl status clamd@scan.service

image

7.扫描home,-r选项表示包含子目录

# clamscan –infected –remove –recursive /home

备注

如果在手动更新病毒库的时候遇到错误,此时就要删除掉旧的镜像地址文件#rm -f /var/lib/clamav/mirrors.dat

再手动更新一次病毒库,#freshclam

 

 

laravel 开发工具及测试工具

1、编辑器提示工具 laravel-ide-helper

phpstorm和sublime是默认都不支持laravel的代码提示和追踪的、通过这个插件可以实现这些功能。

2、API测试工具 laravel-api-tester

类似于postman的工具、无需安装postman即可进行接口测试。

3、页面debug工具条 laravel-debugbar

页面工具条为页面debug工具。但是有时候部分页面是不需要这个debug工具的、如接头路由、接口测试工具页面等,这时候我们可以修改不配置文件 /config/debugbar.php 中的except 参数来实现。如下:

'except' => [
    'api/*', //所有接口地址
    'api-tester'  // 接口测试工具页面路由
],

laravel-debugger 截图:

740c8c8c-3ccb-11e4-8d9a-5a9e64f19351

用mamp Pro 的PHP版本替换Mac系统自带的PHP

思路是用mamp的PHP文件路径替换Mac系统自带的PHP的环境变量路径。

文章编写是的相关版本;

1、系统自带的PHP版本为5.6.30

php -v

PHP 5.6.30 (cli) (built: Feb  7 2017 16:06:52) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

2、mamp Pro 版本

mamp Pro 4.2.1 、PHP最高版本为 7.1.8

3、操作系统版本

macOS Sierra 10.12.4

操作步骤

1、获取mamp Pro的PHP 路径 一般是:在 /Applications/MAMP/bin/php/php7.1.8/bin/ ;

2、新建或编辑个人用户下的环境变量配置文件。

vim ~/.bash_profile

3、最后插入环境变量输出配置并保存(wq )。

export PATH="/Applications/MAMP/bin/php/php7.1.8/bin//bin:$PATH"

4、载入环境变量配置文件是更改生效。

source ~/.bash_profile

5、检查是否生效

➜  ~ php -v
PHP 7.1.8 (cli) (built: Aug 17 2017 11:34:56) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

 

  • 注:

如果终端用的是zsh 的话需要修改~/.zshrc 文件来生效。即把export PATH=”/Applications/MAMP/bin/php/php7.1.8/bin//bin:$PATH”  插入到vim ~/.zshrc 的最后面,再 source ~/.zshrc 即可。

 

nvm 使用淘宝镜像

由于网络原因 nvm 在安装的时候速度很慢,这个问题可以通过翻墙等方式去解决,也可使用国内镜像来加速安装,本文介绍的是通过淘宝镜像使用 nvm 安装 Node.js
指定 nvm 的镜像需要在环境配置中增加 NVM_NODEJS_ORG_MIRROR ,我这里的 terminal shell 是 oh-my-zsh 所以编辑环境文件:
Shell

vim ~/.zshrc

在最后增加:

export NVM_NODEJS_ORG_MIRROR=http://npm.taobao.org/mirrors/node

然后使环境生效:
Shell

source ~/.zshrc

如果怀疑环境配置文件是否生效可以将改配置打印出来
Shell

echo $NVM_NODEJS_ORG_MIRROR

能看到输出“http://npm.taobao.org/mirrors/node”即表示环境已经生效。

让Special-K系列破解工具运行在macOS sierra 10.12上

  • 最新补充:

国外大神已发布Special K for Sierra Utility工具,可以不用下面的手工操作,工具和操作方法请移步到:
http://bbs.feng.com/read-htm-tid-10814293.html

CORE Keygen系列注册机在macOS sierra 10.12(16A323)上运行方法请看这里
http://bbs.feng.com/read-htm-tid-10808347.html



大家都知道目前在macOS sierra 10.12里运行不了注册机,据说是因为签名问题,等那些大神们更新不知等到猴年马月,还是自己动手吧


需要准备的工作:
你的mac上要有Xcode,没有的话去App store里搜索下载,文件比较大,4G多



操作环境:macOS sierra 10.12(16A323)

这里先拿Path Finder 7.X  Special-K系列的注册机举例子

1,把需要注册Path Finder.app拖入/Applications

2,在Path Finder 7.X  [SP].app上点击右键——显示包含内容——Contents——MacOS
你会看到这两个文件  eyePatch,patcher

              

3,打开终端,按照下面的次序拖入文件(拖入次序十分关键)

patcher
Path Finder.app
eyePatch

Path Finder.app
回车
得到回复(没有这个回复说明没有注册成功)
code_alloc_xc_ios: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
如图


如果没有装Xcode,回车,结果是这样的,Path Finder.app注册失败。Xcode的作用就是提供提供程序运行的框架,让patcher和eyePatch可以像Path Finder 7.X  [SP].app那样运行在操作系统中


4,打开Path Finder.app,显示已注册

●要点,
Xcode很关键,整个过程没有运行
Path Finder 7.X  [SP].app,只是用了里面的两个关键文件,Xcode起到了自动填写注册码和破解的动作。App Store里下载完成以后,一定要先点击Xcode,运行安装。(Xcode尽量通过苹果官方渠道下载,以前XcodeGhost病毒就是一些开发者从非官方渠道下载Xcode感染的

Special-K注册机存放位置,一般在任何地方都可以,如果按照上面的方法不成功,请把Special-K注册机放到应用程序里,和需被注册程序同在/Applications

eyePatch,patcher和被破解程序拖入终端的次序很重要,一定要按照次序