惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
The GitHub Blog
The GitHub Blog
T
Threatpost
人人都是产品经理
人人都是产品经理
大猫的无限游戏
大猫的无限游戏
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
博客园 - Franky
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Apple Machine Learning Research
Apple Machine Learning Research
酷 壳 – CoolShell
酷 壳 – CoolShell
M
MIT News - Artificial intelligence
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
云风的 BLOG
云风的 BLOG
S
Security Affairs
P
Proofpoint News Feed
L
LINUX DO - 最新话题
宝玉的分享
宝玉的分享
S
Security @ Cisco Blogs
H
Hacker News: Front Page
Security Archives - TechRepublic
Security Archives - TechRepublic
Vercel News
Vercel News
Engineering at Meta
Engineering at Meta
Know Your Adversary
Know Your Adversary
Y
Y Combinator Blog
美团技术团队
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
月光博客
月光博客
量子位
博客园_首页
The Last Watchdog
The Last Watchdog
D
DataBreaches.Net
www.infosecurity-magazine.com
www.infosecurity-magazine.com
P
Privacy International News Feed
The Register - Security
The Register - Security
Schneier on Security
Schneier on Security
H
Help Net Security
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
V
Visual Studio Blog
Google DeepMind News
Google DeepMind News
F
Full Disclosure
C
Cyber Attacks, Cyber Crime and Cyber Security
MyScale Blog
MyScale Blog
aimingoo的专栏
aimingoo的专栏
S
Schneier on Security
L
Lohrmann on Cybersecurity
S
Secure Thoughts
Stack Overflow Blog
Stack Overflow Blog
Cloudbric
Cloudbric
Microsoft Security Blog
Microsoft Security Blog

阿猪的博客

如何使用CNB构建Hexo项目并部署到腾讯云COS 好坑爹!派息后买入的股票怎么也扣股息税? 游哈尔滨 跨年往事 安装Ta-Lib时报错"Could not build wheels" 网站被恶意镜像了该怎么办 延迟退休正式到来!来看看有什么规定 我的基金怎么就被强制卖出了? Hexo-AlgoliaSearch插件报错“Error has occurred during indexing posts” 找工作避坑不完全指南 办理信用卡应该注意什么 华为Pad开启了“共享至电脑”,但是Windows下无法正常访问 webdriver-manager报错一例 Windows无法从环境变量中找到Python的正确位置 习大大2024年新年贺词 号外!号外!Twikoo可以直接屏蔽垃圾评论啦! 如何将Coding的代码仓同步到Github 博客被攻击了 华为Pad开启了“共享至电脑”,但是Ubuntu下无法正常访问 如何恢复Etcher刻录过的U盘 如何在Ubuntu下快速切换网络代理状态 在腾讯云函数中使用Pandas报错`No module named 'numpy.core._multiarray_umath'` 对空的DataFrame使用apply方法未得到预期结果 SQLite中使用关键字作为列名称导致报错 Logging模块重复输出内容的原因及解决方法 如何在Selenium中保持网站的登录状态 如何下载与Chrome浏览器的版本相匹配的ChromeDriver 如何下载旧版本Python的安装包 如何为不同的Python项目自动选择不同的解释器 使用腾讯云函数搭建Web站点 WordPress CORS问题一例 在AWS Amplify中部署Jekyll站点 让Chirpy主题支持折叠展示代码块 实现ChatGPT的文字输出效果 python中使用'''注释代码后引起报错 使用python自带的email模块解析邮件 使用pandas_bokeh在地图上显示数据 如何通过复权因子计算复权价格 国内量化平台不完全汇总
踩坑阿里云函数计算搭建WordPress
阿猪 · 2023-04-28 · via 阿猪的博客

  阿里云在社区应用中提供了现成的模板供用户快速创建一个基于函数计算+NAS存储的WordPress站点,服务器环境是基于Nginx+php,数据库是基于sqlite。本文记录阿猪使用阿里云的函数计算服务搭建WordPress的一些采坑过程。

一、部署站点

  阿里云提供了命令行工具和在线部署两种部署方法,两种方法的核心原理是一样的。

方法1:使用s工具

  对于喜欢使用命令行工具的用户,可以使用阿里云提供的serverless-devs工具(简称“s工具”)。具体教程请参考这里:基于函数计算快速搭建WordPress博客系统

  请注意,教程中的服务器环境并不是必须的,你可以使用自己的本地Linux或者Windows环境完成同样的任务。

方法2:在线部署

  阿里云也提供了更为简便的在线部署方法(也称“白屏化”方法),点击这里可以直接开始创建一个WordPress应用。

二、环境优化

1、添加写权限

  使用s工具中的模板安装完成后,会遇到WordPress无法通过管理后台升级、安装插件、模板的问题。这是因为缺少WordPress所在目录的写权限。
  解决办法:打开函数计算的管理后台,在服务与函数列表中找到WordPress对应的服务。点击名称后进入该服务对应的函数管理列表,然后点击wordpress(默认名称)进入WebIDE。

  在Web IDE中打开`start.sh`文件,在如图所示的权限配置代码的下方插入如下代码,然后保存并点击“部署”:
1
2
chown -R www-data /mnt/auto/wordpress
chmod -R 775 /mnt/auto/wordpress

  注:以上代码中使用的是教程中的模板生成的默认路径。

2、添加SSL支持

  为部署好的站点安装SSL证书后,发现WordPress前台可以访问,但是wp-admin后台无法访问。这是因为没有给WordPress开启https。

  解决办法:打开WordPress目录下的wp-config.php,在适当的位置插入如下代码:

1
2
3
$_SERVER['HTTPS'] = 'on';
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

3、优化URL Rewrite规则

  使用在线部署方法部署的WordPress站点,在访问robots.txt、wp-sitemap.xml文件时,会发现虽然页面可以正常显示,但是HTTP Header返回的状态码确是404,这会导致搜索引擎无法正常对站点进行索引。

  这是因为在WordPress中,robots.txt、wp-sitemap.xml这类文件是虚拟的文件,并不存在真实的物理路径,需要在Nginx中正确配置Rewrite规则才能正常访问。而使用在线部署方法部署的WordPress站点,其生成的Nginx.conf配置文件中有些规则上的冲突,导致Nginx在响应https://yfzhu.cn/robots.txt这种包含后缀的伪静态URL时会错误的返回404状态。

  解决办法:参照前边的方法打开Web IDE,在Web IDE中打开nginx.conf文件,按照如下步骤修改:
(1)在第53行的开头插入一个#,将该行注释掉:

1

(2)将第69行的try_files $uri =404;修改为:

1
try_files $uri $uri/ /index.php?$args;

  解决冲突的方法并不唯一,使用这个方法暂时没有发现引起新的问题。

4、优化访问速度

  经过多次测试,阿猪发现serverless和ECS之类的服务器在ping的速度上没有明显差异,但是在服务器渲染页面的速度上会相差1秒左右。

  解决办法:放弃serverless,花钱买ECS服务器

  缓解办法:
  (1)适当提高函数的配置并限制并发数。建议配置不低于1核1GB,不高于2核2GB,并发数不高于15。
  (2)为WordPress安装WP Super Cache之类的静态缓存插件,将页面提前预缓存为html文件,从而省去每次渲染页面的时间。

三、管理NAS里的文件

1、挂载NAS到服务器

  把NAS挂载到阿里云的ECS上,通过/mnt/<挂载目录>访问,这要求NAS和ECS在同一个地域。比如都在杭州、都在北京。如果不在同一个地域,需要在专有网络中使用云企业网创建一个跨地域的虚拟内网。(注:使用这个服务会产生费用)
  这个方法虽然不方便,但是在使用体验上等同于在原生服务器上读写文件,适合量大、复杂的文件操作。

2、使用可道云在线管理文件

  使用函数计算部署一个可道云应用,然后挂载同一个NAS,便可使用可道云对NAS内的文件进行web可视化管理。参见教程:使用函数计算快速搭建管理NAS的可视化应用

3、在WordPress中安装ftp插件

  这个方法受服务器限制大,只适合简单的文件编辑和少量文件的上传下载。

4、使用专业版WebIDE

  专业版WebIDE本质上是一个挂载了NAS的函数计算服务,可以直接访问挂载的NAS。(注:专业版WebIDE使用了函数计算、NAS这两项服务,会产生费用)

版权声明: 未经书面授权许可,任何个人和组织不得以任何形式转载、引用本站的任何内容。本站保留追究侵权者法律责任的权利。