我在我的WordPress博客上使用LAMP已有很多年了。由于Google 云 Platform免费虚拟机的限制(614M内存和1个vCPU),如果将所有组件放在一台计算机上,我的网站总是会遇到性能问题。从去年开始,我一直尝试使用其他类型的技术来提供帮助。我尝试使用Docker,也将Mysql db分离到另一个vm中。所有这些更改都在特定条件下起作用,但对于GCP f1.micro VM来说还不够好,直到我找到Nginx和MariaDB。这种组合使用的资源较少,也使我有可能将所有组件压缩到一个免费的GCP层f1.micro VM中。
这篇文章是记录我使用的所有步骤和命令。您会在帖子结尾找到YouTube视频,以介绍安装过程。整个步骤将需要30分钟到45分钟才能完成。
1.创建Ubuntu VM并将其更新到最新版本
sudo apt update && sudo apt dist-upgrade && sudo apt autoremove
2.安装Nginx
sudo apt install nginx
sudo systemctl stop nginx.service sudo systemctl start nginx.service sudo systemctl enable nginx.service
3.安装MariaDB
如果已经安装了MariaDB,则可能要先使用命令“ sudo apt-get remove mariadb-server”将其删除。
安装software-properties-common:
sudo apt-get install software-properties-common
导入MariaDB gpg密钥:
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
添加apt仓库:
sudo add-apt-repository "deb [arch=amd64,arm64,ppc64el] http://mariadb.mirror.liquidtelecom.com/repo/10.4/ubuntu $(lsb_release -cs) main"
安装MariaDB服务器:
sudo apt update sudo apt -y install mariadb-server mariadb-client
安全MariaDB
sudo mysql_secure_installation
出现提示时,请按照指南回答以下问题。
输入root的当前密码(不输入密码):只需按 输入
设置root密码? [是/否]: Y
新密码: 输入密码(yyy123456)
重新输入新的密码: 重复密码(yyy123456)
删除匿名用户? [是/否]: Y
禁止远程root登录? [是/否]: Y
删除测试数据库并访问它? [是/否]: Y
现在重新加载特权表? [是/否]: Y
4.创建WordPress数据库和用于连接的用户
使用您在上一步中输入的root帐户和密码登录到MariaDB
sudo mysql -u root -p
创建一个空白数据库wp_db;
CREATE DATABASE wp_db;
创建一个专用于WordPress连接的新数据库用户。
CREATE USER 'wp_db_user'@'localhost' IDENTIFIED BY 'password1234';
向该新用户授予对新数据库wp_db的完全访问权限
GRANT ALL ON wp_db.* TO 'wp_db_user'@'localhost' IDENTIFIED BY 'password1234' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
其他一些数据库命令来验证创建的数据库
show databases;
use wp_db;
show tables;
5.安装PHP
php7.2将用于此安装。
sudo apt install php-fpm php-common php-mbstring php-xmlrpc php-soap php-gd php-xml php-intl php-mysql php-cli php-ldap php-zip php-curl
如果要更改PHP配置,请使用以下命令进行编辑:
sudo nano /etc/php/7.2/fpm/php.ini
不必执行此步骤进行任何更改。
6.安装和配置WordPress
将最新版本下载到本地临时文件夹:
cd /tmp && wget //wordpress.org/latest.tar.gz tar -zxvf latest.tar.gz sudo mv wordpress /var/www/html/wordpress
为WordPress根文件夹设置正确的权限
sudo chown -R www-data:www-data /var/www/html/wordpress/ sudo chmod -R 755 /var/www/html/wordpress/
创建一个新的WordPress wp-config.php文件。
sudo mv /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php
更改配置以连接到本地新的MariaDB服务器:
sudo nano /var/www/html/wordpress/wp-config.php
// ** MySQL settings - You 能够 get this info from your web host ** // /** The name of the database for WordPress */ define('DB_NAME', 'wp_db'); /** MySQL database username */ define('DB_USER', 'wp_db_user'); /** MySQL database password */ define('DB_PASSWORD', 'password1234'); /** MySQL hostname */ define('DB_HOST', 'localhost'); /** Database Charset to use in creating database tables. */ define('DB_CHARSET', 'utf8'); /** The Database Collate type. Don't change this if in doubt. */ define('DB_COLLATE', '');
Ctrl + W保存文件。
7.为此新的WordPress网站配置Nginx
创建一个名为wordpress的新配置文件
sudo nano /etc/nginx/sites-available/wordpress
然后将下面的内容复制并粘贴到文件中并保存。更换 example.com 用您自己的域名。在切换到域之前,您可能还希望将wordpress网站的公共IP添加到服务器名称列表中以进行测试。
server { listen 80; listen [::]:80; root /var/www/html/wordpress; index index.php index.html index.htm; server_name 54.32.104.91 51sec.org www.51sec.org; client_max_body_size 100M; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
启用新的wordpress网站
sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
重新启动Nginx和PHP-FPM以加载新设置。
sudo systemctl restart nginx.service sudo systemctl restart php7.2-fpm.service
重新启动这两项服务后,您可以浏览到网站的域名或公共IP以启动WordPress默认配置向导:

然后,确保您方便掌握数据库名称,用户和密码的详细信息。在出现提示时输入它们:
如果一切顺利,您应该可以运行WordPress安装:
给您的WordPress网站一个标题,然后输入创建您的管理员帐户所需的信息:
然后点击 安装WordPress。
就是这样!您刚刚学习了如何手动安装WordPress。现在,您可以使用在安装过程中输入的帐户详细信息登录:
8.绩效评估
一小时图中,大部分时间的CPU使用率介于5%和15%之间。
在一天的性能图表中,CPU加速运行了10分钟。其他时间,CPU大多在10%到20%之间。
对于CentOS上的相同安装,尽管过程相同,但有一些不同的命令。
YouTube:
其他一些步骤或对WordPress问题进行故障排除,请参阅我的另一篇文章:
//blog.fabiandinkins.com/2017/09/troubleshooting-wordpress-out-of-memory.html
GCP免费套餐的性能调整
运行apt更新任务时,CPU出现了一些问题。我发现了几个命令来禁用这些计划的任务,这使我的GCP Free Tier VM现在更加稳定。 在Ubuntu 18.04(及更高版本)上,随机计划的apt更新/升级可能涉及多达两项服务。第一个apt-daily.service刷新软件包列表。但是,可能还有第二个apt-daily-upgrade.service,它实际上安装了安全关键软件包。
Sep 10 06:28:28 ubuntu-min-nginx systemd[1]: Starting Daily apt upgrade 和 clean activities... Sep 10 06:28:40 ubuntu-min-nginx systemd[1]: Started Daily apt upgrade 和 clean activities. Sep 10 18:32:28 ubuntu-min-nginx systemd[1]: Starting Daily apt download activities... Sep 10 18:32:28 ubuntu-min-nginx systemd[1]: Started Daily apt download activities.
基本上我们 can systemctl disable
服务及其关联的计时器(即 apt-daily.timer
and apt-daily-upgrade.timer
)。
sudo systemctl stop apt-daily.timer
sudo systemctl stop apt-daily-upgrade.timer
sudo systemctl disable apt-daily.service
sudo systemctl disable apt-daily.timer
sudo systemctl disable apt-daily-upgrade.timer
sudo systemctl disable apt-daily-upgrade.service
sudo systemctl mask apt-daily.service apt-daily-upgrade.service
sudo systemctl daemon-reload
mv /usr/lib/apt/apt.systemd.daily /usr/lib/apt/apt.systemd.daily.DISABLED
参考文献: