下载NotePad++
7,伪静态修改,/usr/local/nginx/conf/vhost/???.conf
– WordPress企业建站交流平台|WordPress外贸和SOHO建站
下载NotePad++
7,伪静态修改,/usr/local/nginx/conf/vhost/???.conf
购买之前需要先在阿里云完成注册用户和认证;接着进入购买选项,企业站或小型站如图选择即可:
第一步,选购配置:
第二步:确认定单,输入推荐码【WT6SMY 】,享受9折优惠
第三步:支付。
第一步:先申请“备案服务号”;
第二步:进入“ICP备案系统”,这里可以看成是另一个系统,专门用于备案,需要注册账号,这里不再赘述。要特别提示的一点,在这里进入申请备案时,会用到第一步申请的“备案服务号”;
第三步:提交备案后,等待直接备案成功;
安装LNMP,绑定已备案的域名,即可完成建站。
最近刚刚换了阿里云的VPS,使用的是admin5提供的主机宝镜像(这个如果是购买阿里云ECS服务器的话是免费的,否则需要另外购买,像我一样使用阿里云ECS的初学者比较适合,面板很小白很简单),由于使用的是Nginx服务器而不是Apache,传统的Apache伪静态规则不使用,主机宝后台有自带的专门用于Nginx的伪静态规则,添加好了。
安装wordpress,使用固定链接,一切正常!然后安装No Category Base(便于搜索引擎收录嘛),出问题了!前台category是去掉了,但是后台的任何功能都无法访问了,直接显示 404 Not Found nginx页面,仔细看一下地址栏的路径,全是类似”http://shuibengzhijia.com/edit.php”这样的,关键就在于他们都少了”/wp-admin/”这条路径,路径都不对了,肯定404!
百度了半天,查到了一些解决方法,但是由于我不懂代码,而且主机宝的系统貌似保护起来了,用putty访问不到需要修改的文件,没有办法尝试一一尝试那些方法的正确与否。放弃了..最后百度到了另外一个简单有效的办法,直接修改伪静态规则,测试了一下,成功了,原来的伪静态规则一大推,修改之后非常简洁: “try_files $uri $uri/ /index.php;”
由于我不懂代码,将来会不会出其他的问题还不知道,目前前台后台一切正常,希望朋友们多多交流指导:)
办法来源于百度经验,我这里摘抄过来,有兴趣的朋友也可以去看原文链接:http://jingyan.baidu.com/article/fa4125acae758928ac7092cd.html
在Nginx下,设置Wordpress伪静态的教程,网上一大堆,且相似度极高,大家也都知道差不多都是copy过来的。不是说它们不能解决问题,但是,没有弄明白为什么,而纯粹的copy,除了给庞大的网络信息里增加一些垃圾,对任何人都没有帮助。
我们先分析一下Wordpress在apache下的伪静态规则:
<IfModule mod_rewrite.c>
RewriteEngine On RewriteBase /
RewriteRule ^index.php$ -[L]
RewriteCond %{REQUEST_FILENAME}!-f
RewriteCond %{REQUEST_FILENAME}!-d
RewriteRule . /index.php[L]
</IfModule>
这里意思其实很简单,把对所有访问index.php的文件重定向到当前根,当访问其它文件或者目录时,如果都不存在,所有请求都重定向到index.php,这样一来,我们可以访问网站上的已经存在的文件或目录,对于实际不存在的文件则交给index.php来处理。当请求交到index.php时,如果请求的是文档的固定链接,则可以查询数据库,返回文章,如果不是,则可以用index.php来生成更加友好的404页面,而不是服务器自带的404页面。那么在nginx下怎么去设置wordpressd的伪静态呢?其实在这之前,网上也能够查到很多答案,大致都是一样的结果,我摘录一下:
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(.*)/index.php;}
}
可以看到,这样设置起来实际上是非常麻烦的,特别是当在一个站点下有多个wordpress目录时,需要对每个目录都单独设置,特别容易出错。如果对Nginx真的非常熟悉,就知道它有一个“try_files”指令,用来判断资源是否存在,用法如下:
1, try_files uri1 uri1 … urin
这里是逐个判断资源是否存在,有则返回,没有则继续找下一个资源
2,try_files uri1 uri2 … =404
这里是逐个判断资源是否存在,有则返回,没有则继续找下一个资源,如果都没有,则返回404
那么,实际上这个指令正好满足wordpress伪静态的需求:当访问一个资源时,首先查看它是否在服务器上存在,如果不存在,则查看相同名称的文件夹是否存在,如果都不存在,则交给wordpress的index.php处理。所以,最终我们只需要一句代码就可以实现wordpress的伪静态:
try_files $uri $uri/ /index.php;
文章到最后,说一句,多尝试学习才是学习之道,要警惕网络上的很多答案,因为很多人懂得很少,却说的很多。
编者按:感谢“一米阳光”的投稿;来源(http://www.shuibengzhijia.com)
阿里云服务器来回折腾重装了三四次,根据LNMP包安装成功。由于这次升级了服务器的配置,添置了一块数据盘,根据教程挂载和重新安装了LNMP。在涉及到更改MYSQL目录时,发现一个问题记录一下,目前还不知是否正确。毕竟添置数据盘的目的就是为了将网站文件和数据远离系统盘以免系统问题而挂掉。
根据军哥的教程整理如下:
1.停掉mysql服务器
/etc/init.d/mysql stop
2.下面新目录以/home/wwwroot/mysql/ 为例,复制到新目录:
cp -R /usr/local/mysql/var/* /home/wwwroot/mysql/
3.授权为mysql用户组
chown mysql:mysql -R /home/wwwroot/mysql/
4.修改配置
vi /etc/my.cnf
查找[mysqld] ,在下面加入
datadir = /home/wwwroot/mysql/
5.启动mysql
/etc/init.d/mysql start
完成这些操作后通过PHPMYADMIN添加了一个测试数据库testdb,但进入新目录/home/wwwroot/mysql/下却没有发现生成数据库文件testdb,而在/usr/local/mysql/var/下却找到了它。这说明以上5步的操作只是将之前的数据搬过来,如果有新网站建立,数据库文件是不会在新目录下建立的。那么这时候我就怀疑了,新目录下的数据库会随着网站数据的更新而写入吗?
于是重走以上步骤,在第4步时我把默认目录设置注释掉,并添加datadir = /home/wwwroot/mysql。结束后再进入PHPMYADMIN添加数据库,在新目录下就可以看到生成文件,旧目录下就没有生成了。这说明旧目录已失效,以后的数据添加和修改都会在新目录更新。