最近在搬家自己的博客,使用天翼云主机的LTMP环境,在wordpress后台准备更新wordpress版本时,在顶部提示有错误:

[caption id="attachment_37" align="aligncenter" width="765"]scandir-wrong LTMP环境中wordpress提示scandir参数错误[/caption]

  1. Warning: scandir() has been disabled for security reasons in /luanzun.com/wp-includes/l10n.php on line 763  

解决方法也是比较简单的,这是由于我们ltmp环境下的php.ini文件scandir()函数问题,我们只需要去掉这个函数就可以了。我们可以通过FTP或者VI编辑 /usr/local/php/etc/php.ini文件中,找到 disable_functions 后面的 scandir删除掉这个函数。

最后,我们通过SSH命令 重启php-fpm就OK了。

  1. /etc/init.d/php-fpm restart  

一直在嘀咕lnmp怎么设置图片防盗链。因为流量太可怕了。国内空间商都很小气,而且量大了对网站也有影响。关于lnmp图片防盗链的问题,有人说在lnmp论坛已经发过了,但是我没找到,在其它博主的博客里看到了方法,拿来记录一下,后期使用。

因为nginx不支持.htaccess,我们只有通过修改配置文件来解决。

第一步,我们找到需要防盗链的域名的conf文件,路径:/usr/local/nginx/conf/vhost/,例如baidu.conf 先在本地备份一份。

第二步,找到下面的部分:

  1. location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$    
  2. {    
  3. expires 30d;    
  4. }  

将它修改为:

  1. location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$    
  2. {    
  3. valid_referers none blocked dutool.com www.toowu.com;    
  4. if ($invalid_referer) {  
  5. rewrite ^/ http://www.baidu.com/404.jpg;  
  6. #return 404;  
  7. }  
  8. expires 30d;    
  9. }  

具体代码大家根据下面的解释自行修改。

  1. 第一行gif|jpg|jpeg|png……是需要防止盗链的文件类型,可以自由设置;  
  2. 第三行是可以使用这些图片的网站域名,如果有多个,域名之间使用空格隔开;  
  3. 第五行是给盗链网站看到的图片,返回一个404.jpg或其它图片,这个图片源地址必须可以外链,否则别人看到的就是浏览器默认X图片。  

第三步,保存并上传覆盖源文件,然后重启lnmp。

  1. /root/lnmp restart  

在上一篇《nginx实现域名301重定向规则方法》文章里,我提到了nginx的重定向写法(其实内容写的就是域名031重定向)。今天对那篇文章进行补充。主要说一下主目录内容移动到子目录后的页面重定向方法。这写篇文章的目的是我在百度找不到······
其实道理很简单(会者不难,难者不会),还是使用rewrite写法。举个例子:
内容在主目录时的url是

www.ymywz.com/caipu-1-1-1.html

在子目录的url是

  1. www.ymywz.com/caipu/1-1-1.html  

那么,在nginx下的301重定向写法就是: 

rewrite ^/caipu\-(.+?).html /caipu/$1.html permanent;

规则与我们的伪静态写法是不一样的,伪静态的写法是:

  1. rewrite ^/caipu/([0-9]+)-([0-9]+)-([0-9]+).html /caipu/index.php?catid=$1&id=$2&page=$3 last;  

按照我这个小白的理解:

  1. 伪静态的写法是“需要的域名+原本的域名+last”;    

  2. 而301重定向呢,则是“原本的域名+需要的域名+permanent”  

代码注释

  1. rewrite /*重定向开始*/

  2. permanent /*返回301永久重定向 地址栏会显示跳转后的地址*/

  3. redirect /*返回302临时重定向 地址栏会显示跳转后的地址*/

  4. /*在前面的域名里代表结束符,而$1则代表第一个参数*/

其实rewrite还有很多用法,不单单用来重定向以及伪静态。接下来我会发另外一篇文章进行解释,分享给大家,也算是加强自我学习。

今天在一个论坛看到有人整理出来的linux vps 常用ssh命令,看着不错,我就转过来了,分享给大家。这个不是lnmp的独立命令,而是linux系统ssh通用命令。

1.目录操作:

  1. rm -rf mydir /*删除mydir目录*/  
  2. mkdir dirname /*创建名为dirname的目录*/  
  3. cd mydir /*进入mydir目录*/  
  4. cd - /*回上一级目录*/  
  5. cd .. /*回父目录,中间有空格*/  
  6. cd ~ /*回根目录*/  
  7. mv tools tool /*把tools目录改名为tool */  
  8. ln -s tool bac /*给tool目录创建名为bac的符号链接,最熟悉的应该就是FTP中www链接到public_html目录了*/  
  9. cp -a tool /home/vpser/www /*把tool目录下所有文件复制到www目录下 */  

2.目录权限:
解决安装程序时提示没有相应的文件读写权限,需要同时执行以下命令即可。

  1. chmod 777 -R 虚拟主机目录 /*权限*/  
  2. chown www:www -R 虚拟主机目录 /*属主*/  

3.文件操作

  1. rm go.tar /* 删除go.tar文件 */  
  2. find mt.cgi /* 查找文件名为mt.cgi的文件 */  
  3. df –h /* 查看磁盘剩余空间,好像没这个必要,除非你太那个了 */  

4.解压缩

  1. tar xvf wordpress.tar /* 解压tar格式的文件 */  
  2. tar -tvf myfile.tar /* 查看tar文件中包含的文件 */  
  3. tar cf toole.tar tool /* 把tool目录打包为toole.tar文件 */  
  4. tar cfz vpser.tar.gz tool /* 把tool目录打包且压缩为vpser.tar.gz文件,因为.tar文件几乎是没有压缩过的,MT的.tar.gz文件解压成.tar文件后差不多是10MB */  
  5. tar jcvf /var/bak/www.tar.bz2 /var/www/ /*创建.tar.bz2文件,压缩率高*/  
  6. tar xjf www.tar.bz2 /*解压tar.bz2格式*/  
  7. gzip -d ge.tar.gz /* 解压.tar.gz文件为.tar文件 */  
  8. unzip phpbb.zip /* 解压zip文件,windows下要压缩出一个.tar.gz格式的文件还是有点麻烦的 */  
  9. zip -r myfile.zip /* 将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件*/  

5.unzip

  1. unzip -o -d /home/sunny myfile.zip /* 把myfile.zip文件解压到 /home/sunny/ */  
  2. -o: /*不提示的情况下覆盖文件;*/  
  3. -d:-d /home/sunny /*指明将文件解压缩到/home/sunny目录下;*/  

6.其他

  1. zip -d myfile.zip smart.txt /* 删除压缩文件中smart.txt文件 */  
  2. zip -m myfile.zip ./rpm_info.txt /* 向压缩文件中myfile.zip中添加rpm_info.txt文件 */  

7.下载

  1. wget http://soft.vpser.net/web/nginx/nginx-0.8.0.tar.gz  
  2. /*下载远程服务器上的文件到自己的服务器,连上传都省了,服务器不是100M就是1000M的带宽,下载一个2-3兆的MT还不是几十秒的事 */  
  3. wget -c http://soft.vpser.net/web/nginx/nginx-0.8.0.tar.gz /* 继续下载上次未下载完的文件 */  

8.进程管理

  1. ps -aux /*ps 进程状态查询命令*/  

ps命令输出字段的含义:

  1. USER /*进程所有者的用户名*/  
  2. PID /*进程号,可以唯一标识该进程*/  
  3. %CPU /*进程自最近一次刷新以来所占用的CPU时间和总时间的百分比*/  
  4. %MEM /*进程使用内存的百分比*/  
  5. VSZ /*进程使用的虚拟内存大小,以K为单位*/  
  6. RSS /*进程占用的物理内存的总数量,以K为单位*/  
  7. TTY /*进程相关的终端名*/  
  8. STAT /*进程状态,用(R--运行或准备运行;S--睡眠状态;I--空闲;Z--冻结;D--不间断睡眠;W-进程没有驻留页;T停止或跟踪。)这些字母来表示*/  
  9. START /*进程开始运行时间*/  
  10. TIME /*进程使用的总CPU时间*/  
  11. COMMAND /*被执行的命令行*/  
  12. ps -aux | grep nginx /*在所有进程中,查找nginx的进程*/  
  13. kill 1234 /*1234为进程ID,即ps -aux 中的PID*/  
  14. killall nginx /*killall 通过程序的名字,直接杀死所有进程,nginx为进程名*/  

Vim操作

1.移动类

  1. h/j/k/l: 左/下/上/右 移一格*/  
  2. /*向后词移动 (前面加数字移动多少个词)*/  
  3. /*向前词移动 (前面加数字移动多少个词)*/  
  4. /*向后移到词末*/  
  5. ge /*向前移到词末*/  
  6. /*行末*/  
  7. /*行首*/  
  8. tx /*向右查找本行的x并移到那儿(大写时向左)*/  
  9. 33G /*移到文件的第33行*/  
  10. gg /*文件首行*/  
  11. /*文件尾行*/  
  12. 33% /*文件的33%处*/  
  13. H/M/L /*屏幕的首/中/尾行 */  
  14. zt/zz/zb /*当前行移到屏幕的首/中/底部*/  

2.跳转

  1. /*回到跳转来的地方*/  
  2. CTRL-O /*跳到一个 “较老” 的地方*/  
  3. CTRL-I /*则跳到一个 “较新” 的地方*/  

3.查找

  1. /*向下查找(后加关键字)*/  
  2. /*向上查找(后加关键字)*/  
  3. /*下一条符合的记录*/  

4.编辑

  1. /*转换到插入模式*/  
  2. /*删除当前字符*/  
  3. /*重复最后一次的修改操作(同PS里ctrl+f执行滤镜)*/  
  4. /*撤销操作*/  
  5. CTRL-R /*重做*/  
  6. /*将删除的字符插入到当前位置(put)*/  

5.退出保存

  1. :q /*退出*/  
  2. :q! /*不保存退出*/  
  3. ZZ /*保存后退出*/  
  4. :e! /*放弃修改重新编辑*/  

掌握这些基本命令,Linux下的基本使用已经掌握,只要多加练习,多遇到问题,解决问题,能力就会不断的提升。

有的网站程序默认是没有域名301重定向的,意思就是带www和不带www都可以访问。但如果这样的话,你的网站同一个页面就会出现2个地址,这样对seo不好。nginx的301重定向方法和apache不一样。网上一共有2种方法,分别如下:

 1.单独对需要跳转的域名在server写重定向,下面是把不带www301到带www的方法:

server      
{      
listen       80;      
server_name luanzun.com;      
access_log off;      
rewrite ^/(.*)$ http://www.luanzun.com/$1 permanent;      
}      
server      
{      
listen       80;      
server_name www.luanzun.com;      
index index.html index.htm index.php;      
root  /home/user/luanzun;      
include location.conf;      
include zencart.conf;      
}

这种方法几乎所有的服务器都适用。  

2.对两个域名做一个host判断,不过这种方法在我的vps上测试时提示域名多次重定向·····但很多人成功了,或许是因为网站程序?这里我还是把方法贴出来,或许有人可以用到:  

server    
{    
listen       80;    
server_name www.dutool.com luanzun.com;    
if ($host != ‘luanzun.com’ ) {    
rewrite ^/(.*)$ http://www.luanzun.com/$1 permanent;    
}    
index index.html index.htm index.php;    
root  /home/user/luanzun;    
include location.conf;    
include zencart.conf;    
}

这种方法就是在中间插了下面一段代码

if ($host != ‘luanzun.com’ ) {    
rewrite ^/(.*)$ http://www.luanzun.com/$1 permanent;    
}