Linux中基于Centos7使用lamp架构搭建个人论坛(wordpress)

Linux中基于Centos7使用lamp架构搭建个人论坛(wordpress)

一、lamp架构

  1. 核心组件:

    • L - Linux:操作系统
    • A - Apache:Web 服务
    • M - MySQL/MariaDB:数据库
    • P - PHP:应用/脚本
  2. 工作流程:

    • 用户请求发起 :
      • 客户端通过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 软件仓库的命令

bash 复制代码
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

yum -y install epel-release
  1. 修改主机名:

    将主机名修改为lamp.example.com

    bash 复制代码
    hostnamectl set-hostname lamp.example.com
    bash									# 应用新的 Shell 会话
  2. 关闭防火墙和seLinux:

    在更改seLinux模式为disabled,需要进行重启

    bash 复制代码
    systemctl stop firewalld.service		# 关闭防火墙
    systemctl disable firewalld.service		# 禁用防火墙
    
    setenforce 0							# 临时设置 seLinux 为 permissive
    vim /etc/selinux/config					
    	SELINUX=disabled					# 永久设置 seLinux 为 disabled
    	
    reboot									# 重启
  3. 时钟同步服务器:

    时钟同步是保障数据一致性、安全性和业务逻辑正确性的基础

    bash 复制代码
    yum -y install chrony			# 安装 chrony 时间同步服务
    systemctl restart chronyd		# 立即启动 chronyd 服务
    systemctl enable chronyd		# 设置 chronyd 开机自启
    hwclock -w						# 将系统时间写入硬件时钟
    timedatectl						# 查看系统时间配置状态
  4. 安装 httpd 和 mariadb 数据库:

    bash 复制代码
    yum -y install httpd mariadb mariadb-server
  5. 初始化数据库:

    bash 复制代码
    systemctl restart mariadb
    systemctl enable mariadb
    
    mysql_secure_installation
    	Enter 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
    	# 是否立即重新加载权限表
  6. 安装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)
    bash 复制代码
    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安装版本
  7. 配置php,将时区改成亚洲/上海:

    bash 复制代码
    vim /etc/php.ini						# 编辑PHP主配置文件
    	date.timezone = Asia/Shanghai		# 设置PHP使用的默认时区为"亚洲/上海"
    	
    systemctl restart php-fpm
    systemctl enable php-fpm
  8. 配置默认网页:

    bash 复制代码
    vim /etc/httpd/conf/httpd.conf
    	<IfModule dir_module>
        	DirectoryIndex index.html index.php
    	</IfModule>
    # 修改Apache配置文件,添加index.php作为默认索引文件
    	
    vim /var/www/html/index.php
    	<?php
            phpinfo();
    	?>
    # 创建PHP测试页面,phpinfo()函数显示PHP配置信息
    
    systemctl restart httpd.service
    systemctl enable httpd.service
  9. 测试访问lamp基础架构:

  10. 将wordpress压缩包上传到服务器:

  11. 解压wordpress压缩包:

    bash 复制代码
    tar -xzvf wordpress-6.5.5.tar.gz
  12. 设置wordpress的权限:

    bash 复制代码
    chown -R apache.apache /var/www/html/wordpress/
    # 修改WordPress目录的所有权,将目录所有用户与组设置为Apache运行用户
    chmod -R 775 /var/www/html/wordpress/
    # 修改WordPress目录的权限,读写执(所有者),读写执(所属组),读执(其他用户)
  13. 为wordpress配置数据库:

    bash 复制代码
    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;
    	# 刷新权限
  14. 为wordpress配置站点:

    bash 复制代码
    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
  15. 使用浏览器访问wordpress站点 :

相关推荐
mldong几秒前
聚合边界:为什么 ProcessTask 没有自己的 Repository
后端·架构
Thneonl几秒前
一行 SET NX PX 的分布式锁,四个坑一个比一个贵
后端·架构
Thneonl15 分钟前
99.9% 置信被拒收,76% 靠两个佐证进场
人工智能·架构
Thneonl15 分钟前
stateless 4/6 漏判,stateful 3/5 错杀:该信谁?
人工智能·架构
mldong15 分钟前
同一个审批流引擎,我写了两次:一次 11226 行,一次 7036 行
后端·架构
乱码三千16 分钟前
如何优雅地直连无公网 IP 的远程 GPU 服务器
linux·人工智能·程序员
这个DBA有点耶17 分钟前
数据库部署架构深潜:集中式、分布式、云原生的技术原理、演进逻辑与选型框架
数据库·架构
yunwei3717 分钟前
使用 eBPF 跟踪 Nginx 请求
linux·后端·性能优化
yunwei3717 分钟前
使用 eBPF 跟踪 MySQL 查询
linux·后端·性能优化
不好听61318 分钟前
混合检索到底在混什么:为什么纯向量检索会认错人——Hybrid RAG 系列之一
架构