移植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_urlhomeoption_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>
posted @ 2016-10-21 12:56  高-岩  阅读(466)  评论(0编辑  收藏  举报