源码编译安装LAMP(HTTP服务,MYSQL ,PHP,以及bbs论坛)

简介: 通过以上步骤,你可以成功地在一台Linux服务器上从源码编译并安装LAMP环境,并配置一个BBS论坛(Discuz!)。这些步骤涵盖了从安装依赖、下载源代码、配置编译到安装完成的所有细节。每个命令的解释确保了过程的透明度,使即使是非专业人士也能够理解整个流程。

编译安装LAMP(Linux, Apache, MySQL, PHP)及BBS论坛

在编译安装LAMP时,我们需要从源代码编译安装HTTP服务(Apache)、数据库(MySQL)和PHP语言,然后再配置一个BBS论坛。LAMP架构是最常用的Web开发环境之一,它能为大多数Web应用程序提供强大的支持。以下是详细的步骤和解释。

1. 环境准备

首先,我们需要准备一台Linux服务器。以下的步骤假设使用的是Ubuntu 22.04系统,你也可以根据自己的实际情况选择合适的Linux发行版。

更新系统

sudo apt-get update
sudo apt-get upgrade -y
​

解释:这两条命令用于更新系统软件包的索引并升级所有已安装的软件包,确保系统处于最新状态。

安装必备工具

sudo apt-get install build-essential libtool autoconf -y
sudo apt-get install wget curl unzip tar -y
​

解释:这些工具是编译源代码所必需的。build-essential 包含了构建软件包所需的编译器等工具,libtoolautoconf 用于处理自动化配置文件,wgetcurl 用于下载源代码,unziptar 用于解压缩文件。

2. 编译安装Apache

下载并解压Apache源码

wget https://downloads.apache.org//httpd/httpd-2.4.57.tar.gz
tar -xzf httpd-2.4.57.tar.gz
cd httpd-2.4.57
​

解释:我们首先从Apache的官方网站下载最新的稳定版源代码并解压。cd命令进入解压后的目录。

安装依赖库

sudo apt-get install libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssl-dev -y
​

解释:Apache依赖于PCRE库(Perl Compatible Regular Expressions)来支持正则表达式操作,并且还需要Zlib库来处理压缩和解压缩操作。OpenSSL库用于启用HTTPS支持。

配置并编译Apache

./configure --enable-so --enable-ssl --with-mpm=event --with-included-apr --enable-mods-shared=all
make
sudo make install
​

解释:./configure 是配置编译选项的命令,--enable-so 启用动态模块支持,--enable-ssl 启用SSL支持,--with-mpm=event 选择使用event多进程模块,--with-included-apr 使用Apache Portable Runtime库,--enable-mods-shared=all 启用所有动态模块。make 进行编译,sudo make install 进行安装。

配置Apache服务

sudo /usr/local/apache2/bin/apachectl start
​

解释:以上命令启动Apache服务器。Apache的默认安装路径为 /usr/local/apache2/

3. 编译安装MySQL

下载并解压MySQL源码

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.33.tar.gz
tar -xzf mysql-8.0.33.tar.gz
cd mysql-8.0.33
​

解释:从MySQL官网获取源码并解压,cd 进入解压后的目录。

安装依赖库

sudo apt-get install libncurses5-dev libaio-dev bison -y
​

解释:MySQL需要 libncurses5 库来支持终端的高级控制功能,libaio 用于异步I/O支持,bison 是一个语法解析器生成器。

配置并编译MySQL

cmake . -DDOWNLOAD_BOOST=1 -DWITH_BOOST=boost
make
sudo make install
​

解释:使用 cmake 配置编译选项,-DDOWNLOAD_BOOST=1 表示下载并使用Boost库,-DWITH_BOOST=boost 指定Boost库的位置。接下来使用 make 进行编译并安装。

初始化MySQL数据库

sudo /usr/local/mysql/bin/mysqld --initialize
sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &
​

解释:mysqld --initialize 初始化数据库目录,mysqld_safe 启动MySQL守护进程,并以 mysql 用户身份运行。

4. 编译安装PHP

下载并解压PHP源码

wget https://www.php.net/distributions/php-8.2.0.tar.gz
tar -xzf php-8.2.0.tar.gz
cd php-8.2.0
​

解释:从PHP官网下载PHP源代码并解压,cd 进入解压后的目录。

安装依赖库

sudo apt-get install libxml2-dev libsqlite3-dev libonig-dev -y
​

解释:PHP依赖 libxml2 库来解析XML文档,libsqlite3 支持SQLite数据库操作,libonig 提供正则表达式支持。

配置并编译PHP

./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysqli --with-zlib --enable-mbstring --enable-soap --enable-intl
make
sudo make install
​

解释:使用 ./configure 配置编译选项,--with-apxs2 指定与Apache集成的路径,--with-mysqli 启用MySQL支持,--with-zlib 启用Zlib支持,--enable-mbstring 启用多字节字符串支持,--enable-soap 启用SOAP支持,--enable-intl 启用国际化支持。接着使用 make 编译并安装。

配置PHP与Apache的集成

sudo cp php.ini-development /usr/local/lib/php.ini
sudo echo "LoadModule php_module modules/libphp.so" >> /usr/local/apache2/conf/httpd.conf
sudo echo "AddHandler php-script .php" >> /usr/local/apache2/conf/httpd.conf
sudo echo "DirectoryIndex index.php" >> /usr/local/apache2/conf/httpd.conf
sudo echo "AddType application/x-httpd-php .php" >> /usr/local/apache2/conf/httpd.conf
​

解释:将PHP的配置文件 php.ini-development 复制到 /usr/local/lib/ 目录下并重命名为 php.ini。然后在Apache的 httpd.conf 文件中添加对PHP模块的支持,指定 .php 文件的处理方式,并设置默认的主页为 index.php

5. 安装BBS论坛(Discuz!)

下载Discuz!源码

wget https://download.comsenz.com/DiscuzX/3.4/Discuz_X3.4_SC_UTF8.zip
unzip Discuz_X3.4_SC_UTF8.zip -d /var/www/html/discuz
​

解释:从Discuz!官网下载源码并解压到Apache的Web根目录 /var/www/html/discuz 下。

配置数据库

进入MySQL命令行:

sudo /usr/local/mysql/bin/mysql -u root -p
CREATE DATABASE discuz;
GRANT ALL PRIVILEGES ON discuz.* TO 'discuzuser'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
EXIT;
​

解释:以上命令创建一个名为 discuz 的数据库,并为其创建用户 discuzuser,设置相应的权限。

配置Discuz!

在浏览器中访问 http://your_server_ip/discuz/,根据安装向导完成Discuz!的安装配置。

6. 启动LAMP服务

sudo /usr/local/apache2/bin/apachectl restart
​

解释:重启Apache服务,使得所有配置生效。

总结

通过以上步骤,你可以成功地在一台Linux服务器上从源码编译并安装LAMP环境,并配置一个BBS论坛(Discuz!)。这些步骤涵盖了从安装依赖、下载源代码、配置编译到安装完成的所有细节。每个命令的解释确保了过程的透明度,使即使是非专业人士也能够理解整个流程。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
消息中间件 缓存 弹性计算
纯PHP+MySQL手搓高性能论坛系统!代码精简,拒绝臃肿
本内容分享了一套经实战验证的社交系统架构设计,支撑从1到100万用户的发展,并历经6次流量洪峰考验。架构涵盖客户端层(App、小程序、公众号)、接入层(API网关、负载均衡、CDN)、业务服务层(用户、内容、关系、消息等服务)、数据层(MySQL、Redis、MongoDB等)及运维监控层(日志、监控、告警)。核心设计包括数据库分库分表、多级缓存体系、消息队列削峰填谷、CQRS模式与热点数据动态缓存。同时提供应对流量洪峰的弹性伸缩方案及降级熔断机制,并通过Prometheus实现全链路监控。开源建议结构清晰,适合大型社交平台构建与优化。
611 11
|
11月前
|
Ubuntu 关系型数据库 MySQL
MySQL源码编译安装
本文详细介绍了MySQL 8.0及8.4版本的源码编译安装全过程,涵盖用户创建、依赖安装、cmake配置、编译优化等步骤,并提供支持多Linux发行版的一键安装脚本,适用于定制化数据库部署需求。
2528 4
MySQL源码编译安装
|
NoSQL 关系型数据库 MySQL
在Visual Studio Code中设置MySQL源码调试环境
以上步骤涵盖了在VS Code中设置MySQL源码调试环境的主要过程,是一个相对高级的任务,旨在为希望建立强大开发和调试环境的开发者提供指引。遵循这些步骤,将可以利用VS Code强大的编辑和调试功能来深入理解和改进MySQL数据库的底层实现。
765 0
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
712 1
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
882 3
|
Web App开发 前端开发 Java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
 Connection reset by peer的常见原因: 1)服务器的并发连接数超过了其承载量,服务器会将其中一些连接关闭;    如果知道实际连接服务器的并发客户数没有超过服务器的承载量,看下有没有网络流量异常。
1127 0
|
Web App开发 前端开发 Linux
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
问题症状 修改 linux 内核文件 #vi /etc/sysctl.conf后执行sysctl  -P 报错 error: "net.
762 0
|
Web App开发 前端开发 Linux
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
[root@hadoop058 ~]# mii-tool eth0: negotiated 100baseTx-FD, link ok 100M linux 下查看网卡工作速率 Ethtool是用于查询及设置网卡参数的命令。
849 0
|
Web App开发 前端开发 Java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
Changing Hive Dynamic Partition Limits Symptoms: Hive enforces limits on the number of dynamic partitions that it creates.
1178 0
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
Before performing any upgrades or uninstalling software, stop all of the Hadoop services in the following order...
1378 0

推荐镜像

更多