引子
一直将博客托管在虚拟主机上,然鹅自己有一台 VPS 用于科学上网有些浪费,索性将博客迁移了过来,因为从合租变成别墅,速度也有小小提升。折腾期间遇到一些问题,记录如下,如遇到新问题,也会不断更新。
首先介绍下我的 LAMP 环境:
- Ubuntu 16.04
- Apache 2.4.18
- MySQL 14.14
- PHP 7.0
问题
固定链接无效
首先启用 a2enmod
模块。
sudo a2enmod rewrite
编辑 Apache 配置文件
vim /etc/apache2/apache2.conf
将与 WordPress 存放目录相关的 AllowOverride None
修改为:AllowOverride All
。可参考我的配置:
<Directory /var/www/>
Options Indexes FollowSymLinks
# AllowOverride None
AllowOverride All
Require all granted
</Directory>
在网站的根目录创建 .htaccess
文件并设置其权限可读写。
touch .htaccess
chmod 770 .htaccess
vim .htaccess
将如下内容添加到 .htaccess 文件内。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress#
重启 apache 服务器
service apache2 restart
安装插件需输入FTP账号
出现这样的问题是 web 服务缺少相应的权限。解决思路是先确定出执行 web 服务的用户名,然后赋予相应的权限即可。
查看当前 web 服务的用户名可以用如下命令,列出当前所有执行的进程自己筛选。
ps -aux
如果你的 LAMP 环境与我一致,也是 apache2 当前 web 服务的用户名为 www-data
,之后执行以下语句修改即可。
chown -R www-data /var/www/html/
# /var/www/wordpress/ 替换为你自己的 wordpress 安装路径
Apache2 错误提示
某日瞎折腾之后 apache2 出现如下错误:
apache2 configtest failed with output "No MPM loaded."
试了很多解决方法后均无效,我的解决方案很 ugly —— 重装 php
😂。
sudo apt-get purge php7.*
至于如何安装请参考: https://www.digitalocean.com/community/tutorials/how-to-install-wordpress-with-caddy-on-ubuntu-16-04
SSH root 登录错误提示
ssh root@your_serve_ip_address
# Permission denied, please try again.
vim /etc/ssh/sshd_config
# PermitRootLogin without-password
PermitRootLogin yes
重启服务器
apt-get install php-mbstring
apt-get install php-xml php-xmlrpc