重装系统重新部署了一遍环境,花了四个多小时,期间又遇到很多问题;有一些是第一次部署时就遇到了,但是没有整理出来,导致还是需要去网上搜解决方案;所以把这次遇到的问题、需要注意的点整理出来,以后好有个参考;“WordPress 问题汇总1”在这里。
1、WordPress 子主题
这次把 blog-kit 这个主题更新了,里边的改动都放到了子主题中,子主题具体具体的开发规范请参考这里;基本没什么难度,按照文档来就行了;
子主题中,文件覆盖关系大体是这样:
style.css: 唯一必须的文件,会覆盖主题中的样式,所以最好用 @import 导入主题的样式
functions.php: 不会覆盖主题下的 functions.php,相当于父子主题的两个文件合并;
其他文件: 覆盖
有一点需要注意,如果子主题中修改了主题 inc 文件夹下的内容,需要在子主题的 functions.php 中“覆盖”掉主题的引用,因为 inc 下的文件是在 functions.php 中动态引用的;
# 覆盖 template-tags模板
require get_template_directory() . '../../blog-kit-child/inc/template-tags.php';
*子主题中 functions.php 的 require 并不是覆盖了父主题中的 require,具体原理不太懂,官方文档里是这样描述的:
不像style.css,子主题中的 functions.php 不会覆盖父主题中对应功能,而是将新的功能加入到父主题的 functions.php 中。(其实它会在父主题文件加载之前先载入。)
2、切换数据库后报错:“Error Establishing a Database Connection”
如果是按照这个教程配置的,在 WordPress 中将数据库切换到了新建的库,访问页面报上面这个错,很可能是当前使用的数据库用户没有新库的权限;因为按照这个教程,给数据库用户配置数据库权限,只配置了一个 wordpress 数据库,需要给这个新库(比如叫 wordpress1)增加权限;
GRANT ALL PRIVILEGES ON wordpress1.* TO wordpressuser IDENTIFIED BY"password123";
访问 wordpress 页面报错,可以把 wp-config.php 中 define(‘WP_DEBUG’, false); 的 false 改为 true,开启 debug 模式,重新访问页面就会有详细的错误信息,然后就可以根据关键字搜索解决方案了;
3、phpmyadmin
1、phpmyadmin 中,默认导入文件是2M
解决方案在“WordPress问题汇总1”中;
2、phpmyadmin 中,导入压缩包,提示不支持
安装一下解压包就可以了
sudo apt-get install php7.0-zip
4、SSH 登录失败
这是因为SSH服务重装了,对应的 key 失效了;解决方案:
sudo nano ~/.ssh/known_hosts
打开 known_hosts 后,将 132.xx.xx.209 这个 ip 对应的一行删掉就可以了;
ssh 登录命令:ssh 用户名@服务器ip;
5、配置文件地址
这里的配置文件地址,是指按照腾讯官方文档安装后,各配置文件的地址,系统环境为 Ubuntu Server 16.04.1 LTS 64位,Web 服务器为 apache2,PHP 为 7.0;
Apache2 地址:/etc/apache2/
PHP地址:/etc/php/7.0/
phpmyadmin: /usr/share/phpmyadmin
1、修改固定链接
/etc/apache2/apache2.conf;
/etc/apache2/sites-available/000-default.conf;
3、修改主目录(DocumentRoot)
/etc/apache2/sites-available/000-default.conf
4、启用HTTPS
/etc/apache2/sites-available/default-ssl.conf;
/etc/apache2/mods-enabled/env.load,该文件中包含这句代码:LoadModule env_module /usr/lib/apache2/modules/mod_env.so,有的教程里,说要注释这句代码,实际我没有注释,也能正常运行;
5、修改上传文件大小,导入或在 phpmyadmin 中恢复数据时可能用到
/etc/php/7.0/apache2/php.ini
/usr/share/phpmyadmin/import.php
1.6、FTP 相关配置
/etc/vsftpd.conf
6、常用命令
1、根据文件名查找文件所在地址,可以用这个命令:find /etc -name php.ini;
表示在 /etc 的所有子目录中查找 php.ini 文件;
2、rm -rf 要删除的文件名或目录:直接删除无需确认
- -i 删除前逐一询问确认;
- -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认;
- -r 将目录及以下之档案亦逐一删除;
3、mv 命令,移动文件或修改名称
- mv 文件名 文件名:将源文件名改为目标文件名;
- mv 文件名 目录名:将文件移动到目标目录;
- mv 目录名 目录名:目标目录已存在,将源目录移动到目标目录;目标目录不存在则改名;
mv 目录名 文件名:报错;
mv /usr/student/* . 移动 usr/student下的所有文件到当前目录;
4、chmod,只记录了常用的两个,其他参数也就不整理了
chmod -R 777 upload/:修改 upload 文件夹下所有文件、文件夹权限为可读、可写、可执行
chmod 505 upload:修改文件/文件夹为可读、可执行权限
7、安装 FTP
1、安装 vsftpd 服务
sudo apt-get install vsftpd
2、修改配置文件 /etc/vsftpd.conf :
- pam_service_name=ftp:默认vsftpd,ubuntu里边需要更改成ftp
- anonymous_enable=NO:拒绝匿名登录,默认就是NO
- write_enable=YES:设置可以上传文件,不设置只能下载
- xferlog_enable=YES:开启日志记录
- xferlog_file=/var/log/vsftpd.log:设置日志文件路径
- xferlog_std_format=YES:设置日志格式为标准输出
- utf8_filesystem=YES:utf-8 编码
其他还有 chroot 相关的几个权限相关的设置,都没有用到,因为只有我自己用;
3、创建 FTP 文件夹和用户
// 1、创建用户 user1
useradd -d /home/user1 -s /sbin/nologin user1
// 2、修改密码:
passwd user1
// 3、设置权限:
chmod 777 /home/user1
设置的 FTP 文件夹最好和 WordPress 源码分开,需要上传文件的时候,先传到 FTP 文件夹中,然后用命令 mv 移动或覆盖,这样能减少误操作的风险;
上面的代码中,我设置了一个 user1 用户,可以往 /home/user1 里传东西;
4、重启 vsftpd 服务
sudo service vsftpd restart