ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

WordPress安装环境搭建:Web服务器、PHP与数据库配置详解

WordPress安装环境搭建:Web服务器、PHP与数据库配置详解 真正开始装WordPress之前大部分人都会栽在同一个地方WordPress根本不是一个下载完、双击就能跑的软件。我见过太多人把WordPress安装包解压到本地双击index.php结果浏览器要么弹出一堆看不懂的代码要么提示下载文件然后就卡在原地。问题基本都不在WordPress本身而是少装了一整套运行环境。这篇文章是WordPress实战系列的第二章专门把安装WordPress需要的软件这件事讲透。说白了你要准备的软件不是一两个而是一套组合Web服务器、PHP运行环境、数据库以及若干辅助工具。这些软件怎么选、装在哪、装完怎么验证、遇到报错怎么排查下面一次说清楚。不管你是在自己电脑上练手还是准备上云服务器正式搭建这篇都能给你一份可以直接跟着做的清单。1. 先认清一件事WordPress需要的是一套运行环境不是一个安装包1.1 三大核心组件各管一摊WordPress本身是用PHP写的动态程序它没法脱离环境独立运行必须由三个角色配合工作Web服务器软件常见的是Apache或Nginx。它负责接收访客浏览器的请求。如果请求的是图片、CSS、JS这类静态文件Web服务器直接把文件交回去如果请求的是文章页面就把这个请求转交给PHP去处理。PHP负责执行WordPress的代码。收到请求后它去数据库查询对应的内容把文章、页面、评论这些数据取出来组合成HTML页面再交给Web服务器返回给访客。数据库软件常见的是MySQL或MariaDB。WordPress的绝大多数内容——文章、页面、评论、用户账号、设置选项——都存在这里。用一个开店的类比Web服务器是前台接待PHP是后厨数据库是仓库冷柜。访客点菜请求页面前台把菜单递给后厨PHP后厨从仓库冷柜拿食材从数据库查数据做菜再由前台端上桌。三个环节缺一个这顿饭就上不了。这个类比能解释很多新手困惑为什么文件都传上去了网页还是打不开因为光有食材和厨师没有前台接单或者仓库没有开门菜一样端不出去。1.2 为什么不能像普通软件一样双击运行WordPress不是一个编译好的可执行程序而是一大堆.php脚本文件。对于这类脚本必须有一个解释器实时读取并执行它们这个解释器就是PHP。同时用户是通过浏览器访问网站这中间需要有HTTP服务程序来监听80和443端口这个角色就是Web服务器。再加上WordPress把数据全放数据库里三者缺一不可。所以平常我们说的安装WordPress实际操作其实是两步第一步把运行环境Web服务器PHP数据库准备好第二步把WordPress程序文件放进去引导它连上数据库完成初始化。这篇文章讲的就是第一步里最关键的部分——到底需要哪些软件以及怎么装。把环境概念理解透后面很多报错你会自己就找到原因。1.3 先定路线再选软件本地环境 vs 服务器环境在开始安装之前第一件要决定的事不是选软件而是确定你装在哪里。两条路线准备的软件完全不同别混着用。对比项本地开发环境云服务器环境使用目的学习、开发、测试主题插件正式上线对外提供服务常见操作系统Windows、macOSLinuxUbuntu、CentOS等常见搭建方式XAMPP、Docker、LocalWP宝塔面板、LNMP一键包、纯命令行额外准备物基本不需要域名、SSL证书、公网IP日常维护量低坏了重装需要关注系统更新与安全我个人的建议是如果是第一次接触WordPress先用本地方案在自己电脑上把整个流程跑通再去碰服务器。因为本地环境错了随时可以推倒重来成本低在服务器上边学边踩坑每一步都要面对权限、系统、防火墙等一堆干扰因素容易分心。等你在本地把wordpress从安装到发布一篇正式内容整个流程走完再上服务器心态会稳很多。2. 核心软件逐个拆解Web服务器、PHP、数据库到底选什么2.1 Web服务器Apache和Nginx怎么选不纠结Apache是老牌Web服务器特点是配置简单、生态成熟。几乎所有一键安装包XAMPP、宝塔面板默认选项之一都提供Apache。它对新手格外友好的一点是支持.htaccess文件——WordPress开启固定链接伪静态后需要用到的重写规则Apache默认就支持基本不用你操心。你只需要确保Apache加载了mod_rewrite模块多数集成环境默认已经开启。Nginx的优势是并发处理能力强同一台机器上能扛更多访问量所以现在线上服务器用Nginx的越来越多。但它的配置语法是另一套体系WordPress的伪静态规则需要手动在站点配置里加一条类似try_files的语句对新手来说有一定门槛。用宝塔这类面板时创建站点后通常有现成的WordPress伪静态规则可以一键启用这个问题也算被规避了。选型建议很直白本地学习和第一次上手直接选Apache省心线上部署且你愿意花十分钟学一下Nginx的站点配置用Nginx性能会更好。没有必要为了流行的东西而选一个自己完全看不明白的软件适合当前阶段就好。2.2 PHP版本不是越新越好得看兼容性WordPress官方对PHP的要求是7.4或更高版本推荐使用8.2及以上。但官方推荐不等于你的主题插件都支持。有些老主题、老插件跑在PHP 8.x上会直接报错这在实战里非常常见。所以我不建议无脑上最新版也不建议守着老版本不放合理的思路是先确认自己计划用的主题和插件在哪个PHP版本下最稳。目前常见的PHP版本状态大致如下PHP版本状态建议5.6及以下早已停止安全维护千万别用7.0 - 7.3已停止安全维护别用漏洞无处修补7.4接近停止维护过渡可用尽快升级8.0、8.1维护中较稳定8.2、8.3当前推荐新项目建议直接上除了PHP本身还必须要确认几个扩展是开启的否则WordPress装到一半就会报错mysqli连接数据库、mbstring多字节字符处理、curl、gd或imagick图片处理、zip安装主题插件解压、openssl、xml、json。好消息是XAMPP这类集成环境默认都带齐了不需要你一个个手动开启。如果是在Linux服务器上手动装记得把这些php-xxx扩展一起装上。2.3 数据库MySQL和MariaDB一对好兄弟MySQL是最经典的WordPress数据存储方案MariaDB是它的一个分支因为开源协议原因分家后发展得很好兼容性很高。绝大多数一键集成包里带的是MariaDB宝塔面板里你两种都可以装。WordPress官方要求MySQL 5.7或MariaDB 10.3现在主流版本都满足不用太纠结选谁。比选哪个更重要的一件事是建库时把字符集设为utf8mb4对应的排序规则选utf8mb4_unicode_ci或utf8mb4_general_ci。utf8mb4支持完整的Unicode字符emoji、生僻字、多语言内容都不会乱码。很多新手没注意这个细节等网站跑起来用户评论里发个emoji变成问号再回头改就麻烦了。MySQL 5.7以上和MariaDB对utf8mb4的支持都非常好直接在创建数据库时选好即可。2.4 辅助软件phpMyAdmin、文件工具和编辑器除了三大核心组件还有几样软件平时离不开phpMyAdmin管理数据库的网页工具XAMPP和宝塔里都自带。新手建数据库、查看表结构、执行SQL全靠它。文件管理工具本地开发用系统自带资源管理器就行远程服务器建议用FileZilla或WinSCP这类SFTP工具或者在宝塔面板的文件管理器里直接操作。代码编辑器改wp-config.php、调试主题代码时会用到VS Code或Notepad就够用。浏览器开发者工具Chrome的DevTools排查404、500这类问题时看Network面板和Console面板是基本功。这些工具不算WordPress运行必需但少了它们你会在安装和后续调试过程中处处碰壁。尤其推荐尽早学会看浏览器Network面板——它会告诉你某个文件是404还是500是服务器没响应还是权限被拒很多诡异问题一眼就有答案。3. 四条实用安装路线按场景对号入座3.1 本地最省事XAMPP一条龙装上Apache、MariaDB和PHPXAMPP的核心价值是把上面说的三大件打包成一套软件安装过程就是下一步下一步特别适合Windows和macOS用户。装完之后在XAMPP Control Panel里启动Apache和MySQL再把WordPress压缩包解压到htdocs目录就能进入安装流程。不同系统下htdocs的位置有点差异Windows一般在C:\xampp\htdocsmacOS一般在/Applications/XAMPP/htdocs。你把WordPress文件夹放进这个目录后浏览器里访问http://localhost/你的文件夹名就能看到WordPress的安装引导。XAMPP的缺点是环境相对大而全和线上生产环境的精细配置有差异。但在学习阶段完全够用而且出了问题可以重装成本很低。如果你想最快速度看到WordPress安装界面XAMPP是首选。3.2 开发更干净用Docker把WordPress环境隔离起来如果你的电脑上还要做其他开发或者你希望WordPress环境能一键删除、一键重建、不污染系统Docker是更好的方案。用Docker Compose定义好服务一条命令就能拉起WordPress加MySQL两个容器。下面是一份可以直接用的docker-compose.yml数据库和WordPress服务都会按配置自动建好version: 3.8 services: db: image: mysql:8.0 container_name: wp_db environment: MYSQL_ROOT_PASSWORD: rootpassword MYSQL_DATABASE: wordpress MYSQL_USER: wpuser MYSQL_PASSWORD: wppassword volumes: - db_data:/var/lib/mysql wordpress: image: wordpress:latest container_name: wp_web depends_on: - db ports: - 8080:80 environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wpuser WORDPRESS_DB_PASSWORD: wppassword WORDPRESS_DB_NAME: wordpress volumes: - wp_data:/var/www/html volumes: db_data: wp_data:在这个目录下执行docker compose up -d如果你的Docker是较老版本需要执行docker-compose up -d等镜像拉取完成后访问http://localhost:8080就能看到WordPress安装界面了。数据库那栏不用自己动手环境变量已经把连接信息自动写进WordPress配置里。这种方式上手门槛比XAMPP高一点点但非常干净推荐给有一点命令行基础的读者。3.3 线上部署宝塔面板还是纯命令行取决于你想不想可视化服务器上装WordPress运行环境国内用得最多的是宝塔面板。安装面板后在软件商店里勾选Nginx或Apache、MySQL、PHP面板会帮你把环境装好并管理起来。添加站点、申请SSL证书、修改伪静态规则都有可视化界面对没有Linux基础的读者非常友好。需要注意宝塔的安装脚本对系统版本有要求装之前先到官网确认你的服务器系统在支持范围内别直接在奇怪的精简版系统上硬来。纯命令行路线适合想完全掌控服务器的读者。以Ubuntu为例核心命令大致是这样sudo apt update sudo apt install nginx sudo apt install mariadb-server mariadb-client sudo apt install php-fpm php-mysql php-mbstring php-curl php-gd php-zip php-xml装完再配置Nginx站点、启动PHP-FPM、初始化MariaDB过程更繁琐但每一步都清清楚楚。线上环境我反而更推荐坚持手动或者至少理解每一个关键操作在干什么因为用面板省事的背后是有些东西被面板隐藏了出了问题排查起来会多一层障碍。如果你打算长期维护一个正式站点这层障碍迟早要面对。3.4 别忘了域名、DNS解析和HTTPS证书这些配套软件如果是线上部署准备环境时还要一并处理三件事域名在域名服务商注册一个域名然后在DNS管理后台把它的A记录解析到云服务器的公网IP。解析生效一般需要几分钟到几小时不等。SSL证书现在浏览器对没有HTTPS的网站会直接提示不安全对访客信任度和搜索排序都有影响。Lets Encrypt提供免费证书宝塔面板可以自动申请命令行环境用certbot也能一键搞定。防火墙和安全组云服务器控制台和系统内防火墙都要放行80和443端口否则软件全装好了外部还是访问不了。这三样不是WordPress运行环境的组成部分但属于让网站真正能给人访问的必备配套。不要等网站搭好了才回头补创建服务器时就把相关准备一并做好后面会顺很多。4. 从环境软件装好到WordPress首次跑通一步步实操记录4.1 以XAMPP为例从下载到验证环境第一步去XAMPP官网下载对应你操作系统版本的安装包。Windows下就是个exe安装文件一路默认安装即可。macOS版安装时如果提示无法打开是因为系统没有信任第三方开发者需要到系统设置-隐私与安全性里允许它运行。安装完成后打开XAMPP Control Panel找到Apache和MySQL这两行分别点击Start。如果状态变成绿色说明两个服务已经启动。这里有两个验证点浏览器访问http://localhost能看到XAMPP的欢迎页面证明Apache正常。浏览器访问http://localhost/phpmyadmin能打开phpMyAdmin登录页证明数据库服务正常。为了确认PHP也正常工作可以在htdocs目录里新建一个phpinfo.php文件内容就一行?php phpinfo();然后访问http://localhost/phpinfo.php如果看到一张巨大的PHP信息表说明PHP运行正常。页面里会显示PHP版本、加载的扩展等关键信息。记得这个文件只是测试用的确认完就删掉不然等于把你的PHP环境信息暴露给任何能访问你机器的人。4.2 创建WordPress数据库可视化操作与命令行都给你打开phpMyAdmin在顶部菜单找到数据库标签页输入数据库名比如wordpress右边排序规则下拉框选择utf8mb4_general_ci点击创建一个空数据库就建好了。如果你更喜欢命令行也可以在MySQL终端里执行CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;这里要注意区分数据库和数据库用户。数据库是存放数据的位置用户是有权限访问数据库的账号。本地XAMPP默认用root用户密码是空的但线上环境通常要为每个网站单独创建一个用户只给这个用户操作对应数据库的权限不要图省事直接让网站程序用root连数据库。这属于最基本的安全习惯长期用root跑网站一旦网站程序被攻破整个数据库的数据都相当于拱手送人。4.3 把WordPress源码放到Web服务器的站点目录从WordPress中文官网下载最新版wordpress压缩包解压后你会得到一个wordpress文件夹里面有三个核心目录wp-admin后台程序、wp-includes核心函数库、wp-content主题、插件和上传内容以及wp-config-sample.php等配置文件模板。本地XAMPP环境下把整个wordpress文件夹复制到htdocs目录下可以改名为你喜欢的项目名比如mytest。访问http://localhost/mytest就会开始安装向导流程。如果你下载的包里没有wp-config.php不用慌安装向导会自动引导你完成配置并生成这个文件。服务器环境下要把它上传到网站根目录Nginx一般是/var/www/html或类似路径。上传完成后要根据你Web服务器运行的用户调整目录权限这一步很多人会漏后面会遇到上传图片失败、安装插件需要FTP信息等一堆问题。4.4 安装向导怎么填以及一个对照表第一次访问WordPress向导页时如果系统还没有生成wp-config.php页面会先要求填写数据库信息。我把每个字段都拆开解释一遍表单字段实际含义容易踩的坑数据库名4.2里创建的那个库的名字填成了别的已存在的库用户名有权限连接数据库的用户名本地XAMPP常填root线上别用root密码该用户的密码本地root默认空密码线上是自定义密码数据库主机数据库所在地址localhost连不上时试127.0.0.1端口不同要写localhost:3307表前缀数据库表名的前缀默认wp_即可同库装多套时才要改填完数据库信息之后接下来是创建管理员账号和站点信息站点标题随便填但用户名不要用admin避免被暴力破解密码务必用强密码邮箱填自己常用的。如果是在开发阶段记得勾选搜索引擎可见性里建议搜索引擎不要收录那一项避免还没做好就被搜索引擎收录。看到安装完成页面后用刚才设置的管理员账号登录后台你的WordPress就已经真正跑起来了。到这一步前面准备的软件才真正体现出了价值。5. 安装环境阶段的踩坑复盘高频报错与排查思路5.1 Error establishing a database connection先按这个顺序查这个报错是WordPress安装和迁移时出现率最高的问题没有之一。表面意思是数据库连接失败但背后原因可能很多。按下面这个顺序排查通常几分钟内能定位确认数据库服务有没有启动。XAMPP里MySQL那行是不是绿色服务器上执行systemctl status mysql或systemctl status mariadb查看。确认wp-config.php里的数据库名、用户名、密码是否和实际一致。注意连字符、大小写这类细节复制粘贴最容易引入隐藏空格。确认数据库用户权限。线上环境如果用户没有被授权到对应数据库也会报这个错需要执行类似GRANT ALL PRIVILEGES ON你的数据库名.* TO 用户名localhost;的授权语句。确认数据库主机地址。本地是localhost或127.0.0.1如果MySQL监听的是其他端口要写成localhost:端口。确认防火墙和云安全组是否放行数据库端口。但线上一般不建议把3306端口直接对外开放更安全的做法是Web服务器和数据库走内网连接。5.2 PHP版本不对、扩展缺失表现是白屏或直接报错安装向导进行到一半页面白屏或者WordPress安装完登录后台白屏十有八九是PHP的问题。第一件事不是瞎猜而是去查错误日志。Linux服务器在/var/log/nginx/error.log或/var/log/apache2/error.logXAMPP可以通过界面上的Logs按钮查看。日志里通常会直接写清楚是哪一行PHP代码、缺了哪个函数或扩展。常见的具体原因有两个。一是PHP扩展缺失报错会提示某个函数未定义或某扩展未加载对应去php.ini里启用扩展或在服务器上安装缺失的php-xxx包。注意修改php.ini之后必须重启Apache或PHP-FPM配置才会生效很多人改了没重启然后奇怪为什么没变化。二是PHP版本和主题或插件不兼容尤其是老主题在PHP 8.x下可能直接报错这时要么升级主题要么暂时把PHP版本切到兼容范围。每次切换PHP版本后都建议回头看一下后台是否正常因为有些缓存插件会缓存旧环境的信息。5.3 文件权限不对上传图片失败、装主题插件要FTP信息如果你在后台点上传图片直接就失败或者安装主题、插件时一再要求你填FTP账号别急着怪WordPress先看wp-content目录权限。WordPress需要往uploads目录写文件往plugins和themes目录解压文件如果这些目录不属于Web服务器运行用户或者没有写权限就会出问题。目录权限一般是755文件是644需要写入的uploads目录可以是755或775。服务器上可以执行sudo chown -R www-data:www-data /var/www/html sudo find /var/www/html -type d -exec chmod 755 {} \; sudo find /var/www/html -type f -exec chmod 644 {} \;注意www-data是Nginx和Apache在Ubuntu下的默认运行用户不同系统可能有差异。修改权限要克制不要图省事把所有文件设成777那样等于把网站的读写权限完全敞开给服务器留安全隐患。5.4 一个容易被忽略的好习惯为每个项目记录版本清单最后分享一个我在实践里吃过亏后养成的习惯。每次搭建完一套WordPress环境我都会在一个文档里记录下WordPress版本、PHP版本、MySQL/MariaDB版本、Web服务器及版本、装过的重要插件和主题、数据库名和字符集、改造过哪些配置文件。别小看这张清单。换服务器、迁移网站、排查主题兼容问题时它就是你最早的排查依据。很多所谓灵异问题最后查来查去都是新旧环境版本差太多引起的。环境齐不齐、版本是否兼容永远是WordPress这门课的第一课也是后来省时间最狠的一课。
返回列表