标签归档:伪静态

VPS升级 LNMP(Oneinstack版本)设置笔记,重点排除rewrite伪静态问题

这几天抽空把博客升级,用了Oneinstack的套件。大部分的时间用来排除blog的伪静态rewrite。成功了才发现,之前早已经记录过这个问题。

Oneinstack的官网上好像还没有记载。照录在这里。

正常安装。编辑

usr/local/nginx/conf/rewrite/wordpress.conf

代码是这个:

location / {

if (-f $request_filename/index.html){

rewrite (.*) $1/index.html break;
}

if (-f $request_filename/index.php){

rewrite (.*) $1/index.php;
}

if (!-f $request_filename){

rewrite (.*) /blog/index.php;
}

}

要特别注意上面代码的最后,加粗的部分,这里的“blog”的放Wordpress的目录名称。然后重启服务:

service nginx restart

搞定。

原创文章,转载请注明: 转载自风云居 | Less is more

本文链接地址: https://kangjian.net/blog/1658/

Linode VPS 设置LNMP (Linux + Nginx + Mysql + PHP) + WordPress伪静态笔记

Lunarpages实在是过慢了。服务行业就是这样,低价格一定是低品质。500ms以上的ping值无论如何不具有实用价值。于是挑战一下,从零开始试用了一下Linode的VPS。门户博客就像宾馆,拎包入住;虚拟主机就像毛坯房,尽管作何用很自由,但毕竟格局已定,条条框框就在那里,简单装修即可;VPS则彻底是地皮一块——裸机一台,需要自己选择系统究竟是CentOS还是Ubuntu,再通过SSH远程操作,从装系统开始,逐步搭建一个生产环境。 自从进了法学院,久违了这种码农似的研究。Linux的操作感果然很好,尽管没有GUI界面,依然是高效的。记录一下设置VPS的过程,方便以后的自己,也方便有缘读到这些文字的朋友。

一、牢记几个关键密码

这些密码层级不同,用处各异,必要的话用纸写下来。无论是操作虚拟主机还是VPS,千万不要因为记错不同的密码浪费时间。

  • 登录linode的账号、密码
  • 主机root密码
  • MySQL的root密码
  • FTP用户的密码
  • MySQl的FTP数据库(PureFTPd)密码
  • PhpMyAdmin的root密码

二、安装系统,搭建环境

这里我选择的是Ubuntu 11。这是我唯一接触过的Linux系统,使用者也多,google的资源丰富。 ssh环境下,vim或Linux操作时,鼠标右键单击=Ctrl+V,Ctrl+Inster=Ctrl+C。下面的所有指令都可以复制到剪贴板然后再ssh中右击粘贴,不要一个字母一个字母录入。

1.直接运行以下命令:

apt-get upgrade apt-get update

2.使用以下命令修改主机名称:

echo "YourVPSName" > /etc/hostname hostname -F /etc/hostname

其中YourVPSName可以替换成你自己的名字。

3.设置时区

tzselect

根据提示选择,一般5-9-1-1设置Beijing即可。

4.获取lnmp一键安装包并解压

wget -c http://soft.vpser.net/lnmp/lnmp0.8.tar.gz tar zxvf lnmp0.8.tar.gz

5.安装lnmp

cd lnmp0.8/ ./ubuntu.sh

这一步需要输入一个绑定的域名,根据lnmp.org的建议,使用一个二级域名lnmp.xxx.xxx,这个域名是互联网上不存在的,修改本地hosts可以使用。 马上要设定几个密码,准备好纸笔,写清楚即可。 这一步耗时大概30分钟左右。程序会自动安装编译Nginx、PHP、MySQL、phpMyAdmin、Zend这几个软件。

6.安装几个必要组件

这一步基本没什么难度,相当于Windows下的一路Next。这一阶段要安装eAccelerator、ionCube、imageMagick、memcached、PureFTPd等。

7.升级Nginx版本

./upgrade_nginx.sh

按提示输入nginx的版本号,如1.1.13。

8.升级PHP版本

./upgrade_php.sh

按提示输入php版本号,如5.3.9。这一步很重要,据说老版本的PHP有比较严重的漏洞。5.3.9比较安全。

9.添加虚拟主机

/root/vhost.sh

这里会要求输入一次rewrite的程序。输入即可。伪静态不管用,后面需要重新写rewrite规则。

10.至此,系统环境基本搭建完毕。

三、几个必须要做的调整

1.设置ftp自动运行

这一步是必需的,否则一旦VPS重新启动,FTP将无法直接登录。如果你几周以后Reboot了系统,忘了FTP不能自动运行,导出找原因会找到死。 执行如下命令使开机启动:

cat >/etc/init.d/pureftpd.sh<<eof /root/pureftpd start eof update-rc.d pureftpd.sh defaults

2.设置目录写入权限

之前我们的操作是以root账户完成的,所有文件/文件夹的所有者都是root。如果保持这个状态,之后我们将无法以ftp账户的名义执行很多操作——比如任何形式的写入;同样,Wordpress等程序也无法上传附件。

chown -R www /home/wwwroot

chown指令将后面的目录的所有权限指派给了www用户。在前面设置ftp你已经将ftp账号的uid和gid设置成www组了。至此,一个Wordpress的环境设置结束,可以“自豪的使用Wordpress了”。

3.设置可用的rewrite伪静态规则

网上有很多Nginx的rewrite伪静态规则笔记。在我的实践中发现,大多不能用——不仅仅没有效果,有可能连累系统无法运行。rewrite设置得我几欲放弃,已经甘心宁愿用“?p=**”的传统默认链接了,最后一试成功了。下面的代码可以直接解决单域名单一目录或多子目录(多Wordpress,比如kangjian.net)的伪静态rewrite问题:

vim usr/local/nginx/conf/wordpress.conf

单一目录rewrite伪静态规则:(根据WP所在目录改写/blog部分)

location / { if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-f $request_filename){ rewrite (.*) /blog/index.php; } }

多个wordpress程序,多个子目录:(根据WP所在目录改写/blog和/paste部分)

location /blog/ { if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-f $request_filename){ rewrite (.*) /blog/index.php; } } location /paste/ { if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-f $request_filename){ rewrite (.*) /paste/index.php; } }

改写完wordpress.conf,执行下列语句重新启动Nginx的web环境:

/usr/local/nginx/sbin/nginx -s  reload

四、安装Wordpress程序

现在,安装Wordpress还是恢复别处备份来的Wordpress就看具体情况了。 感谢lnmp.org

后续文章:

Nginx下设置www.kangjian.net访问kangjian.net》 - 2012-1-30
Linode VPS主机设置sendmail实现WordPress邮件通知》 - 2012-2-11
Linode VPS升级 LNMP(Oneinstack版本)设置笔记,重点排除rewrite伪静态问题》 - 2016-8-23