设置虚拟目录

通过一个主机ip设置不同的虚拟目录,实现在一台服务器上的多个项目,使用不同的域名访问。

第一步:修改apache的配置文件httpd.conf

# Virtual hosts
Include conf/extra/httpd-vhosts.conf  //将此项打开

第二步:找到apache安装的位置,修改文件httpd-vhosts.conf 【下例是多个虚拟目录情况】

<VirtualHost *:80>
 ServerAdmin bfztest@qq.com  //管理员邮箱
 DocumentRoot "D:\wamp\www\bfztest"  //项目根目录
 ServerName bfztest.com //自定义域名
ServerAlias bfztest.com  //必须跟自定义域名一致 
ErrorLog "D:\wamp\bin\logs\error.log" 
CustomLog "D:\wamp\bin\logs\access.log" common 
</VirtualHost> 

<VirtualHost *:80> 
ServerAdmin my@qq.com //管理员邮箱 
DocumentRoot "D:\wamp\www\myci" 
ServerName myci.com //第二个自定义域名 
ErrorLog "D:\wamp\bin\logs\error.log" 
CustomLog "D:\wamp\bin\logs\access.log" common 
</VirtualHost>

第三步:修改本地hosts文件,在最后加上这两句

127.0.0.1 bfztest.com
127.0.0.1 myci.com

php_screw的安装与使用

1.下载:http://sourceforge.net/projects/php-screw/files/

php文件通常以文本格式存贮在服务器端, 很容易被别人读到源代码, 为了对源代码进行保护, 可以采用对源代
码进行加密的方式.要实现该功能需要两部分:一是加密程序,实现对PHP文件的加密. 另一个就是对加密过的PHP
文件进行解析, 以得到运行结果. 前者的实现比较简单, 就是一程序而已. 后者的实现大部分都是通过php
module的形式来实现的.
php_screw(螺丝钉)可以实现以上的功能.

2.安装:
安装的目的其实就是产生两个文件:一个是用于加密PHP文件的screw, 另一个就是php加载的解析模块
php_screw.so

# tar zxf php_screw-1.5.tar.gz
# cd php_screw-1.5

注:每个加密的文件头部都一个很明显的字符串PM9SCREW, 这样很容易被人猜到是用screw加密的
这个问题的解决需要在安装的第一步就开始. 该标识串在源码的php_screw.h中. 在编译之前, 可以更改这个字
符串, 例如,更改为PeterHu, 相应的下面的长度就不再是10了, 而是\tPeterHu\t,一共7个了.
# /usr/local/php/bin/phpize # ./configure –with-php-config=/usr/local/php/bin/php-config # make && make install 这样, 解析用的php_screw.so就生成了. 接下来要得到加密用的screw
# cd php_screw-1.5/tools # make 这样就生成了screw了. 如果要加密一个lx.php文件, 则: screw lx.php, lx.php就变成加密的了, 原来明文的 lx.php被改名为lx.php.screw 例:/php_screw-1.5/tools/screw /usr/local/apache/htdocs/test.php 为了方便可以( # cp /php_screw-1.5/tools/screw /usr/bin/)

3.修改php.ini配置
接下来的任务就应该是加载php_screw.so模块了,
首先, 将该文件COPY到module目录下, 具体是哪个目录,可以参见/etc/php.ini配置文件中的extension_dir
项,RHEL 5中为/usr/lib/php/modules
通过修改/usr/local/php/etc/php.ini文件, 增加了一句extension=php_screw.so, 重启php-fpm后就成
功了
4.测试:
编写一个hello, world程序,文件名为hello.php如下:

<?
echo “Hello,world”;
?>

用php hello.php测试程序是否能成功显示, 成功显示后, 用screw对其进行加密(screw helllo.php), 然后
cat一下该php文件, 发现已经不是文本的了, 变成了许多乱字符, 说明加秘成功, 然后再php hello.php, 如
果能正常显示hello,world, 则说明加密的解析也没有问题了, 一切就算OK了

Linux tail命令

tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容.
1.命令格式;

tail[必要参数][选择参数][文件]

2.命令功能:
用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
3.命令参数:

-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示行数
--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束. 
-q, --quiet, --silent 从不输出给出文件名的首部 
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

4.使用实例:

实例1:显示文件末尾内容
命令:
tail -n 5 log2014.log
输出:
[root@localhost test]# tail -n 5 log2014.log 
2014-09
2014-10
2014-11
2014-12
==============================[root@localhost test]#
说明:
显示文件最后5行内容
实例2:循环查看文件内容
命令:
tail -f test.log
输出:
[root@localhost ~]# ping 192.168.120.204 > test.log &
[1] 11891[root@localhost ~]# tail -f test.log 
PING 192.168.120.204 (192.168.120.204) 56(84) bytes of data.
bytes from 192.168.120.204: icmp_seq=1 ttl=64 time=0.038 ms
bytes from 192.168.120.204: icmp_seq=2 ttl=64 time=0.036 ms
bytes from 192.168.120.204: icmp_seq=3 ttl=64 time=0.033 ms
bytes from 192.168.120.204: icmp_seq=4 ttl=64 time=0.027 ms
bytes from 192.168.120.204: icmp_seq=5 ttl=64 time=0.032 ms
bytes from 192.168.120.204: icmp_seq=6 ttl=64 time=0.026 ms
bytes from 192.168.120.204: icmp_seq=7 ttl=64 time=0.030 ms
bytes from 192.168.120.204: icmp_seq=8 ttl=64 time=0.029 ms
bytes from 192.168.120.204: icmp_seq=9 ttl=64 time=0.044 ms
bytes from 192.168.120.204: icmp_seq=10 ttl=64 time=0.033 ms
bytes from 192.168.120.204: icmp_seq=11 ttl=64 time=0.027 ms
[root@localhost ~]#
说明:
ping 192.168.120.204 > test.log & //在后台ping远程主机。并输出文件到test.log;这种做法也使用于一个以上的档案监视。用Ctrl+c来终止。

实例3:从第5行开始显示文件

命令:
tail -n +5 log2014.log
输出:
[root@localhost test]# cat log2014.log 
2014-01
2014-02
2014-03
2014-04
2014-05
2014-06
2014-07
2014-08
2014-09
2014-10
2014-11
2014-12
==============================
[root@localhost test]# tail -n +5 log2014.log
2014-05
2014-06
2014-07
2014-08
2014-09
2014-10
2014-11
2014-12
==============================

Liunx 下安装 php_screw 扩展

php_screw 是一个 php 源代码加密扩展。首先来看一下 php_screw 在liunx下是如何安装的
首先 去源完整下载 安装包,现在的最新版是 1.5,我们就用1.5 来做个实例

如果有最新版,可以在 http://sourceforge.net/projects/php-screw/files/php-screw/ 查看,下载地址也可以更新哦

开始下载
wget http://sourceforge.net/projects/php-screw/files/latest/download?source=files

tar -zxvf php_screw-1.5.tar.gz
cd php_screw-1.5

/usr/local/php/bin/phpize (我的php安装路径是这个 /usr/local/php,按自己php安装路径来执行)
输出:
Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100525
Zend Extension Api No: 220100525
./configure –with-php-config=/usr/local/php/bin/php-config (我的php安装路径是这个 /usr/local/php,按自己php安装路径来执行)
make && make install

执行以上命令如果出现 :

/root/php_screw-1.5/php_screw.c: In function ‘zm_startup_php_screw’:

/root/php_screw-1.5/php_screw.c:124: error: ‘struct _zend_compiler_globals’ has no member named ‘extended_info’
/root/php_screw-1.5/php_screw.c: In function ‘zm_shutdown_php_screw’:
/root/php_screw-1.5/php_screw.c:133: error: ‘struct _zend_compiler_globals’ has no member named ‘extended_info’
make: *** [php_screw.lo] Error 1
这些信息时:需要执行一下命令

vi php_screw.c

将 124行,133行 的
CG(extended_info) = 1;
修改为:
CG(compiler_options) |= ZEND_COMPILE_EXTENDED_INFO;

然后在 执行

make && make install
执行正常后 生成 so文件

在php.ini 文件中 添加
extension=php_screw.so

然后重启 php 重启 应用服务器。

接下来要得到加密用的screw

1. 进入源码的tools目录

2. 执行 make

就生成了screw
加密文件 执行如下命令:

/源码目录/tools/screw 要加密的php文件名
执行后输出:

Success Crypting(要加密的php文件名)
这样 加密就成功了
你的没有加密的php文件 会保存到当前目录里,名字为 :要加密的php文件名.screw

整个目录下的文件加密需要用如下命令: 支持子目录
find . -name “*.php” -exec /源码目录/tools/screw {} \;

ok 搞定

Linux授权某个用户对某个目录有读写的权限

针对特定的某一个用户设置文件或目录权限,用setfacl。

首先打开文件系统的acl功能,在挂载参数添加acl,再保存退出,比如/home分区:

vim /etc/fstab 

/dev/sda2           /home           ext3    defaults,acl      1 2

重新挂载:

mount -o remount /dev/sda2

然后,

setfacl -R -m u:username:rwx your_file_or_fir

如setfacl -R -m u:zrp:rwx /home/www

查看用

getfacl your_file_or_fir