Ubuntu 12.04 LTS 搭建svn,mysql,apache过程

1.apt-get install subversion libapache2-svn libapache2-mod-auth-mysql apache2 mysql-server mysql-client

2.mysql认证

a2enmod auth_mysql

启用rewrite

sudo php5enmod mcrypt(启用)

a2enmod rewrite

3.apache添加

ServerTokens Prod
ServerSignature Off
ServerName 127.0.0.1#禁止恶意解析
<VirtualHost *:80>
DocumentRoot /var/www/error
ServerName 127.0.0.1
<Directory /var/www/error>
Options -Indexes FollowSymLinks
AllowOverride All
Order Allow,Deny
Deny from all
</Directory>
</VirtualHost>
# Include the virtual host configurations:
Include sites-enabled/*.conf

svn配置

<VirtualHost *:80>
ServerName svn.phpfs.com
DocumentRoot /var/www/svn/svn/
<Directory /var/www/svn/svn/>
order allow,deny
Deny from all
</Directory>
Include svn/*.conf
</VirtualHost>

#svn/www.conf

<Location /www>
DAV svn
SVNPath /var/www/svn/www
Authtype Basic
AuthName ‘SVN’
Auth_MySQL on
Auth_MySQL_Authoritative on
Auth_MySQL_Host localhost
Auth_MySQL_DB svn
Auth_MySQL_User svn
Auth_MySQL_Password 123456
Auth_MySQL_Password_Table user
Auth_MySQL_Username_Field username
Auth_MySQL_Password_Field password
Auth_MySQL_Empty_Passwords Off
Auth_MySQL_Encrypted_Passwords on
Auth_MySQL_Encryption_Types PHP_MD5
AuthBasicAuthoritative Off
AuthUserFile /dev/null
Require valid-user
</Location>

##svn认证用户表

CREATE TABLE IF NOT EXISTS `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(200) NOT NULL,
`password` varchar(32) NOT NULL,
`intro` varchar(200) NOT NULL,
PRIMARY KEY (`id`),
KEY `username` (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

apache防盗链

#防盗链

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !phpfs.com [NC]
RewriteRule .*.(gif|jpg|png)$ http://www.phpfs.com/ [R,NC,L]

第一行是开启

第二行是允许空的http_pefferer访问,这样设置是因为有的使用代理的就没有这个了。所以大部分网站还是允许用代理访问的!

第三个仅仅允许phpf.com网站访问!

第四行是防盗链gif,jpg,png图片指向了首页

其中nc是不区分大小写,r是重定向,l是最后不再匹配其他

如果是其他格式可以在(git|jpg|png)中添加即可

图片延迟加载

官网:http://www.appelsiini.net/projects/lazyload

使用例子:http://demo.phpfs.com/lazyload/

代码下载:lazyload

代码解析


$(function(){
	var ERROR_IMG = './img/image_err.gif';
	var LOADER_IMG = './img/lazy_loading.gif';
	$("img").one("error", function() {
		$(this).attr("src", ERROR_IMG);
	});
	$.each($("img"), function(i, n) {
		if ($(n).attr("src") == '')
			$(n).attr("src", ERROR_IMG);
	});
	$(".lazy").lazyload({
		placeholder : LOADER_IMG,//图片提前占位 
		threshold : 0,//参数:threshold,值为数字,代表页面高度.如设置为200,表示滚动条在离目标位置还有200的高度时就开始加载图片,可以做到不让用户察觉.
		event : "scroll",//触发事件
		effect : "fadeIn",//图片加载效果
		failurelimit : 10
//参数:failurelimit,值为数字.lazyload默认在找到第一张不在可见区域里的图片时则不再继续加载,
//但当HTML容器混乱的时候可能出现可见区域内图片并没加载出来的情况,failurelimit意在加载N张可见区域外的图片,以避免出现这个问题
	});
});

 

Packer JavaScript en PHP

官网:http://joliclic.free.fr/php/javascript-packer/en/

例子:code

pack();
file_put_contents($out,$append_content); */
//加密多个文件
$js_arr = array("./index.js", './index1.js');
$out = './encode.js';
$content = "";
foreach($js_arr as $v) {
	$append_content = file_get_contents($v)."\r\n";
	$packer = new JavaScriptPacker($append_content);
	$append_content = $packer->pack();
	$content .= $append_content;
}
file_put_contents($out,$content);
?>

 

apache禁止恶意解析

1.apache配置加载的时候把ip放在最前面即可

<VirtualHost *:80>
DocumentRoot /var/www/
ServerName 127.0.0.1
<Directory /var/www>
Options -Indexes FollowSymLinks
AllowOverride All
Order Allow,Deny
Deny from all
</Directory>
</VirtualHost>

Include sites-enabled/*.conf

这样sites-enabled下是所有网站的解析信息

SCWS中文分词

写在前面:http://www.xunsearch.com/scws/index.php

私人定制:scws

上面那个压缩包是在thinkphp中使用的!将swcs文件夹放在Vendor目录下;备注:我用的require_once引入的!因为verdor怎么都不能引入!!!!

那Words的类可以放在自己的扩展包,用的时候引入即可!比如我的放在COM目录,那么用的时候导入

使用例子:

$str = ‘我是Joyous,我喜欢PHP,喜欢计算机’;

$words = Words::segment($str);

分词结果:

Array
(
    [0] => 我喜欢
    [1] => 计算机
    [2] => 喜欢
    [3] => Joyous
    [4] => PHP
)

svn钩子用法

要点:需要post-commit具有执行权限

chmod +x ./post-commit

需要将svn的目录给www-data

chown -R www-data:www-data ./test

重要的一点!!!

www-data根目录要写入的权限!

等钩子写好了。先用执行一次

备注:钩子内容

#!/bin/bash
svn update /var/www/test

window安装memcache

memcache 下载(这个是64位的)

1.解压到

D:\memcached

2.进入cmd

 

11212

 

依次执行

memcached.exe -d install

memcache.exe -d start

这样memchae就安装到系统服务当中,并启动了memcache

php扩展可以从这里下载:

http://downloads.php.net/pierre/

注意版本和编译的区别~

如果安装完毕。可以重启apache。

测试代码如下:

$mem = new Memcache;
$mem->connect('127.0.0.1', 11211);
$mem->set('key1', 'This is first value', 0, 60);
var_dump($mem->get('key1'));

 

关于ftp限制用户到自己家目录

写在前面:

ftp是有版本的区分的!

老版本可以参考这个:http://blog.phpfs.com/archives/244.html

新版的我用上面那个怎么都不可以,后来是这样解决的

1.useradd -d /var/www -s /bin/bash -G www-data -g www-data

说明:-d是指定家目录 -s指定用户用的bash -G是附属组 -g是所在群组,其中我的网站程序都是www-data用户在跑

2.chown -R root:root /var

这一步的作用就是将www的../和./都给root,到/var/目录执行ll

看到./和../都是root用户以及群组(特别重要)

3.这样会不会www-data没有权限写入呢?

别担心,你在/var/www/建立一个网站目录test,这样把test给www-data即可!

chown -R www-data:www-data /var/www/test

这样登录就可以让ftp用户锁定到自己的根目录了!

核对:

1.cat /etc/passwd |grep Joyous

Joyous:x:1000:33:www-data:/alidata/www:/bin/bash

2.ll /var/

drwxr-xr-x 4 root root 4096 Jul 8 16:35 ./
drwxr-xr-x 25 root root 4096 Jul 8 15:19 ../
drwxr-xr-x 2 www-data root 4096 Jul 8 15:38 logs/
drwxrwxr-x 5 root root 4096 Jul 8 16:39 www/

3.ll /var/www/

drwxrwxr-x 5 root root 4096 Jul 8 16:39 ./
drwxr-xr-x 4 root root 4096 Jul 8 16:35 ../
drwxrwxr-x 15 www-data www-data 4096 Jul 8 15:35 test/