上个星期折腾了一下自已的一个网站,将它由香港虚拟主机搬迁到了Linode 的VPS(日本机房)。由于自已使用VPS比较少,所以还是碰到了一些问题,在这篇文章中记录一下吧。
一、安装lnmp
使用军哥的lnmp一键安装包,依教程安装完全没问题https://lnmp.org/install.html。不过安装完成之后发现两个小问题:
1、添加域名之后,通过IP可以看到“恭喜您,LNMP一键安装包安装成功!”,但是通过域名访问时出现“403 forbidden”的提示信息,后来通过在域名文件夹下面添加index.html解决。
2、安装成功之后,进入PHPMyadmin时出现如下错误:
SET lc_messages = 'zh_CN'; MySQL 返回: 文档 #1193 - Unknown system variable 'lc_messages'
在网上搜索了一下,应该是phpmyadmin对mysql的版本问题,最新版本的phpmyadmin是不适用老版本的mysql数据库,至少是5.6以下的。
后来通过降级PHPMyAdmin解决,方法也很简单,直接用新的解压后规换旧的就可以了,不用安装。
二、移动wordpress文件
在Linux环境下载wordpress安装文件并解压后,需要将解压出来的wordpress文件夹内全部文件移动到域名目录下,再进行安装。Linux环境下移动文件及文件夹的命令如下(别忘了后面的.)
# mv wordpress/* .
三、无法通过FTP上传模板文件
安装完wordpress之后,无法通过 FTP上传模板文件,后台试了一下,可以通过后台上传解决。但是后台添加图片出现:
无法建立目录wp-content/uploads/2017/06
在网上找了一下:出现这类原因,是由于wordpress目录不属于当前的用户和组,即web访问的用户没有权限操作wp的一切需要写权限的操作,其实就是linux下权限不足,无法写入造成的。
解决的方案是:
1、给予wp-content目录777权限,
2、给博客的文章上传一张图片,WP会生成一个目录,然后查看是哪个用户创建了文件夹。一般情况下,这个用户名叫“apache”,也有不少人发现这个用户是“nobody”,如果使用的是军哥的LNmp,这个用户是“www”。
3、将wp-content目录权限改回755。
4、改变wp所在文件夹的拥有者为用户www。
因为我是用的是军哥的LNmp一键安装包,所以只需要改变wp所在文件夹的拥有者为用户www,通过以下命令即可:
cd .. chown -R www:www my_wp_blog
还有,可以看这里,我在wwwroot文件夹下面用下面这两个命令,都是出现:Operation not permitted的错误提示。
chown -R www:www www.xxx.com
chown www:www -R /home/wwwroot/www.xxx.com/
要用如下命令
chown www:www -R /home/wwwroot/www.xxx.com/*
当然,如果你要查看该目录下所有文件/文件夹的权限,所属用户、用户组,则需要进入到wp的wp-content目录,使用如下的命令:
ls -l total 16 -rw-r–r– 1 root root 30 May 4 2007 index.php drwxr-xr-x 3 root root 4096 Feb 10 19:31 plugins drwxr-xr-x 5 root root 4096 Mar 23 03:04 themes drwxrwxrwx 3 www www 4096 Mar 24 02:08 uploads
可以看到上传目录 uploads 是用户 www 创建的。
看其中rwx这串字符串一共有十位数,其中:
最前面那个 - 代表的是类型
中间那三个 rwx 代表的是所有者(user)拥有的权限
然后那三个 rwx 代表的是组群(group)拥有的权限
最后那三个 rwx 代表的是其他人(other)拥有的权限
r 表示文件可以被读(read)
w 表示文件可以被写(write)
x 表示文件可以被执行(如果它是程序的话)
-表示相应的权限还没有被授予
四、后台不显示其他的主题
通过删除scandir解决。
1.通过lnmp脚本
LNMP已经内置了删除禁用函数的脚本, 直接运行也可以.
/root/lnmp1.4/tools/remove_disable_function.sh
2.修改php.ini
找到 php.ini,一般在服务器的 /usr/local/php/etc 目录下(有权限的FTP账户可以操作,且一般是这个位置);
用vi打开 php.ini,查找其中的“disable_funcions”字样((在命令模式下,即按ESC后进入的状态,按i则进入文本输入模式),输入“/scandir”找到并删除紧随其后的“scandir”,最后保存该文件;
重启服务器的php服务后方可生效(不懂的话就直接通过管理后台重启服务器也行)。
/etc/init.d/php-fpm restart
五、设定日志记录
LNMP一键安装包默认开启了日志记录,这样就会在 /usr/local/mysql/var/ 目录下面生成大量 mysql-bin.0000* 类似的文件,大小甚至达到几个G!
所以,我们需要做下调整。既要保留日志记录以方便日后查看,又不能生成太多占用空间。
于是,编辑 /etc/my.cnf 文件:
# vi /etc/my.cnf
在 [mysqld] 部分中加入 expire_logs_days = 5 语句,表示每5天自动清理日志记录。
保存退出,重启mysql:
# /etc/init.d/mysql restart
最后,为确保万无一失,建议重启一下VPS:
# reboot
搞定!
原载:蜗牛博客
网址:http://www.snailtoday.com
尊重版权,转载时务必以链接形式注明作者和原始出处及本声明。