移植WordPress到Ubuntu16.04
移植WordPress到Ubuntu16.04
移植WordPress到Ubuntu16.04
搭建好LAMP环境后,可以按照以下方法,将本地站点移植到服务器上。
以WordPress为例,假设:
站点根目录为
/var/www/wordpress
MySQL数据库为
wp
表前缀为
wp_
访问URL为
http://172.22.109.203:8000
配置Apache监听端口
1. 添加监听的端口
vim /etc/apache2/ports.conf
添加一行:Listen 8000
2. 添加虚拟主机
vim /etc/apache2/sites-enabled/000-default.conf
添加如下内容:
<VirtualHost *:8000>
# ServerAdmin webmaster@localhost
DocumentRoot /var/www/wordpress
ServerName localhost
ServerAlias localhost
<Directory "/var/www/wordpress">
AllowOverride all
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/wordpress_error.log
CustomLog ${APACHE_LOG_DIR}/wordpress_access.log combined
</VirtualHost>
将端口号替换为需要的8000
将DocumentRoot、Directory、ErrorLog、CustomLog文件路径改为站点的路径
3. 重启Apache
service apache2 restart
4. 配置Iptables
Ubuntu的防火墙可能会屏蔽外网对服务器端口对访问。因此需要打开8000端口
查看防火墙配置信息
iptables -L
Ubuntu16.04默认开放了80端口,没有开放8000等端口。配置Iptables规则
vim /etc/iptables.up.rules
添加一行
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8000 -j ACCEPT
应用防火墙规则
iptables-restore < /etc/iptables.up.rules
查看防火墙配置信息
iptables -L
若出现ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:8000
,则防火墙配置成功。
移植WordPress
1. 上传站点目录
使用FTP工具,将本地等站点目录,上传到服务器/var/www/
下
2. 导入数据库
使用phpMyAdmin或其他MySQL管理工具,将本地MySQL中WordPress数据库导出为
.sql
文件。将
.sql
文件导入到服务器的MySQL。
3. 修改WordPress配置
vim /var/www/wordpress/wp-config.php
更正数据库的名称、用户名、密码、表前缀等。
4. 修改链接
修改MySQL中wp_options
数据表,将site_url
和home
的option_value
更正为:
http://172.22.109.203:8000
常见问题
1. 解决链接失效
移植WordPress后,首页可以显示出来了。但是点击菜单、文章、页面、目录等,会显示404
为Apache2开启mod_rewrite模块
查看是否开启mod_rewrite:
find /etc/apache2/mods-enabled/ -name rewrite.load
若没有,将 rewrite.load 添加到 /etc/apache2/mods-enabled
sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/
WordPress根目录内新建.htaccess文件
vim /var/www/wordpress/.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
2.解决后台登录界面的403 Forbidden
这是由于Apache2的安全模块对访问做了限制。
vim /var/www/wordpress/.htaccess
在开头添加如下内容:
<Files wp-login.php>
Order Deny,Allow
Deny from all
Allow from all
</Files>