Linux中基于Centos7使用lamp架构搭建个人论坛(wordpress)
Linux中基于Centos7使用lamp架构搭建个人论坛(wordpress)
一、lamp架构
-
核心组件:
- L - Linux:操作系统
- A - Apache:Web 服务
- M - MySQL/MariaDB:数据库
- P - PHP:应用/脚本
-
工作流程:
- 用户请求发起:
- 客户端通过HTTP协议向Apache发送资源请求
- Apache对请求进行处理:
- 静态资源:直接从文件系统读取并返回
- 动态资源:通过
FastCGI
协议调用PHP
- PHP脚本执行:
- 通过
php-mysqlnd
插件关联数据库 - 调用数据生成html结果并返回Apache
- 通过
- 响应客户端:
- Apache将最终HTML内容封装为HTTP响应包返回客户端
用户浏览器 →[HTTP请求]→ Apache → 判断资源类型
↗ 静态资源 → 直接返回
↓
↘ 动态资源 → PHP(FastCGI/模块) →[数据库查询]→ MySQL → 返回数据
↓
↑ 生成HTML结果 ← 返回Apache →[HTTP响应]← 用户浏览器 - 用户请求发起:
二、搭建操作步骤
前提:到阿里源复制并下载CentOS 7的镜像
通过自动安装
epel-release
软件包,启用 EPEL 软件仓库的命令curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repoyum -y install epel-release
-
修改主机名:
将主机名修改为
lamp.example.com
hostnamectl set-hostname lamp.example.com bash # 应用新的 Shell 会话
-
关闭防火墙和seLinux:
在更改seLinux模式为
disabled
,需要进行重启systemctl stop firewalld.service # 关闭防火墙 systemctl disable firewalld.service # 禁用防火墙setenforce 0 # 临时设置 seLinux 为 permissive vim /etc/selinux/config SELINUX=disabled # 永久设置 seLinux 为 disabledreboot # 重启
-
时钟同步服务器:
时钟同步是保障数据一致性、安全性和业务逻辑正确性的基础
yum -y install chrony # 安装 chrony 时间同步服务 systemctl restart chronyd # 立即启动 chronyd 服务 systemctl enable chronyd # 设置 chronyd 开机自启 hwclock -w # 将系统时间写入硬件时钟 timedatectl # 查看系统时间配置状态
-
安装
httpd
和mariadb
数据库:yum -y install httpd mariadb mariadb-server
-
初始化数据库:
systemctl restart mariadb systemctl enable mariadbmysql_secure_installationEnter current password for root (enter for none): # 请输入 root 用户的当前密码,没有设置过,直接 Enter 回车即可Set root password? [Y/n] y# 是否设置 root 用户的密码New password:# 新密码Re-enter new password:# 再次输入新密码Remove anonymous users? [Y/n] y# 是否删除匿名用户Disallow root login remotely? [Y/n] n# 是否禁止 root 用户远程登录Remove test database and access to it? [Y/n] y# 是否删除测试数据库及其访问权限Reload privilege tables now? [Y/n] y# 是否立即重新加载权限表
-
安装php:
# php : PHP核心文件 # php-cli : 命令行接口 # php-fpm : FastCGI进程管理器(Nginx常用) # php-gd : 图像处理库 # php-curl : cURL网络通信 # php-zip : ZIP压缩处理 # php-mbstring: 多字节字符串处理 # php-opcache : OPcache字节码缓存(提升性能) # php-intl : 国际化扩展 # php-mysqlnd : MySQL原生驱动(替代旧版libmysql)
yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm # 添加Remi仓库 yum -y install yum-utils # 安装yum工具包 yum-config-manager --enable remi-php70 # 启用Remi仓库中的 PHP 7.0 版本yum -y install php php-cli php-fpm php-gd php-curl php-zip php-mbstring php-opcache php-intl php-mysqlnd # 安装PHP核心及常用扩展php -v # 验证PHP安装版本
-
配置php,将时区改成亚洲/上海:
vim /etc/php.ini # 编辑PHP主配置文件date.timezone = Asia/Shanghai # 设置PHP使用的默认时区为"亚洲/上海"systemctl restart php-fpm systemctl enable php-fpm
-
配置默认网页:
vim /etc/httpd/conf/httpd.conf<IfModule dir_module>DirectoryIndex index.html index.php</IfModule> # 修改Apache配置文件,添加index.php作为默认索引文件vim /var/www/html/index.php<?phpphpinfo();?> # 创建PHP测试页面,phpinfo()函数显示PHP配置信息systemctl restart httpd.service systemctl enable httpd.service
-
测试访问lamp基础架构:
-
将wordpress压缩包上传到服务器:
-
解压wordpress压缩包:
tar -xzvf wordpress-6.5.5.tar.gz
-
设置wordpress的权限:
chown -R apache.apache /var/www/html/wordpress/ # 修改WordPress目录的所有权,将目录所有用户与组设置为Apache运行用户 chmod -R 775 /var/www/html/wordpress/ # 修改WordPress目录的权限,读写执(所有者),读写执(所属组),读执(其他用户)
-
为wordpress配置数据库:
mysql -u root -p # 登录 MySQL 服务 Enter password: # 输入密码create database test_db;# 创建数据库create user 'test_user'@'localhost' identified by 'wiltjer';# 创建数据库用户grant all on test_db.* to 'test_user'@'localhost';# 授予用户数据库权限flush privileges;# 刷新权限
-
为wordpress配置站点:
cp -p /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf /etc/httpd/conf.d/ # 复制虚拟主机模板配置文件 vim /etc/httpd/conf.d/httpd-vhosts.conf # 编辑虚拟主机配置文件<VirtualHost 192.168.100.10:80> # 指定虚拟主机监听地址和端口DocumentRoot "/var/www/html/wordpress" # 设置网站根目录为WordPress路径<Directory "/var/www/html/wordpress"> # 针对网站目录的访问控制Options Indexes FollowSymLinks AllowOverride None Require all granted # 允许所有客户端访问该目录</Directory></VirtualHost>systemctl restart httpd.service
可以在下面的配置文件中复制
vim /etc/httpd/conf/httpd.conf
-
使用浏览器访问wordpress站点: