我使用Ubuntu 16.04作为Web服务器和mysql服务器已有很多年了。它们都在同一服务器上,可以在docker容器中运行,也可以在服务中运行。为了获得更好的性能,我决定将它们分离到不同的层。我将使用GCP 云 SQL服务作为我的数据库层。

在GCP Computer Enginer中启动另一个VM->VM实例,使用Ubuntu 18.04模板创建一个新的VM实例。

安装PHP

sudo apt update & apt upgrade & dist-upgrade
sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc
sudo apt-get install php libapache2-mod-php

如果“ PHP”页面中缺少SQL扩展,则可能需要运行以下命令:

sudo apt-get install php7.2-mysql



获取WordPress

wget //wordpress.org/latest.tar.gz
sudo apt install apache2
cd /var/www
sudo tar xpf ~/latest.tar.gz
sudo chown -R www-data:www-data /var/www/wordpress

Apache配置

如果您的服务器上已经安装了apache2,您只需要为您的站点创建一个新的虚拟主机。首先复制默认配置或以前的配置以修改以托管WordPress。

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/wordpress.conf
sudo vi /etc/apache2/sites-available/wordpress.conf

打开您的配置并修改 DocumentRoot 指向您打开包装的位置 wordpress directory.

DocumentRoot /var/www/wordpress

设置 ServerName 到您网站的域(或localhost或 公用IP地址 如果您只是在测试)。

ServerName 51sec.org

为创建别名 www version too.

ServerAlias www.51sec.org

完成后,保存文件并退出。在Apache中启用您的网站。

$ sudo a2ensite wordpress.conf

重新加载Apache。

$ sudo systemctl reload apache2
Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-1036-gcp x86_64)

 * Documentation:  //help.ubuntu.com
 * Management:     //landscape.canonical.com
 * Support:        //ubuntu.com/advantage

  System information as of Sat Jul 13 12:11:51 UTC 2019

  System load:  0.0               Processes:           106
  Usage of /:   17.9% of 9.52GB   Users logged in:     1
  Memory usage: 60%               IP address for ens4: 10.128.0.2
  Swap usage:   0%


 * Canonical Livepatch is available for installation.
   - Reduce system reboots and improve kernel security. Activate at:
     //ubuntu.com/livepatch

0 packages can be updated.
0 updates are security updates.


Last login: Sat Jul 13 01:53:27 2019 from 173.194.90.34
[email protected]:~$ cd /
[email protected]:/$ ls
bin   dev  home        initrd.img.old  lib64       media  opt   root  sbin  srv  tmp  var      vmlinuz.old
boot  etc  initrd.img  lib             lost+found  mnt    proc  run   snap  sys  usr  vmlinuz
[email protected]:/$ cd /etc/apache2/
[email protected]:/etc/apache2$ ls
apache2.conf    conf-enabled  magic           mods-enabled  sites-available
conf-available  envvars       mods-available  ports.conf    sites-enabled
[email protected]:/etc/apache2$ cd sites-available/
[email protected]:/etc/apache2/sites-available$ ls
000-default.conf  default-ssl.conf  wordpress.conf
[email protected]:/etc/apache2/sites-available$ vi wordpress.conf 
[email protected]:/etc/apache2/sites-available$ sudo a2enmod rewrite
Enabling module rewrite.
To activate the new configuration, you need to run:
  systemctl restart apache2
[email protected]:/etc/apache2/sites-available$ sudo service apache2 restart
[email protected]:/etc/apache2/sites-available$ sudo nano /etc/apache2/apache2.conf 
[email protected]:/etc/apache2/sites-available$ sudo service apache2 restart
[email protected]:/etc/apache2/sites-available$ 

将WordPress从Ubuntu 16.04平台迁移到Ubuntu 18.04平台

我曾经使用All-in-One WP Migration插件将WP站点从一台服务器迁移到另一台服务器。但是这次,在将备份文件导入新服务器时遇到了问题。我认为这可能与PHP版本有关,因为新的Ubuntu 18.04使用的是PHP 7。

快速在线搜索,似乎很多人在使用“多合一WP迁移”时都遇到了此问题。这也使我进入了一个新的迁移工具– Duplicator。

它并不像All-in-One WP Migration插件那样易于使用。但是它做得很好。

步骤1.创建包
创建几个快照文件夹或tmp文件夹,并为/ var / www / html文件夹写入权限时,可能会遇到一些问题。但是您基本上可以手动创建文件夹并将www-data:www-data授予/ var / www / html或您自己的wp文件夹,例如/ var / www / wordpress

打包站点比All-in-One插件小得多,分别为112MB和176MB。

步骤2.扫描
它将检查服务器设置,WordPress设置,文件大小和dabatase大小。我的数据库大小只有43MB。但是文件大小为174MB。

步骤3.建立
它将所有内容压缩到一个存档文件中。构建完成后,您将获得installer.php和已归档文件的下载链接。不要更改已存档的文件名,因为它包含哈希值,并且文件名模式对于还原过程很重要。

每个安装程序对于一个软件包都是唯一的。如果碰巧丢失了安装程序文件,则archive.zip中有一个名为installer-backup.php的文件,与原始安装程序相同。

第4步。将第4步文件上传到新服务器的文件夹,例如/ var / www / html。请确保新服务器的wordpress文件夹/ var / www / html下没有其他文件。

如果要恢复现有的WordPress安装,则需要手动删除wp-config.php文件。这是一种安全措施,因此您不会意外覆盖现有网站。

第五步 启动安装程序脚本
In your browser, type the address of your website with /installer.php added at the enf of your site URL (http://35.21.134.251/installer.php).

如果ziparchive和unzip存在问题,请运行以下两个命令,然后重试:

  1. 输入以下命令以安装Zip:
    sudo apt-get install zip
  2. 输入以下命令以安装Unzip:
    sudo apt-get install unzip

您可能还需要执行以下命令:

  1. sudo apt-get install php7.2-zip
  2. sudo systemctl restart apache2

不要忘记重启apache2服务。

一件事,您将需要更改的是对wordpress文件夹设置可写权限。

sudo chown -R www-data:www-data /var/www/wordpress

使用您先前在GCP DB页面上定义的GCP 云 DB IP,现有数据库名称,用户名和密码连接到远程MySQL DB。

我们可能还需要更改网站设置。通常,在所有测试通过之前,我将使用IP设置作为URL,然后从WP Site Admin页面更改它们-> Settings -> General Settings:

  • WordPress Address (URL) – http://35.21.134.251/
  • Site Address (URL) – http://35.21.134.251/

later, I will change both of them to http://140.238.157.42

步骤6.测试站点


您的新WP网站现在应该已启动并正在运行。但是有一个问题。 ÿ您可能只能访问主页,但不能进入任何其他链接。那是因为 永久链接 不工作。

在较新版本的apache2中,您需要启用以下模块:
sudo a2enmod rewrite
sudo service apache2 restart
您可能还需要修改apache2.conf文件。
sudo nano /etc/apache2/apache2.conf
将您的Web目录覆盖规则更改为 允许全部覆盖.
<Directory /var/www/>
    Options Indexes FollowSymLinks
    允许全部覆盖
    Require all granted
</Directory>
之后,重新启动服务。
sudo service apache2 restart


References:

通过 约翰扬

发表评论