【原创】Win2003下discuz论坛转移至Lnmp下注意事项(Rewrite重写、上传附件目录权限)

Discuz!在Nginx下的Rewrite
完整正确的Discuz!在Nginx下的Rewrite如下:
蓝色部分为完整的配置内容添加至,虚拟主机 server{} 内,不要放到 location {} 以内!
使之单独存在于:server{
location {}
if (!-e $request_filename)
{
rewrite ^/archiver/((fid|tid)-[w-]+.html)$ /archiver/index.php?$1 last;
rewrite ^/forum-([0-9]+)-([0-9]+).html$ /forumdisplay.php?fid=$1&page=$2 last;
rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ /viewthread.php?tid=$1&extra=page%3D$3&page=$2 last;
rewrite ^/space-(username|uid)-(.+).html$ /space.php?$1=$2 last;
rewrite ^/tag-(.+).html$ /tag.php?name=$1 last;
break;
}
=======================================================================
discuz论坛由WIN移至Linux下,附件文件无法保存到服务器上的问题解决方案!
提示信息:附件文件无法保存到服务器,可能是目录属性设置问题,请与管理员联系。
解决方法:
问题1:attachement目录是否设置属性777,win主机属性everyone
DIDCUZ安装时提示: 设置目录属性(windows 服务器可忽略这一步)
以下这些目录需要可读写权限
./templates
./attachments
./forumdata
./forumdata/cache
./forumdata/templates
./forumdata/threadcaches
./forumdata/logs
LINUX下以上目录统一修改权限为777:
chown -R 777 templates
chown -R 777 attachments
chown -R 777 forumdata
chown -R 777 forumdata/cache
chown -R 777 forumdata/templates
chown -R 777 forumdata/threadcaches
chown -R 777 forumdata/logs
问题2:php.ini中的设置可能存在问题
将;upload_tmp_dir = 该行的注释符,即前面的分号“;”去掉,使该行在php.ini文档中起作用。upload_tmp_dir是用来定义上传文件存放的临时路径,在这里你还可以修改并给其定义一个绝对路径,这里设置的目录必须有读写权限。付给WWW可执行权限。
另外:
在nginx.conf增加 client_max_body_size的相关设置, 这个值默认是1m,可以增加到8m以增加提高文件大小限制;
如果运行的是php,那么还要检查php.ini,这个大小client_max_body_size要和php.ini中的如下值的最大值一致或者稍大,这样就不会因为提交数据大小不一致出现的错误。
post_max_size = 8M
upload_max_filesize = 2M
在php.ini中upload_max_filesize 的参数设置也增加到8M和NGINX相互一直,若不需要用上传超大附件,可以在DISCUZ后台限制用户上传附件大小 8M<
以上全部更改,确保了附件目录拥有了足够了权限之后若还说不能上传。见问题3
问题3:DISCUZ 后台更改附件附件 URL 地址
DISCUZ 默认设置:
后台 基本设置 附件设置 不小心开启远程附件或者没有设置完整也会出现此问题
后台 基本设置 附件设置 设置的附件保存方式为其他方式 不是保存在同一目录下 部分服务器限制了目录属性 导致无法上传附件(虚拟空间出现的比例较多)
可以尝试把附件 URL 地址: 修改为绝对路径如:
http://bbs.liuxinxiu.com/attachments
liuxinxiu 换成你的域名,不再根目录下加加子目录:http://www.liuxinxiu.com/bbs/attachments
==================================================================
【原创】关于wget、get、 put 及其网络管理优先采用的数据传输方式。

本人局域网内构建2台机器A+B , A 为LINUX操作系统,B为WIN-XP 。
作为局域网可以不考虑外网带宽问题,测试项目如下:
假设以LINUX为服务器环境,测试一:快速备份LINUX上的压缩文件最佳方式使用多线程下载工作【迅雷等】下载已经在LINUX端压缩好的备份文件速度局域网内可达10MB/S :
测试二:快速传送XP机上的文件至LINUX 【采用了put 、get 、wget】三种方式做对比@如下:
由以上可以看出,以SSH自带SFTP 的PUT 上传命令上传XP---至-----LINUX 传输文件,速度并不是很理想。仅均5000KB/秒
以下看下使用SSH 中SFTP的下行命令get 【备份LINUX文件至XP本地】如图:
速度仅为6000KB/秒 相对 迅雷的10MB 还是不及。
然后再看下使用SSH下Wget 下载命令,提前开开XP的WEB服务器,设置APACHE无下载限制。
速度为9MB/秒,和使用迅雷相当!!
如此得出结论:我们平时传输数据时,无论相对本地的上传和下载。尽可能地使用下载命令。
本地WIN 备份远程 LINUX 数据可以 迅雷 多线程下载工具!@
本地LINUX备份远程LINUX或者WIN主机可以使用SSH中下载命令 WGET
上传本地XP数据至远程LINUX可以SSH从远程使用WGET 下载“本地”数据【前提开WEB服务,配置无下载限制,ADSL临时获取IP用户方便使用】
上传本地XP或者LINUX 上传数据至远程LINUX 还可以使用SSH连接远程使用自带的SFTP用 PUT 下载 【速度无一般无优势】
=======================================================================
转载请注明 文章来源:http://liuxinxiu.com/wget_get_put/
Linux各个挂载点及其分区介绍

本文介绍Linux常用分区挂载点常识以及桌面、服务器分区挂载点的推荐配置,当然这个配置是天缘自己写的,分区大小这个话题是仁者见仁智者见智,欢迎大家一起交流这个话题,比如WEB服务、邮件服务、下载服务等,我们一起交流哪种类型服务下某挂载点应该加大就可以了,至于是否独立就看个人的了。
一、Linux分区挂载点介绍
Linux分区挂载点介绍,推荐容量仅供参考不是绝对,跟各系统用途以及硬盘空间配额等因素实际调整:
当然上面这么多挂载点,实际上是没有比较每个目录都单独进行挂载,我们只需要根据自己的实际使用需要对个别目录进行挂载,这样系统结构看起来也会精简很多。
一般来讲Linux系统最少的挂载点有两个一个是根挂载点/,另一个是swap,虽然swap也可以采用其他方式类似方式替代,但从使用角度,天缘认为没这个必要,把swap单独设置一个挂载点似乎对Linux系统的标准性更好支持。
二、Linux系统桌面、服务器分区推荐方案
下面以80G独立硬盘安装Ubuntu为例,列一下简单的分区方案。
1、普通桌面用户推荐分区方案(示例:80G桌面用户):
2、服务器用户推荐分区方案一(示例:80GWEB服务器用户,用户程序与系统程序合用usr):
2、服务器用户推荐分区方案二(示例:80GWEB服务器用户,用户程序与系统程序分用opt和usr):
分区方案关键点:
——大数据库一般要加大/usr挂载点
——多用户、下载类、多存储文件等要加大/home挂载点
——文件小,用户多要注意/tmp和/var挂载点大小
linux中,磁盘分区是一个物理概念,挂载点及其文件系统是一个逻辑概念,挂载是针对物理上的硬盘或其他存储空间。将某一存储介质挂载到文件系统,实际上就是相当于给许多门,分配门牌号码。
sda3挂载在/home上面,现在需要将sda9挂载在/home/pt/Videos上面
sudo mount /dev/sda9 /home/pt/Videos
sudo chmod 777 /home/pt/Videos 也可以sudo chmod 777 /dev/sda9
如果不设置这个文件夹或者磁盘的权限为777(任何人都有读写执行权),会出现各种问题
1、进入 /home/pt/Videos鼠标邮件的粘帖及其许多功能键无法使用,只能sudo cp,sudo mv方式操作文件
2、无法使用gedit等软件保存文件到/home/pt/Videos ,等各种问题
sudo mount /dev/sda9 /home/pt/Videos后,会出现以前/home/pt/Videos上有的文件,现在无法看见的情况,这是符合逻辑的,/home/pt/Videos以前同/home一起挂载在sda3上,现在将sda3挂载到另外一个地方,打开sda3就可以看见一个名为的/home/pt/Videos文件夹,上面有以前的文件。
linux可以做到:
一个分区设置多个挂载点
多个分区设置一个挂载点。
1.一个分区设置多个挂载点
pt@pt-laptop:~$ sudo mount /dev/sda8 /mnt
pt@pt-laptop:~$ sudo mount /dev/sda8 /home/pt/Videos
pt@pt-laptop:~$ sudo chmod 777 /mnt
pt@pt-laptop:~$ sudo chmod 777 /home/pt/Videos
此时,如果复制一个文件test到 /home/pt/Videos ,打开/mnt 也可以看见,此时test在两个逻辑分区上,只在一个物理分区上,如果在/mnt 删除test文件,打开/home/pt/Videos 也看不见了,如果在/home/pt/Videos复制一个test1,在/mnt中也可以看见,在/home/pt/Videos删除test1,在/mnt中也消失。
道理显而易见,/home/pt/Videos ,/mnt对应同一个物理区域,针对此物理区域的操作,两个逻辑区域由于对应同一物理区域的缘故,一个逻辑区域变动导致另一个逻辑区域也反应出同样的变动。
参见附件。
2.多个分区同一个挂载点
pt@pt-laptop:~$ sudo mount /dev/sda9 /mnt/sda9
pt@pt-laptop:~$ sudo mount /dev/sda10 /mnt/sda10
pt@pt-laptop:~$sudo cp /home/pt/test /mnt
此时的test文件在哪个物理分区上呢,此时test只在一个逻辑分区上,/home/pt/test。
通过下面的命令,依次打开sda8,sda9,sda10,可以发现,它在最后一个挂载的分区sda10上面。
pt@pt-laptop:~$ sudo mkdir /mnt/sda8 /mnt/sda9 /mnt/sda10
pt@pt-laptop:~$ sudo mount /dev/sda8 /mnt/sda8
pt@pt-laptop:~$ sudo mount /dev/sda9 /mnt/sda9
pt@pt-laptop:~$ sudo mount /dev/sda10 /mnt/sda10
Linux 开机启动[root@localhost]变成bash-3.2#解决方法

我只是记录一下命令,这个就可以搞定。
source .bashrc
login as: root
root@*****218’s password:
Last login: Thu Jul 1 22:06:47 2010 from 110.203.60.70
-bash-3.2# copy /etc/skel/.bashrc ~
-bash: copy: command not found
-bash-3.2# cp /etc/skel/.bashrc ~
-bash-3.2# source ~/.bashrc
[root@**** ~]#
不同的shell可以去切换:例:
[root@localhost ~]# bash
bash-3.2# sh
sh-3.2# tcsh
[root@localhost ~]# bash
bash-3.2# csh
[root@localhost ~]#
用yum下载rpm包

Linux压力测试工具webbench的安装使用介绍

webbench文件下载:
http://at.liuxinxiu.com/2010/09/file/webbench-1_5_tar.gz
1、适用系统:Linux
2、编译安装:
- # wget ←下载源程序
- # tar zxvf webbench-1.5.tar.gz ←解压源文件
- # make ←编译程序
- # mkdir /usr/local/man ←建立相应目录(否则导致无法正常安装)
- # make install ←安装程序
使用方法/
webbench -c 500 -t 30 http://127.0.0.1/test.jpg
测试结果:
- # Webbench - Simple Web Benchmark 1.5
- # Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
- # Benchmarking: GET http://127.0.0.1/test.jpg
- # 500 clients, running 30 sec.
- # Speed=3230 pages/min, 11614212 bytes/sec.
- # Requests: 1615 susceed, 0 failed.
webbench最多可以模拟3万个并发连接去测试网站的负载能力
yum -y remove httpd 如何默认有APACHE先卸载APACHE
spawn-fcgi是一个小程序,这个程序的作用是管理fast-cgi进程,功能和php-fpm类似
先YUM查找需要的库:
- yum -y install gcc gcc-c++ make imake autoconf automake
-
- yum -y install gcc gcc-c++ openssl openssl-devel pcre pcre-devel gdbm gdbm-devel libpng libpng-devel libjpeg-6b libjpeg-devel-6b freetype freetype-devel gd gd-devel zlib zlib-devel libXpm libXpm-devel ncurses ncurses-devel libmcrypt libmcrypt-devel libxml2 libxml2-devel libtool-ltdl libtool-ltdl-devel curl-devel
-
由于mysql编译比较慢我用yum安装了
yum -y install mysql-server mysql-devel
----------------------------------------------------------------------------------------------------
wget http://www.nginx.org/download/nginx-0.8.32.tar.gz
ls
tar zxvf nginx-0.8.32.tar.gz
cd nginx-0.8.32
- groupadd www
- useradd -g www -s /sbin/nologin -d /dev/null www
- ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
- make && make install
- cd /usr/local/nginx/conf
- mv nginx.conf nginx.conf.bak
vim nginx.conf
=====================================================
- user www www;
-
- worker_processes 8;
-
- error_log logs/error.log crit;
-
- pid logs/nginx.pid;
-
- #Specifies the value for maximum file descriptors that can be opened by this process.
- worker_rlimit_nofile 65535;
-
- events
- {
- use epoll;
- worker_connections 65535;
- }
-
- http
- {
- include mime.types;
- default_type application/octet-stream;
-
- #charset gb2312;
-
- server_names_hash_bucket_size 128;
- client_header_buffer_size 32k;
- large_client_header_buffers 4 32k;
- client_max_body_size 8m;
-
- sendfile on;
- tcp_nopush on;
-
- keepalive_timeout 30;
-
- tcp_nodelay on;
-
- fastcgi_connect_timeout 300;
- fastcgi_send_timeout 300;
- fastcgi_read_timeout 300;
- fastcgi_buffer_size 64k;
- fastcgi_buffers 4 64k;
- fastcgi_busy_buffers_size 128k;
- fastcgi_temp_file_write_size 128k;
-
- gzip on;
- gzip_min_length 1k;
- gzip_buffers 4 16k;
- gzip_http_version 1.0;
- gzip_comp_level 2;
- gzip_types text/plain application/x-javascript text/css application/xml;
- gzip_vary on;
-
- include /usr/local/nginx/conf/vhosts/*.conf;
- }
-
========================================
mkdir vhosts
cd vhosts/
vim s157.com.conf
==============================
- server {
- listen 184.82.2.206:80;
- server_name s157.com www.s157.com;
-
- #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
- # '$status $body_bytes_sent "$http_referer" '
- # '"$http_user_agent" "$http_x_forwarded_for"';
- #access_log /usr/local/nginx/logs/www.access.log;
- access_log off;
-
- location / {
- root /ftp/s157;
- index index.html index.htm index.php;
-
- location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ {
- expires 30d;
- }
-
- location ~ .*.(htm|html|js|css)$ {
- expires 1h;
- }
-
- }
-
- #error_page 404 =200 http://$host;
- #error_page 404 /404.html;
-
- location ~ .php$ {
- fastcgi_pass 127.0.0.1:9000;
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME /ftp/s157/$fastcgi_script_name;
- include fastcgi_params;
- }
-
-
- }
-
- =================================
- 其中 可有可无 功能是防盗链的
- location ~* .(gif|jpg|png|swf|flv)$ {
- valid_referers none blocked abc.com www.abc.com;
- if ($invalid_referer) {
- #rewrite ^/ http://www.abc.com/403.jpg;
- return 404;
- }
- }
- =============
然后 找了个针对 CentOS 的nginx重启控制脚本
chmod 755 nginx
cp nginx /etc/init.d/
/etc/init.d/nginx restart 测试能不能成功 启动 !!!!!!!!!!!!!
LIUXINXIU.COM - 定于凌晨3:30分,本站VPS自动重启设置/

# crontab -e
30 3 * * * /sbin/reboot
# /etc/rc.d/init.d/crond stop
# /etc/rc.d/init.d/crond start
----------------------------------------------------------
之后就不用理睬,每天凌晨3:30分会自动重启一次!如果不需要自动重启,删除红色的内容。重启CROND//
时间到了3:30分 VPS--SSH 自动断开。。。。
共5分钟完成重启,页面访问恢复正常。。。。。。如下:
-----------------------------------------------------------------------------------------------------------------------------------------------------
其他相关资料:
查看/修改Linux时区和时间
一、时区
1. 查看当前时区
date -R
2. 修改设置时区
方法(1)
tzselect
方法(2) 仅限于RedHat Linux 和 CentOS
timeconfig
方法(3) 适用于Debian
dpkg-reconfigure tzdata
3. 复制相应的时区文件,替换系统时区文件;或者创建链接文件
cp /usr/share/zoneinfo/$主时区/$次时区 /etc/localtime
在中国可以使用:
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
二、时间
1、查看时间和日期
date
2、设置时间和日期
将系统日期设定成1996年6月10日的命令
date -s 06/22/96
将系统时间设定成下午1点52分0秒的命令
date -s 13:52:00
3. 将当前时间和日期写入BIOS,避免重启后失效
hwclock -w
三、定时同步时间
* * * * * /usr/sbin/ntpdate 210.72.145.44 > /dev/null 2>&1
=====================================================
VPS修复系统默认美洲时间更改为:中国上海

凌晨3点设置了一个VPS自动重启脚本,本地虚拟机测试无误,晕@ 美国VPS无效,在本地做了测试,才发现是市区的问题。
本人VPS托至美国,新机自然是以美洲时间为标准,总是感觉不爽,比如设置系统自动定时重启等等////
服务器自动重启:http://liuxinxiu.com/s/54/
显示的国内的时间为凌晨3:01
美国VPS系统显示的时间为下午13:00
更新为中国--上海 时区之后,时间已经校正如下@!
LINUX服务器定时重启设置方法

为了保证LINUX系统的稳定运行,及时释放内存资源,CENTNET建议每台基于LINUX的CMC服务器,均每天设置定时重启功能.具体操作方法如下:
使用SSH工具成功登陆后台后,运行如下命令:
crontab -e
然后在文档中根据需要插入如下内容:
0 4 * * * /sbin/reboot ( 0 2表示每天凌晨两点重启.. 0 3表示凌晨3点..)
06 2 * * * /sbin/reboot ( 06 2表示每天凌晨两点零六分重启.. 06 3表示凌晨3点零6分..)
0 4 * * * /sbin/reboot ( 0 4表示每天凌晨四点重启.. 0 3表示凌晨3点..)
:wq保存退出后,执行如下命令重启crond 服务即可.
/etc/rc.d/init.d/crond stop
/etc/rc.d/init.d/crond start
-------------------------------------------------------------------------------------------------
设置系统时钟的操作:
# date 月日时分年.秒
例如:
# date 091713272003.30