安装Apache、MySQL、PHP、论坛实操

news2024/10/5 20:24:53

文章目录

  • 一、安装Apache
    • 1、准备阶段
    • 2、开始安装
    • 3、浏览器访问验证
  • 二、部署MySQL
  • 三、部署php
  • 四、部署BBS论坛


一、安装Apache

1、准备阶段

(1)准备源码包
httpd-2.4.29.tar.gz
apr-1.6.2.tar.gz
apr-util-1.6.0.tar.gz

cd /opt
tar xf apr-1.6.2.tar.gz
tar xf apr-util-1.6.0.tar.gz
tar xf httpd-2.4.29.tar.bz2
mv apr-1.6.2 httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util

2、开始安装

(2)关闭安全机制
systemctl stop firewalld //关闭防火墙
systemctl disable firewalld //防火墙开机不自启
setenforce 0 //关闭selinux
(3)安装环境依赖包
依赖包解释:
gcc C语言的编译器
gcc-c++ C++的编译器
make 源代码编译器(源代码转换成二进制文件)
pcre pcre是一个Perl函数库,包括perl 兼容的正则表达式库
pcre-devel perl的接口开发包
expat-devel 用于支持网站解析HTML、XML文件
perl perl语言编译器

实际操作:

yum -y install \
gcc \
gcc-c++ \
make \
pcre-devel \
expat-devel \
perl

cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \		#指定 httpd 服务程序的安装路径
--enable-so \					#启用动态加载核心模块支持,使 httpd 具备进一步扩展功能的能力
--enable-rewrite \				#启用网页地址重写功能,用于网站优化、防盗链及目录迁移维护
--enable-charset-lite \			#启动字符集支持,以便支持使用各种字符集编码的页面
--enable-cgi					#启用CGI(通用网关接口)脚本程序支持,便于网站的外部扩展应用访问能力

make -j4 && make install       #这里推荐4核加载,不然会特别慢,要等很长时间

(4)#优化配置文件路径,并把httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别

ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/

(5)#便于service管理 centos6 7 systemctl

cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
vim /etc/init.d/httpd
# chkconfig: 35 85 21  //35级别自动运行  第85个启动 第21个关闭
# description: Apache is a World Wide Web server
//将httpd加入到系统管理器
chkconfig --add httpd
service httpd start

(6)修改httpd 服务配置文件

vim /etc/httpd.conf
 
//找到对应位置并修改,如果是本机发布服务,则开放本机80端口
Listen 192.198.206.8:80
 
//设置主机名
ServerName www.ikun.com:80
 
//检查配置文件的配置项是否有误
httpd -t  或 apachectl -t
 
//查看默认的首页(可修改)		
cat /usr/local/httpd/htdocs/index.html
 
//重启服务使配置生效
systemctl restart httpd.service

3、浏览器访问验证

在这里插入图片描述
主机名访问
在这里插入图片描述

二、部署MySQL

1、准备源码包
mysql-5.7.17.tar.gz
boost_1_59_0.tar.gz

tar zxvf mysql-5.7.17.tar.gz -C /opt
tar zxvf boost_1_59_0.tar.gz -C /usr/local/
mv /usr/local/boost_1_59_0 /usr/local/boost

2、安装环境依赖包

ncurses 字符终端下图形互动功能的动态库
ncurses-devel ncurses开发包
bison 语法分析器
cmake mysql需要用cmake编译安装

cd /opt/mysql-5.7.17/
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \		#指定mysql的安装路径
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ #指定mysql进程监听套接字文件(数据库连接文件)的存储路径
-DSYSCONFDIR=/etc \                             #指定配置文件的存储路径
-DSYSTEMD_PID_DIR=/usr/local/mysql \            #指定进程文件的存储路径
-DDEFAULT_CHARSET=utf8  \                       #指定默认使用的字符集编码,如 utf8
-DDEFAULT_COLLATION=utf8_general_ci \			#指定默认使用的字符集校对规则
-DWITH_EXTRA_CHARSETS=all \						#指定支持其他字符集编码
-DWITH_INNOBASE_STORAGE_ENGINE=1 \              #安装INNOBASE存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \               #安装ARCHIVE存储引擎 
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \             #安装BLACKHOLE存储引擎 
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \            #安装FEDERATED存储引擎 
-DMYSQL_DATADIR=/usr/local/mysql/data \         #指定数据库文件的存储路径
-DWITH_BOOST=/usr/local/boost \          #指定boost的路径,若使用mysql-boost集成包安装则-DWITH_BOOST=boost
-DWITH_SYSTEMD=1								#生成便于systemctl管理的文件
回车
部署MySQL
make  -j4 && make install  #推荐使用4核加载,不然会非常慢

如果部署失败,大概率是因为内存不足,推荐使用内存5G,4核的虚拟机进行操作
如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧

3修改配置文件

#创建普通用户管理mysql
useradd -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql/
#更改管理主/组
chown mysql:mysql /etc/my.cnf
#修改配置文件
vim /etc/my.cnf								#删除原配置项,再重新添加下面内容
[client]									#客户端设置
port = 3306
socket=/usr/local/mysql/mysql.sock			

[mysqld]									#服务全局设置
user = mysql       							#设置管理用户
basedir=/usr/local/mysql					#指定数据库的安装目录
datadir=/usr/local/mysql/data				#指定数据库文件的存储路径
port = 3306									#指定端口
character-set-server=utf8					#设置服务器字符集编码格式为utf8
pid-file = /usr/local/mysql/mysqld.pid		#指定pid 进程文件路径
socket=/usr/local/mysql/mysql.sock			#指定数据库连接文件
bind-address = 0.0.0.0						#设置监听地址,0.0.0.0代表允许所有,如允许多个IP需空格隔开
skip-name-resolve							#禁用DNS解析
max_connections=2048						#设置mysql的最大连接数
default-storage-engine=INNODB				#指定默认存储引擎
max_allowed_packet=16M						#设置数据库接收的数据包大小的最大值
server-id = 1								#指定服务ID号
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

sql_mode常用值如下:
NO_ENGINE_SUBSTITUTION
如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常

STRICT_TRANS_TABLES
在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制

NO_AUTO_CREATE_USER
禁正GRANT创建密码为空的用户

NO_AUTO_VALUE_ON_ZERO
mysql中的自增长列可以从O开始。默认情况下自增长列是从1开始的,如果你插入值为0的数据会报错

NO_ZERO_IN_DATE
不允许日期和月份为零

NO_ZERO_DATE
mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告

ERROR_FOR_DIVISION_BY_ZERO
在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。默认情况下数据被零除时MysQL返回NULL

PIPES_As_CONCAT
将"||"视为字符串的连接操作符而非或运算符,这和Oracle数据库是一样的,也和字符串的拼接函数Concat相类似

ANSI_QUOTES
启用ANSI_QUOTES后,不能用双引号来引用字符串,因为它被解释为识别符

5、 #设置环境变量,申明/宣告mysql命令便于系统识别

echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile

6、#初始化数据库

cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \				#生成初始化密码为空
--user=mysql \                      #指定管理用户
--basedir=/usr/local/mysql \        #指定数据库的安装目录
--datadir=/usr/local/mysql/data		#指定数据库文件的存储路径

7、#给root账号设置密码

mysqladmin -u root -p password "123456" 
直接回车

8、登录验证
在这里插入图片描述
成功

三、部署php

1、准备源码包
php-7.2.30.tar.gz

cd /opt
tar zxvf php-7.1.24.tar.gz

2、安装GD库和GD库关联程序,用来处理和生成图片

yum -y install \
gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel

3、配置软件模块

cd /opt/php-7.1.24/
 
./configure \
--prefix=/usr/local/php7 \							#指定将 PHP 程序的安装路径
--with-apxs2=/usr/local/httpd/bin/apxs \			#指定Apache httpd服务提供的apxs 模块支持程序的文件位置
--with-mysql-sock=/usr/local/mysql/mysql.sock \		#指定mysql 数据库连接文件的存储路径
--with-config-file-path=/usr/local/php7				#设置 PHP 的配置文件 php.ini 将要存放的位置
--with-mysqli \										#添加 MySQL 扩展支持 #mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定
--with-zlib \										#支持zlib功能,提供数据压缩
--with-curl \										#开启curl扩展功能,实现HTTP的Get下载和Post请求的方法
--with-gd \											#激活gd 库的支持
--with-jpeg-dir \									#激活jpeg 的支持
--with-png-dir \									#激活png 的支持
--with-freetype-dir \
--with-openssl \
--enable-mbstring \									#启用多字节字符串功能,以便支持中文等代码
--enable-xml \										#开启扩展性标记语言模块
--enable-session \									#会话
--enable-ftp \										#文本传输协议
--enable-pdo \										#函数库
--enable-tokenizer \								#令牌解释器
--enable-zip										#ZIP压缩格式
 
make -j4 && make install #推荐4核加载,更快完成

4、#复制模板文件,并进行修改

cp /opt/php-7.1.24/php.ini-development /usr/local/php7/php.ini
vim /usr/local/php7/php.ini
--1170--修改
mysqli.default_socket = /usr/local/mysql/mysql.sock
--939--取消注释,修改
date.timezone = Asia/Shanghai

5、#优化把PHP 的可执行程序文件放入路径环境变量的目录中便于系统识别

ln -s /usr/local/php7/bin/* /usr/local/bin/

6、#修改Apache配置文件让Apache支持PHP

vim /etc/httpd.conf 
#添加index.php
255 <IfModule dir_module>
256     DirectoryIndex index.html index.php
257 </IfModule>
#在392行下方插入一下内容,让Apache可以支持.php的网页文件
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
##检查156行默认支持php7的模块是否存在
LoadModule php7_module   modules/libphp7.so

7、#创建、编辑php页面文件

rm -rf /usr/local/httpd/htdocs/index.html
vim /usr/local/httpd/htdocs/index.php
<?php
phpinfo();
?>

systemctl restart httpd.service
重启服务使配置生效

8、在浏览器中验证
在这里插入图片描述

四、部署BBS论坛

1.创建一个数据库

mysql -u root -p 
mysql> CREATE DATABASE bbs;
#把bbs数据库里面所有表的权限授予给bbsuser,并设置密码
mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
#刷新数据库
mysql>flush privileges; 

2、#解压论坛压缩包#上传站点更新包

unzip Discuz_X3.4_SC_UTF8.zip -d /opt/dis
cd /opt/dis
cp -r upload/ /usr/local/httpd/htdocs/bbs

3、#切换论坛目录#更改论坛目录属主

cd /usr/local/httpd/htdocs/bbs

chown -R daemon ./config
chown -R daemon ./data
chown -R daemon ./uc_client
chown -R daemon ./uc_server/data

4、访问bbs下的论坛网页(默认是安装页面)
一直下一步到安装数据库

在这里插入图片描述
自行设定各项数据
在这里插入图片描述
安装成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/661186.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Windows】创建Windows远程桌面快捷方式

【Windows】创建Windows远程桌面快捷方式 1、背景2、操作 1、背景 windows系统自带了远程连接工具&#xff0c;可以实现局域网内的远程控制&#xff0c;参考&#xff1a; 【Windows】局域网内远程桌面控制 https://blog.csdn.net/jn10010537/article/details/130926888 但是w…

【Leetcode -404.左子叶之和 -543.二叉树的直径】

Leetcode Leetcode -404.左子叶之和Leetcode -543.二叉树的直径 Leetcode -404.左子叶之和 题目&#xff1a;给定二叉树的根节点 root &#xff0c;返回所有左叶子之和。 示例 1&#xff1a; 输入: root [3, 9, 20, null, null, 15, 7] 输出 : 24 解释 : 在这个二叉树中&…

vue三部曲

vue初入 简介 ​ vue生于2014年 Vue等框架与jQuery的区别 ​ jQuery是基于操作dom的库 ​ Vue框架是以数据驱动和组件化开发为核心 留坑、引包、实例化、插值表达式{{}} ​ vue第一个简单案例练习图。 引包 ​ 使用cnpm install vue2下载vue2&#xff08;version下载指…

ansible的剧本

一、playbooks 概述以及实例操作 1、playbooks 的组成 playbooks 本身由以下各部分组成 &#xff08;1&#xff09;Tasks&#xff1a;任务&#xff0c;即通过 task 调用 ansible 的模板将多个操作组织在一个 playbook 中运行 &#xff08;2&#xff09;Variables&#xff1…

数据挖掘工程师岗位的工作职责

数据挖掘工程师岗位的工作职责1 职责&#xff1a; 1.负责数据分析,数据挖掘相关的算法、应用的设计与开发; 2.负责公司产品各阶段数据的整理、分析、挖掘及提交数据报告&#xff0c;重点对车辆行为数据进行分析和挖掘&#xff0c;利用数据分析结论推动业务产品的优化; 3.对海量…

python---列表和元组(3)

列表元素的遍历 遍历往往搭配循环 for循环进行遍历 for循环搭配下标的形式 这个可以修改列表中的数值 上述两个代码的区别 通过下标的方式进行赋值才会修改自身 使用while循环遍历 元素的插入操作 使用append往列表末尾来新增元素 使用insert进行插入 列表的查找##…

利用AHB-Lite总线实现ARM Cortex-M0基础的SoC系统;如何设计一个SoC系统;AHB-Lite;ARM Cortex-M0;SoC;

利用AHB-Lite总线实现ARM Cortex-M0基础的SoC系统&#xff1b;如何设计一个SoC系统 一、SoC系统下的软硬件分工Hardware only 和System on Chip的区别例子1&#xff1a;计算时间差值例子2&#xff1a;想实现功能的切换例子3&#xff1a;LED显示 二、SoC系统1. AHB-Lite总线 与 …

chatgpt赋能python:Python如何隐藏输出

Python如何隐藏输出 如果你是一个Python程序员&#xff0c;你可能会遇到需要隐藏输出的情况。这可能是因为你的输出包含敏感信息&#xff0c;或者你只是想使你的输出更加整洁&#xff0c;避免不必要的干扰。在这篇文章中&#xff0c;我们将探讨一些方法来隐藏Python中的输出。…

微擎PHP文件goto解密源码工具

&#x1f389; 有需要的朋友记得关赞评&#xff0c;文章底部来交流&#xff01;&#xff01;&#xff01; &#x1f389; ✨ 源码介绍 1、php 版本需要大于 7 2、需要解密的文件放到 decodeFile 下&#xff0c;解密至 complete 下 3、解密的可以是多个文件&#xff0c;不能放…

操作系统-I/O管理-I/O管理概述

目录 一、I/O设备的分类 1.1分类 1.1.1特性分类 1.1.2按传输速率分类 1.1.3按信息交换单位分类 二、I/O控制器 三、I/O控制方式 3.1程序直接控制方式 3.1中断驱动方式 3.3DMA方式 3.4通道控制方式 四、I/O软件层次结构 五、输入输出管理 5.1输入输出应用程序接口 …

UE4的AI行为树基础知识

1.前言 在制作游戏时&#xff0c;会制作敌人、怪物、NPC等不被玩家所操作的对象&#xff0c;那么制作这些对象&#xff0c;就需要通过使用AI行为树来为他们编写各自的一些行为逻辑&#xff0c;比如敌人会寻找主角并攻击、怪物会在自己的领域巡逻等等。 2.组件说明 NavMeshBou…

国产麒麟服务器等保二级 配置规范(二)

一、redis的配置规范 1.1 禁止以root账号运行redis服务 以下Linux 命令操作创建了一个无 home 目录权限&#xff0c;且无法登录的普通账号redis。 #useradd -M -s /sbin/nologin redis 修改服务允许和配置文件权限&#xff1a; #setsid sudo -u redis /usr/bin/redis-serer /e…

Python 智能语音机器人(改进版)

本篇为改进版&#xff0c;之前部分代码存在错误&#xff0c;部分网站api也已经失效&#xff0c;现在更换api&#xff0c;并对部分代码进行重写。 本次在Pycharm上测试 相关模块如下&#xff1a; baidu-aip4.16.11 beautifulsoup44.12.2 chardet5.1.0 lxml4.9.2 PyAudio0.2.13…

Redis原理 - RedisObject对象机制

原文首更地址&#xff0c;阅读效果更佳&#xff01; Redis原理 - RedisObject对象机制 | CoderMast编程桅杆https://www.codermast.com/database/redis/redis-object.html 为什么会设计RedisObject 在 Redis 中&#xff0c;我们的操作都是使用指令进行&#xff0c;而这些的命…

chatgpt赋能python:Python截取文件名教程

Python截取文件名教程 在Python编程中&#xff0c;经常需要从文件路径中截取出文件名。这可以让我们更容易地操作文件或数据集&#xff0c;并且使代码更加简洁易懂。在本教程中&#xff0c;我们将介绍如何使用Python截取文件名。 使用os模块 Python的os模块提供了许多与文件…

【C数据结构】静态顺序表_SeqList

目录 【1】数据结构概述 【1.1】什么是数据结构&#xff1f; 【1.2】数据结构分类 【1.3】数据结构术语 【2】数据结构特点 【3】静态顺序表 【3.1】静态顺序表概念及结构 【3.2】静态顺序表定义数据结构和接口 【3.3】静态顺序表初始化 【3.4】静态顺序表头插入 【…

C/C++内存管理(newdelete详解)

C/C内存管理 引言new与delete的使用内置类型自定义类型 new与delete的实现原理内置类型了解operator new与operator delete函数自定义类型 定位newnew&delete与malloc&free的区别总结 引言 在之前的C语言部分&#xff0c;我们已经介绍过内存中的存储区域的划分&#x…

FMQL在linux下GPIO的映射关系与使用

最近几年国产化芯片的使用如火如荼&#xff0c;部分国产手册说明杂且描述不清&#xff0c;尤其是一些映射关系使用文字描述非常不直观。博主在使用GPIO功能输出的时候反复看了几遍再去尝试控制耗费了不少时间。现结合相关文档总结GPIO映射表格&#xff0c;方便读者使用。 1、 …

【Spring Boot 】Spring Boot 统一功能处理

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f93a;&#x1f93a;&#x1f93a; 目录 前言 1. Spring 拦截器 1.1 自定义拦截器 1…

6月19日第壹简报,星期一,农历五月初二

6月19日第壹简报&#xff0c;星期一&#xff0c;农历五月初二坚持阅读&#xff0c;静待花开1. 未来10天江南华南等地多降雨过程&#xff0c;国家防总将防汛四级响应范围扩至八省份&#xff0c;加派工作组赴地方协助指导。2. “一天有四季、十里不同天”&#xff0c;“最美”独库…