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. 安装 httpdmariadb 数据库

    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站点

相关推荐
我是哈哈hh27 分钟前
【MySQL】在UBuntu环境安装以及免密码登录入门
linux·数据库·mysql·ubuntu
Lovyk35 分钟前
基于 Ansible 与 Jinja2 模板的 LNMP 环境及 WordPress 自动化部署实践
linux·运维·服务器·自动化·ansible
LKAI.40 分钟前
传统方式部署(RuoYi-Cloud)微服务
java·linux·前端·后端·微服务·node.js·ruoyi
天上掉下来个程小白40 分钟前
微服务-02.认识微服务-单体架构
微服务·云原生·架构
nshkfhwr43 分钟前
什么是微服务
微服务·云原生·架构·云计算·集群
forestsea1 小时前
微服务远程调用完全透传实现:响应式与非响应式解决方案
微服务·云原生·架构
知白守黑2671 小时前
Linux磁盘阵列
linux·运维·服务器
tan77º3 小时前
【项目】分布式Json-RPC框架 - 项目介绍与前置知识准备
linux·网络·分布式·网络协议·tcp/ip·rpc·json
知白守黑2673 小时前
lamp架构部署wordpress
架构