centos下Samba配置 解决没有权限问题

2012-7-29 foooy linux

1、安装samba(CentOS Linux):
yum install samba system-config-samba samba-client samba-common
2、创建www账号 
/usr/sbin/groupadd www
/usr/sbin/useradd -g www www
mkdir -p /data/
chown -R www:www /data/
chmod 777 /data/
cat /etc/passwd | mksmbpasswd.sh> /etc/samba/smbpasswd
3、创建samba配置文件
mv -f /etc/samba/smb.conf /etc/samba/smb.conf.bak
vim /etc/samba/smb.conf
输入以下内容:
[global]
server string = Samba Server
security = user  //如果需要匿名访问这个修改成share,下文的net目录就可以匿名访问
encrypt passwords = yes 
smb passwd file = /etc/samba/smbpasswd
[net]
public = yes
path = /data/net
[web]
workgroup = www
netbios name = www
path = /data/ 
browseable = yes
writeable = yes

4、为samba用户www设立一个密码:

smbpasswd -a www

 

5、启动samba:

/sbin/service smb start


6添加到系统启动

vim /etc/rc.d/rc.local

末行加入

/etc/init.d/smb restart

7、在iptables中139端口,或者关闭iptables, /sbin/service iptables stop

 

8、在我的电脑上右键--映射网络驱动器,输入samba服务器的ip,输入www用户名和设置的密码,即可进入,如果提示没有权限可能是selinux问题,处理方法见  关闭SELinux的两种方法

 

断开共享连接cmd命令

net use * /del

评论(0) 浏览(265528)

nginx上传模块nginx_upload_module使用

2012-7-27 foooy Nginx

以下在nginx1.2.7上测试通过

1、安装模块

cd /data/software
wget http://www.grid.net.ru/nginx/download/nginx_upload_module-2.0.12.tar.gz
或者在https://github.com/vkholodkov/nginx-upload-module/tree/2.2下载
tar zxvf nginx_upload_module-2.0.12.tar.gz
进入nginx源码目录 
./configure --with-http_stub_status_module \ --add-module=/data/software/nginx_upload_module-2.0.12
make#新增模块,不用make install
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp ./objs/nginx /usr/local/nginx/sbin/nginx

2、修改配置文件,在server中增加一下内容

        location /upload {
            upload_pass   /info.php;#上传完成后端接受处理文件
            upload_store /data/uptmp;#上传文件夹
            upload_limit_rate 1024k;# 限制上传速度
            upload_set_form_field "${upload_field_name}_name" $upload_file_name;#文件名称
            upload_set_form_field "${upload_field_name}_content_type" $upload_content_type;#文件类型
            upload_set_form_field "${upload_field_name}_path" $upload_tmp_path;#上传到的路径
            upload_aggregate_form_field "${upload_field_name}_md5" $upload_file_md5;#md5
            upload_aggregate_form_field "${upload_field_name}_size" $upload_file_size;#文件大小
            upload_pass_form_field "^submit$|^description$";
            #如果希望把所有的表单字段都传给后端可以用upload_pass_form_field "^.*$";
        }

 

3、前端代码

up.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>无标题文档</title>
</head>
<body>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<form name="upload" method="POST" enctype="multipart/form-data" action="/upload"><!--提交到上面的/upload-->
<input type="file" name="file"><br>
<input type="submit" name="submit" value="Upload">
</form>
</body>
</html>
info.php
<?php
    header("Content-Type:text/html; charset=utf-8");
    print_r($_POST);

上传会返回如下图数据

点击查看原图

标签: linux centos api

评论(5) 浏览(40756)

php判断文件类型

2012-7-27 foooy PHP

<?php
/**
* 读取文件前几个字节 判断文件类型
*
* @return String
*/
function checkTitle($filename) {
	$file = fopen ( $filename, rb );
	$bin = fread ( $file, 2 ); // 只读2字节
	fclose ( $file );
	$strInfo = @unpack ( c2chars, $bin );
	$typeCode = intval ( $strInfo ['chars1'] . $strInfo ['chars2'] );
	switch ($typeCode) {
		case 7790 :
			$fileType = exe;
			break;
		case 7784 :
			$fileType = midi;
			break;
		case 8297 :
			$fileType = rar;
			break;
		case 255216 :
			$fileType = jpg;
			break;
		case 7173 :
			$fileType = gif;
			break;
		case 6677 :
			$fileType = bmp;
			break;
		case 13780 :
			$fileType = png;
			break;
		default :
			$fileType = unknown . $typeCode;
	}
	// Fix
	if ($strInfo ['chars1'] == - 1 && $strInfo ['chars2'] == - 40) {
		return jpg;
	}
	if ($strInfo ['chars1'] == - 119 && $strInfo ['chars2'] == 80) {
		return png;
	}
	return $fileType;
}
echo checkTitle('err.gif');

评论(0) 浏览(266875)

nginx X-Accel-Redirect文件下载控制

2012-7-24 foooy Nginx

1、nginx的配置文件里添加下面的配置信息:

location /upfile {#upfile文件目录名
     alias /data/wwwroot/foooy/upfile;#文件绝对路径
     internal;#只供nginx内部访问
}

重启nginx,访问upfile下文件,应该就是404了

2、php代码 down.php

<?php
        //这里可以写权限控制。。。。。
	header("Content-Type: application/force-download");//说明是一个下载请求
	header('Accept-Range : byte ');//文件单位,貌似可有可无
	header('Accept-Length: 3428');//文件长度,貌似可有可无
	header('Content-Disposition: attachment; filename=100.pdf');//保存文件名
	header("X-Accel-Redirect: /upfile/pdf/100.pdf");//nginx重定向请求,/upfile/定向到是nginx配置文件中的/data/wwwroot/foooy/upfile 

3、访问down.php应该就可以下载到100.pdf文件。

 

 

评论(0) 浏览(45392)

nginx conf 配置文件中的变量大全 可用变量列表及说明

2012-7-24 foooy Nginx

$args #这个变量等于请求行中的参数。
$content_length #请求头中的Content-length字段。
$content_type #请求头中的Content-Type字段。
$document_root #当前请求在root指令中指定的值。
$host #请求主机头字段,否则为服务器名称。
$http_user_agent #客户端agent信息
$http_cookie #客户端cookie信息
$limit_rate #这个变量可以限制连接速率。
$request_body_file #客户端请求主体信息的临时文件名。
$request_method #客户端请求的动作,通常为GET或POST。
$remote_addr #客户端的IP地址。
$remote_port #客户端的端口。
$remote_user #已经经过Auth Basic Module验证的用户名。
$request_filename #当前请求的文件路径,由root或alias指令与URI请求生成。
$query_string #与$args相同。
$scheme #HTTP方法(如http,https)。
$server_protocol #请求使用的协议,通常是HTTP/1.0或HTTP/1.1。
$server_addr #服务器地址,在完成一次系统调用后可以确定这个值。
$server_name #服务器名称。
$server_port #请求到达服务器的端口号。
$request_uri #包含请求参数的原始URI,不包含主机名,如:”/foo/bar.php?arg=baz”。
$uri #不带请求参数的当前URI,$uri不包含主机名,如”/foo/bar.html”。
$document_uri #与$uri相同。

评论(0) 浏览(53853)

MySQLdb/mysql-python安装时EnvironmentError: mysql_config not found

2012-7-19 foooy python

python setup.py install 

sh: mysql_config: not found
Traceback (most recent call last):
  File "setup.py", line 15, in <module>
    metadata, options = get_config()
  File "/root/MySQL-python-1.2.3/setup_posix.py", line 43, in get_config
    libs = mysql_config("libs_r")
  File "/root/MySQL-python-1.2.3/setup_posix.py", line 24, in mysql_config
    raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found

原因mysql_config.path位置不对,首先查找mysql_config的位置,使用find / -name mysql_config,可以找到位置,本人的是/data/webserver/mysql/bin/mysql_config

修改setup_posix.py26行:

mysql_config.path = "mysql_config" 修改为:
mysql_config.path = " /data/webserver/mysql/bin/mysql_config " //这里是你搜索到的位置
修改完成后保存,再执行
python setup.py build
python setup.py install
python setup.py bdist_rpm

评论(0) 浏览(203816)

import MySQLdb UserWarning错误

2012-7-19 foooy python

import MySQLdb

/usr/lib/python2.4/site-packages/MySQL_python-1.2.3-py2.4-linux-i686.egg/_mysql.py:3: UserWarning: Module _mysql was already imported from /usr/lib/python2.4/site-packages/MySQL_python-1.2.3-py2.4-linux-i686.egg/_mysql.pyc, but /root/soft/MySQL-python-1.2.3 is being added to sys.path

 

原因是,install后MySQLdb模块已经被放到python的site-pachages目录中;但我在当前目录也存在相同的模块,所以可能会重复导入。只要切换到其他目录运行就可以了。

评论(0) 浏览(220741)

Centos安装安装MySQLdb模块

2012-7-19 foooy python

1、下载安装python setup编译工具 

wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c9.tar.gz
tar zxvf setuptools-0.6c9.tar.gz
cd setuptools-0.6c9
python setup.py build
sudo python setup.py install

2、下载安装MySQLdb模块

https://pypi.python.org/pypi/MySQL-python

wget http://nchc.dl.sourceforge.net/project/mysql-python/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz
tar zxvf MySQL-python-1.2.3.tar.gz
cd MySQL-python-1.2.3
python setup.py build
python setup.py install

 

3、测试是否可用

python
import MySQLdb
如果没有报错,说明已经安装好了

评论(0) 浏览(49629)

关闭SELinux的两种方法

2012-7-19 foooy linux

1 永久方法 – 需要重启服务器

修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器。

 

2 临时方法 – 设置系统参数

使用命令setenforce 0

 

PS:

setenforce 1 设置SELinux 成为enforcing模式

setenforce 0 设置SELinux 成为permissive模式

标签: linux selinux

评论(0) 浏览(34303)

centos安装memcache

2012-7-19 foooy linux

memcached 依赖libevent库 ,所以要先安装libevent库

http://libevent.org/下载
wget https://github.com/downloads/libevent/libevent/libevent-2.0.20-stable.tar.gz
tar zxvf libevent-2.0.20-stable.tar.gz
cd libevent-2.0.20-stable
./configure --prefix=/usr/local/libevent-2.0.20-stable/
make && make install
cd ../

http://memcached.org/下载
wget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz
tar zxvf memcached-1.4.15.tar.gz
cd memcached-1.4.15
./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent-2.0.20-stable
make && make install

启动
/usr/local/memcached/bin/memcached -d -u nobody -m 128 127.0.0.1 -p 11211

memcache启动参数说明:

-d选项是启动一个守护进程,

-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,

-u是运行Memcache的用户,我这里是root,

-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200,

-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,

-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,

-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid

 

清空所有内容可以在终端执行下列命令

 
echo ”flush_all” | nc localhost 11211

 

 查看memcache的内部状态

memcache的运行状态可以方便的用stats命令显示。首先用telnet 127.0.0.1 11211这样的命令连接上memcache,然后直接输入stats就可以得到当前memcache的状态。这些状态的说明如下:

pid memcache服务器的进程ID
uptime 服务器已经运行的秒数
time 服务器当前的unix时间戳
version memcache 版本
pointer_size 当前操作系统的指针大小(32位系统一般是32bit)
rusage_user 进程的累计用户时间
rusage_system 进程的累计系统时间
curr_items 服务器当前存储的items数量
total_items 从服务器启动以后存储的items总数量
bytes 当前服务器存储items占用的字节数
curr_connections 当前打开着的连接数
total_connections 从服务器启动以后曾经打开过的连接数
connection_structures 服务器分配的连接构造数
cmd_get get命令(获取)总请求次数
cmd_set set 命令(保存)总请求次数
get_hits 总命中次数
get_misses 总未命中次数
evictions 为获取空闲内存而删除的items数(分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items)
bytes_read 总读取字节数(请求字节数)
bytes_written 总发送字节数(结果字节数)
limit_maxbytes 分配给memcache的内存大小(字节)
threads 当前线程数

标签: libevent memcache centos

评论(0) 浏览(31278)

Powered by emlog 鄂ICP备14000186号-1 sitemap