wordpress手动搭建

wordpress6.8.2手动部署

手动部署参考文档

手动部署LNMP环境(Linux、Nginx、MySQL和PHP)_云服务器 ECS(ECS)-阿里云帮助中心

搭建lnmp框架环境

环境 ubuntu22.04 阿里云服务器2g2核40g

1.使用Nginx官方源安装Nginx。

#更新系统已安装软件并更新包管理工具
sudo apt update -y
#Nginx安装前必要环境
sudo apt install -y curl gnupg2 ca-certificates lsb-release ubuntu-keyring
#导入官方Nginx签名密钥
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
#设置apt仓库
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
#安装nginx
sudo apt install -y nginx

2.更新软件包列表并安装MySQL服务器。

sudo apt update -y && sudo apt install -y mysql-server

3.修改MySQL服务器root用户的密码和身份认证插件。<newpwd>替换为新的密码。

执行命令,提示输入密码,直接回车就可以了

sudo mysql -uroot -p -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '<newpwd>';" -e "FLUSH PRIVILEGES;"

4.安装PHP。

可以通过sudo apt search php查看所有支持安装的PHP版本,安装其他版本需要修改命令中对应版本号(例如:安装PHP8.1需修改命令sudo apt install -y php8.1 php8.1-fpm php8.1-mysql)。

我们这里安装php8.4

#安装software-properties-common包,并添加PPA仓库ppa:ondrej/php
sudo apt update && sudo apt install -y software-properties-common && sudo add-apt-repository -y ppa:ondrej/php
#安装PHP 8.4及相关组件,包括FPM和MySQL扩展
sudo apt install -y php8.4 php8.4-fpm php8.4-mysql

5.验证LNMP环境。

a.查询php-fpm配置文件默认监听地址,<version>需要替换为您的PHP版本(例:PHP8.4需要将<version>替换为8.4)。

sudo grep '^listen =' /etc/php/8.4/fpm/pool.d/www.conf

如果返回sock文件地址说明默认监听sock文件。

如果返回127.0.0.1:9000说明默认监听本地9000端口。

b.使用tee命令编辑/etc/nginx/conf.d/default.conf文件添加PHP转发规则,需要替换为您的监听地址(如果是sock文件需要在地址前方增加unix:

#移除默认站点配置
sudo rm -f /etc/nginx/sites-enabled/*
#写入配置文件
sudo tee /etc/nginx/conf.d/default.conf <<-'EOF'
server {
    listen       80;
    server_name  localhost;
    root /usr/share/nginx/html;
    location / {
            index index.php index.html index.htm;
    }
    location ~ .php$ {
            root /usr/share/nginx/html;
            fastcgi_pass unix:/run/php/php8.4-fpm.sock;#这里要修改为上面查询到的目录
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}
EOF

c.重启Nginx服务使修改后的配置文件生效。

 sudo systemctl restart nginx

d.使用tee命令在路径/usr/share/nginx/html下新建test.php 的 PHP 文件,并添加用于测试数据库连接的代码。(<username>替换为数据库用户名,<password>替换为数据库密码)。

sudo tee /usr/share/nginx/html/test.php <<-'EOF'
<?php
$servername = "localhost";
$username = "<username>"; ##修改为数据库用户名
$password = "<password>"; ##修改为数据库新设置的密码
$conn = new mysqli($servername, $username, $password);
if ($conn->connect_error) {
die("fail: " . $conn->connect_error);
}
echo "success\n";
?>
EOF

e.在本地物理机上使用浏览器访问http://ECS实例公网IP/test.php,返回success说明PHP代理设置成功并成功连接MySQL数据库。

部署wordpress

确认安全组放行80 22端口,且绑定公网IP

前面我们已经搭建了lnmp环境,现在可以准备安装wordpress了

1.配置wordpress数据库

a.运行以下命令,进入MySQL数据库。

mysql -u root -p

b.运行以下命令,为WordPress网站创建一个名称为wordpress的数据库。

create database wordpress;

c.运行以下命令,创建一个新用户user管理WordPress数据库,新用户密码为PASSword123.。 #可以自行更改密码

create user 'user'@'localhost' identified by 'PASSword123.';

d.运行以下命令,赋予用户对数据库wordpress的全部权限。

grant all privileges on wordpress.* to 'user'@'localhost';

e.运行以下命令,使配置生效。

flush privileges;
exit;                ##退出数据库

2.下载WordPress,并移动至网站根目录。

a.运行以下命令,进入Nginx网站根目录,下载WordPress压缩包。

cd /usr/share/nginx/html
sudo wget https://cn.wordpress.org/wordpress-6.8.2-zh_CN.zip

b.运行以下命令,安装unzip命令,解压文件

sudo apt install unzip -y
sudo unzip wordpress-6.8.2-zh_CN.zip

c.运行以下命令,将WordPress安装目录下的wp-config-sample.php文件复制到wp-config.php文件中,并将wp-config-sample.php文件作为备份。

cd /usr/share/nginx/html/wordpress
sudo cp wp-config-sample.php wp-config.php

3.修改WordPress配置文件。

a.编辑wp-config.php文件

sudo vim wp-config.php

找到下述内容,并进行修改

// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
/** WordPress数据库的名称 */
define('DB_NAME', 'wordpress');

/** MySQL数据库用户名 */
define('DB_USER', 'user');

/** MySQL数据库密码 */
define('DB_PASSWORD', 'PASSword123.');

/** MySQL主机 */
define('DB_HOST', 'localhost');

4.修改Nginx配置文件。

sudo vi /etc/nginx/conf.d/default.conf

server大括号内,将root后的内容替换为WordPress根目录。

本示例中WordPress的根目录为/usr/share/nginx/html/wordpress

重新启动nginx服务

sudo systemctl restart nginx

5.安装并登录WordPress网站。

  1. 在本地物理机上使用浏览器访问http://ECS实例公网IP,进入WordPress安装页面。

后续内容补充

问题:

1.wordpress无法安装插件

原因:wordpress文件权限不够

sudo chown -R www-data:www-data /usr/share/nginx/html/wordpress
sudo chmod -R 755 /usr/share/nginx/html/wordpress
sudo find /usr/share/nginx/html/wordpress -type d -exec chmod 755 {} \;
sudo find /usr/share/nginx/html/wordpress -type f -exec chmod 644 {} \;

2.当上传主题文件时,文件安装网页直接跳转无法访问

原因:PHP 资源限制

a.修改wordpress对应nginx配置文件

vim /etc/nginx/conf.d

在 `server { ... }` 区块中任意位置(通常放在 `server_name` 下方)加入这一行:

client_max_body_size 64M;  ##可根据自身情况调节
b.检查配置语法并重载 Nginx
sudo nginx -t
sudo systemctl reload nginx
c.同步调整 PHP 限制

sudo vim /etc/php/8.4/fpm/php.ini
找到并修改:
upload_max_filesize = 64M
post_max_size = 64M

保存后重启 PHP-FPM:
sudo systemctl restart php8.2-fpm

3.发布文章字数较多时,文章发布失败

原因:数据库max_allowed_packet值太小

a.修改数据库配置文件

vim /etc/mysql/mysql.conf.d/mysqld.cnf

4.使用makrdown相关插件时,网站无法访问了

原因:PHP Fatal error: Uncaught Error: Call to undefined function MarkupMarkdown\Parsedown\mb_encode_numericentity()

```
a.需要安装扩展模块 mbstring
sudo apt install php8.4-mbstring -y
sudo systemctl restart php8.4-fpm
```

原因:PHP Fatal error: Uncaught Error: Call to undefined function MarkupMarkdown\Parsedown\mb_encode_numericentity() in /usr/share/nginx/html/wordpress/wp-content/plugins/markup-markdown/MarkupMarkdown/Parsedown/Extra.php:493

b.主题与插件发生冲突,删除插件或更换主题,我这里是删除插件
##进入到wordpress插件目录,删除插件目录
cd /usr/share/nginx/html/wordpress/wp-content/plugins/
rm -rf import-markdown
文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
下一篇