人生最重要的不是努力,而是方向

0%

安装所需的软件包

为了减少资源使用,我们将在xinetd下运行SVN 。

1
apt-get install xinetd subversion

创建SVN用户

1
adduser --system --home /var/svn --disabled-password --disabled-login --group svn

创建您的第一个存储库

1
svnadmin create /var/svn/repositories

运行以下命令以将设置插入到 /var/svn/repositories/conf/svnserve.conf

1
2
3
4
5
6
7
8
9
cat >/var/svn/repositories/conf/svnserve.conf <<EOF
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz

[sasl]
EOF

编辑/var/svn/repositories/conf/passwd以添加用户和密码。

插入:

1
2
[users]
jnjxmgl = 123456

编辑/var/svn/repositories/conf/authz以修改用户权限。

例如:

1
2
[/]
jnjxmgl = rw

注意: r =只读;rw =读写

运行以下命令以为Subversion创建xinetd配置文件 /etc/xinetd.d/svnserve

1
2
3
4
5
6
7
8
9
10
11
12
cat >/etc/xinetd.d/svnserve <<EOF
service svn
{
port = 3690
socket_type = stream
protocol = tcp
wait = no
user = svn
server = /usr/bin/svnserve
server_args = -i -r /var/svn/repositories
}
EOF

重新启动xinetd,您就完成了。

1
/etc/init.d/xinetd restart

检验

使用以下命令确保Subversion正在运行:

1
netstat -ant | grep ':3690'

如果正在运行Subversion,则应该看到类似以下内容:

1
tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN

如果安装了防火墙,请记住打开端口3690

现在,您可以使用svn://192.168.6.128/任何SVN客户端访问您的Subversion存储库。

安装httpd-tools软件包

1
yum install httpd-tools

创建一个.htpasswd文件

1
htpasswd -c /path/to/directory/.htpasswd username

.htpasswd文件将包含有关用户名和密码的信息。/path/to/directory是要为其设置身份验证的目录的完整路径。username我们将使用它进行身份验证-您可以选择所需的任何内容。系统将要求您输入该用户的密码。输入一个安全密码,然后再次输入相同的密码来确认。

我们已经成功创建了用于身份验证的用户,现在剩下要做的就是修改Nginx配置以使用.htpasswd我们刚刚创建的文件。

您可以在找到默认配置/etc/nginx/conf.d/default.conf

我们将在配置中添加2行。

1
2
3
4
5
6
7
8
9
10
server {
listen 80;
server_name example.com www.example.com;

location / {
root /path/to/directory/;
index index.php index.html index.htm;
auth_basic "Restricted area - This system is for the use of authorized users only!";
auth_basic_user_file /path/to/directory/.htpasswd
}

特别是,我们添加了以下几行:

1
2
auth_basic "Restricted area - This system is for the use of authorized users only";
auth_basic_user_file /path/to/directory/.htpasswd

第一行定义访问安全目录时登录框中显示的文本,第二行包含.htpasswd文件路径。

保存配置并使用以下命令重新启动Nginx服务

1
/etc/init.d/nginx restart

设定完成

访问您网站上的安全目录。您将看到一个如下所示的登录提示:

输入您的用户名和密码,您将被授予访问权限。

配置

若要为 SSL Vhost 启用 "HTTP2",请将 server 块的配置修改为如下

listen 443 ssl http2;

如果您希望强制将所有非 SSL (HTTP) 网站重定向到 HTTPS,请添加 Nginx 配置文件增加80站点

server {
    listen         80;
    listen         [::]:80;
    server_name    yourdomain;
    return 301 https://$host$request_uri;
}

现在可以重新启动Nginx,访问:https://yourdomain/

service nginx restart

windows下有很多数据库导入导出的工具,用他们来导入数据脚本着实方便;不过个版本之间的导入算法和方式不近相同,因此常常出现A工具导出的数据只能由A工具导入,如果使用其他的导入工具难免会出错

鉴于此,这里介绍一下使用mysqldump命令导出的数据库脚本如何在windows下导入

很多人知道linux系统下的导入方法,直接在终端(mysql运行目录要设置环境变量或者到/usr/local/bin等能直接访问的地方),格式如下

mysql -u root -p [数据库] < 数据库.sql

例:

mysql -u root -p test < test.sql

sql脚本文件的名字不一定和数据库名称一致,以下介绍的windows下导入也是一样,但默认情况下使用mysqldump导出的数据库脚本文件名和数据库一致

在windows导入

首先如果你没有设置环境变量到mysql的运行目录,你可以使用cd命令到mysql的bin目录,如果你设置了可已忽略

然后在cmd控制台或者powershell终端下执行如下命令

mysql -u root -p 

回车,右键黏贴你复制的密码,登陆到mysql

然后使用

create database [数据库];

创建数据库,如

create database test;

然后使用

use test;

切换数据库

最后执行

source c:/test.sql;

test.sql就是我们导出的数据库脚本(路径一般使用绝对路径),等待执行完毕即可;

Go(Golang)是谷歌开发的一种现代编程语言,专注于简单性和安全性。它已成为服务器端开发常用的语言。

首先,您需要下载 Golang。

cd #回到家目录

wget https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz  #下载 

你也可以去官网下载最新的 https://golang.org/dl/

现在,您需要解压缩文件。

tar zxf go1.8.3.linux-amd64.tar.gz

将解压后的go文件夹移动到"/opt"

mv go /opt/

添加环境变量路径,在终端下面的命令

mkdir /opt/gopkg
export GOPATH="/opt/gopkg" 
export GOROOT="/opt/go"

现在,您需要将它们添加到 "PATH" 变量中。

export PATH=$PATH:$GOPATH/bin:$GOROOT/bin 

以上操作是临时性的 ,只对当前终端有效, 如果希望更改是永久性的,则需要将以下命令放入文件中".profile"

打开文件

sudo nano ~/.profile #如过希望对所有用户永久可用,需要修改/etc/profile文件

在末尾插入以下内容

export GOPATH="/opt/gopkg" 
export GOROOT="/opt/go"
export PATH=$PATH:$GOPATH/bin:$GOROOT/bin 

验证安装

go version

会输出如下信息

go version go1.8.3 linux/amd64

创建名为 "hello.go"的文件

cd /opt/gopkg
nano hello.go

插入以下代码。

1
2
3
4
5
6
package main
import "fmt"

func main(){
fmt.Printf("Hello World\n");
}

您可以使用以下方法运行此测试脚本

go run hello.go

终端将会输出"Hello World"

在使用mysql的时候出现异常的数据丢失,查询不到的情况,根据mysql错误日志出现类似下面的错误提示

Table './test/users' is marked as crashed and should be repaired

解决办法:

在控制台执行如下命令

mysqlcheck -u root -p [数据库名] --auto-repair

示例

mysqlcheck -u root -p test --auto-repair

最后输入密码确认就可以了

会输出如下类似信息,等待执行完毕即可

Repairing tables
users.wp_commentmeta                       OK
users.wp_comments                          OK
users.wp_links                             OK
users.wp_options                           OK
users.wp_postmeta                          OK
users.wp_posts                             OK
users.wp_term_taxonomy                     OK
users.wp_terms                             OK

众所周知,阿里云的服务器都自带监控(AliYunDun/阿里云盾/安骑士教程),大家都不想自己的所作所为都被监控着,我们购买的vps用途大家也都懂得,所以我们需要让他的监控失效,卸载监控。

卸载AliYunDun

1
2
3
4
5
6
7
8
9
10
11
wget http://update.aegis.aliyun.com/download/uninstall.sh

chmod +x uninstall.sh

./uninstall.sh

wget http://update.aegis.aliyun.com/download/quartz_uninstall.sh

chmod +x quartz_uninstall.sh

./quartz_uninstall.sh

删除AliYunDun残留

1
2
3
4
5
pkill aliyun-service

rm -fr /etc/init.d/agentwatch /usr/sbin/aliyun-service

rm -rf /usr/local/aegis*

拒绝来自阿里云监控中新的通讯

1
2
3
4
5
6
7
8
9
10
11
iptables -I INPUT -s 140.205.201.0/28 -j DROP
iptables -I INPUT -s 140.205.201.16/29 -j DROP
iptables -I INPUT -s 140.205.201.32/28 -j DROP
iptables -I INPUT -s 140.205.225.192/29 -j DROP
iptables -I INPUT -s 140.205.225.200/30 -j DROP
iptables -I INPUT -s 140.205.225.184/29 -j DROP
iptables -I INPUT -s 140.205.225.183/32 -j DROP
iptables -I INPUT -s 140.205.225.206/32 -j DROP
iptables -I INPUT -s 140.205.225.205/32 -j DROP
iptables -I INPUT -s 140.205.225.195/32 -j DROP
iptables -I INPUT -s 140.205.225.204/32 -j DROP

目前已知memcache 和 memcached 不完全是一个东西,但两者的差异也并不是很大,毕竟memcached只是memcache的升级

操作方法(memcache篇)

打开php的配置文件php.ini,搜索"session.save_handler"关键词,找到如下位置

[Session]
; Handler used to store/retrieve data.
; http://php.net/session.save-handler
session.save_handler = files

将上面的"files"修改为"memcache"

再次搜索关键词"session.save_path",找到如下位置

session.save_path = "/tmp"

修改为

session.save_path = "tcp://127.0.0.1:11211"

如果你的redis建立在内网或者公网服务器,你需要将"127.0.0.1"修改为相应的公网或内网的ip地址

操作方法(memcached篇)

打开php的配置文件php.ini,搜索"session.save_handler"关键词,找到如下位置

[Session]
; Handler used to store/retrieve data.
; http://php.net/session.save-handler
session.save_handler = files

将上面的"files"修改为"memcached"

再次搜索关键词"session.save_path",找到如下位置

session.save_path = "/tmp"

修改为

session.save_path = "127.0.0.1:11211"

如果你的redis建立在内网或者公网服务器,你需要将"127.0.0.1"修改为相应的公网或内网的ip地址

总结

两者的配置主要区别在于"save_handler" 的参数必须为"['memcache','memcached']"中的一个,不能将"memcache"的配置应用到memcached,反之亦然

还有就是"memcached"不需要在设置"save_path"时指定"tcp://"

操作方法

打开php的配置文件php.ini,搜索"session.save_handler"关键词,找到如下位置

[Session]
; Handler used to store/retrieve data.
; http://php.net/session.save-handler
session.save_handler = files

将上面的"files"修改为"redis"

再次搜索关键词"session.save_path",找到如下位置

session.save_path = "/tmp"

修改为

session.save_path = "tcp://127.0.0.1:6379"

如果你的redis建立在内网或者公网服务器,你需要将"127.0.0.1"修改为相应的公网或内网的ip地址

部分情况下我们需要使用iis作为php的web服务器,nginx和apache的有没有喷子会说我菜的连nginx和apache都不会用

其实web服务器的优缺点是都存在的,nginx和apache也不是绝对的完美,iis也并非想象中的一无是处

第一步

闲话少说,开始第一步操作,从windows的iis官方网站下载url重写扩展,地址如下

https://www.iis.net/downloads/microsoft/url-rewrite

需要说明的是这个扩展的工作环境仅限于IIS7及以上版本(IIS 7, IIS 7.5, IIS 8, IIS 8.5, IIS 10)

注:如过你的服务器安装了如下图示的组件

你可以打开这个从里面搜索url关键词,找到如下图示然后选择右边的添加,最后单击安装

如过你没有上图所示的组件,你通过前面的链接,然后往下拉,选择简体中文版下载下载,如下图示:

将下载好的exe运行安装就行,直接下一步默认就行,这里不做演示,需要注意的是安装完成以后

第二步

既然选择了iis,说明你应该相对了解他的配置作用域,我们为了其它站点的url不至于也一起被重写,我们这里选择了特定的站点,然后单击右侧的url 重写,然后找到右上角的导入规则选项,如下图示:

我这里使用的是tp框架,我们可以按照上图所示的方法将apache的url重写规则文件通过图中的导入按钮,直接转化为iis可已识别的url从写,然后不要忘记点击图右上角的应用

到这里,iis配置url重写的就讲完了,像laraval等框架的url重写,同样可以使用,该方法进行处理