当前位置:网站首页>源码编译安装LAMP
源码编译安装LAMP
2022-07-27 11:01:00 【不回头的蛙兄】
目录
2.6 优化配置文件路径,并把httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别
4.5 优化把PHP 的可执行程序文件放入路径环境变量的目录中便于系统识别
5.4.1在网页输入:http://192.168.152.11/bbs/install/
1 LAMP简介与概述
1.1 LAMP平台概述
LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整台系统和相关软件,能够提供动态web站点服务及其应用开发环境
LAMP是一个缩写词,具体包括Linux操作系统,Apache网站服务器,MySQL数据库服务器,PHP(或perl,Python)网页编程语言
1.2 构建LAMP平台顺序
在构建LAMP平台时,各组件的安装顺序依次为Linux,Apache,MySQL,PHP
其中Apache和MySQL的安装并没有严格的顺序要求,而PHP环境的安装一般放到最后,负责沟通web服务器和数据库系统以协同工作
1.3 各组件的主要作用
(平台)Linux:作为LAMP架构的基础,提供用于支撑Web站点的操作系统,能够与其他三个组件提供更好的稳定性,兼容性(AMP组件也支持Windows、UNIX等平台) 。
(前台)Apache:作为LAMP架构的前端,是一款功能强大,稳定性好的Web服务器程序,该服务器直接面向用户提供网站访问,发送网页,图片等文件内容。
(后台)MySQL:作为LAMP架构的后端,是一款流行的开源关系数据库系统。在企业网站、业务系统等应用中,各种账户信息、产品信息,客户资料、业务数据等都可以存储到MySQL数据库,其他程序可以通过SQL语句来查询,更改这些信息。
(中间连接)PHP/Perl/Python:作为三种开发动态网页的编程语言,负责解释动态网页文件,负责沟通Web服务器和数据库系统以协同工作,并提供Web应用程序的开发和运行环境。其中PHP是一种被广泛应用的开放源代码的多用途脚本语言,它可以嵌入到HTML中,尤其适合于Web应用开发。
1.4 编译安装的优点
- 具有较大的自由度,功能可定制
- 可及时获得最新的软件版本
- 普遍适用于大多数Linux版本,便于一直使用
2 安装Apache
2.1 将所需软件包安装到/opt目录下

2.2 解压、移动以下文件

2.3 安装工具
yum -y install \
> gcc \ #C语言的编译器
> gcc-c++ \ #C++的编译器
> make \ #源代码编译器(源代码转换成二进制文件)
> pcre-devel \ #perl的接口开发包
> expat-devel \ #用于支持网站解析HTML、XML文件
> perl #perl语言编译器
2.4 编译安装
cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \ #指定 httpd 服务程序的安装路径
--enable-so \ #启用动态加载核心模块支持,使 httpd 具备进一步扩展功能的能力
--enable-rewrite \ #启用网页地址重写功能,用于网站优化、防盗链及目录迁移维护
--enable-charset-lite \ #启动字符集支持,以便支持使用各种字符集编码的页面
--enable-cgi #启用CGI(通用网关接口)脚本程序支持,便于网站的外部扩展应用访问能力
make -j3 && make install #安装一下
![]()
2.5 做软连接,使文件可执行
#优化配置文件路径,并把httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别
ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/
2.6 优化配置文件路径,并把httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别
#便于service管理
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
---》wq
chkconfig --add httpd //将httpd加入到系统管理器
#可使用service或者systemctl进行管理
vi /usr/local/httpd/conf/httpd.conf
#--52行--修改
#Listen 192.168.152.11:80
--197行--取消注释,修改
ServerName 192.168.152.11:80
--221行--默认首页存放路径
DocumentRoot "/usr/local/httpd/htdocs"
--255行--默认首页文件名设置
DirectoryIndex index.html
---》wq
#检查语法
httpd -t 或 apachectl -t





2.7 关闭防火墙并开启服务
systemctl stop firewalld
cat /usr/local/httpd/htdocs/index.html
service httpd restart 开启服务
netstat -anpt | grep 80
2.8 在网页输入自己的ip测试

3 安装Mysql
yum -y install \
gcc \
gcc-c++ \
ncurses \ #字符终端下图形互动功能的动态库
ncurses-devel \ #ncurses开发包
bison \ #语法分析器
cmake #mysql需要用cmake编译安装3.1 安装依赖包并解压下载的mysql
yum install -y ncurses-devel autoconf cmake
#创建程序用户管理
useradd -s /sbin/nologin mysql
解压安装包(-C 指定路径)
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/boost3.2 编译安装
cd /opt/mysql-5.7.17/
cmake \
-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管理的文件
make -j3 && make install

3.3 拷贝文件并赋予权限
#创建普通用户管理mysql
useradd -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql/
#更改管理主/组
chown mysql:mysql /etc/my.cnf
3.4 修改配置文件
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号全部删除后重新编写

3.5 置环境变量,申明/宣告mysql命令便于系统识别
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile
3.6 初始化数据库
cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \ #生成初始化密码为空
--user=mysql \ #指定管理用户
--basedir=/usr/local/mysql \ #指定数据库的安装目录
--datadir=/usr/local/mysql/data #指定数据库文件的存储路径
3.7 启动mysql
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload #刷新识别
systemctl start mysqld.service #开启服务
systemctl enable mysqld #开机自启动
netstat -anpt | grep 3306 #查看端口
3.8 登录及登出mysql
给root账号设置密码
mysqladmin -u root -p password "123456"
————>直接回车
4 安装PHP
4.1 安装工具
yum -y install \
gd \ #图像化处理的库
libpng \ #png格式图片的库
libpng-devel \
pcre \ #PCRE库支持正则表达式
pcre-devel \ #pcre-devel是使用PCRE做二次开发时所需要的开发库,也是编译安装需要的
libxml2-devel \ #解析xml标记语言的库
libjpeg-devel #jpeg格式图片的库
4.2 切换至opt目录下解压PHP文件
cd /opt
tar zxvf php-7.1.24.tar.gz4.3 切换至php目录下,编译安装
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 -j3 && make install
安装
![]()
4.4 复制模板文件,并进行修改
cp 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


4.5 优化把PHP 的可执行程序文件放入路径环境变量的目录中便于系统识别
ln -s /usr/local/php7/bin/* /usr/local/bin/![]()
4.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![]()


4.7 创建、编辑php页面文件
rm -rf /urs/local/httpd/htdocs/index.html
vim /usr/local/httpd/htdocs/index.php
<?php
phpinfo();
?>
4.8 重启服务
4.9 在网页测试

5 安装论坛
#登入数据库
mysql -u root -p
mysql> CREATE DATABASE bbs; #创建一个数据库
#把bbs数据库里面所有表的权限授予给bbsuser,并设置密码// 所有访问来源/渠道
mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
mysql> flush privileges; #刷新数据库
mysql> show databases; #查看数据库
mysql> exit #登出
5.1 解压论坛文件并复制文件到指定目录
unzip Discuz_X2.5_SC_UTF8.zip -d /opt/dis![]()
5.2 上传站点更新包
cd /opt/dis
#上传站点更新包
cp -r upload/ /usr/local/httpd/htdocs/bbs
5.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
5.4 登录论坛测试
5.4.1在网页输入:http://192.168.152.11/bbs/install/


下拉到最后点击下一步


密码:admin123

5.4.2 登录测试


5.4.3 创建用户测试


6 本章总结
- Apache编译安装方法
- httpd服务支持的虚拟主机类型
- MySQL数据库编译安装方法
- 构建PHP运行环境的方法
- 部署及使用phpMyAdmin系统的方法
边栏推荐
- C programming language (2nd Edition) -- Reading Notes -- 1.5.3
- Maker harmony OS application development training notes 01
- 【Unity入门计划】CreatorKitFPS:第一人称射击3D小游戏
- 剑指 Offer 笔记: T57 - I. 和为 s 的两个数字
- 第12章 泛型
- Chinese remainder theorem acwing 204. strange way of expressing integers
- The C programming language (2nd) -- Notes -- 1.7
- STM32编译出现error: L6235E: More than one section matches selector - cannot all be FIRST/L
- 什么是私域流量?
- 多家银行调整现金管理类理财产品申赎规则:申赎确认时效“T+0”变“T+1”
猜你喜欢

Game theory acwing 894. Split Nim game

第12章 泛型

When std:: bind meets this

Find the combination number acwing 886. find the combination number II

Find the combination number acwing 888. find the combination number IV

Gaussian elimination acwing 883. solving linear equations with Gaussian elimination

Newton-Raphson迭代法

C custom set

Everything cannot be searched for startup_ Lpc11x.s file

第7章 异常处理
随机推荐
Luogu p3052 [usaco12mar]cows in a skyscraper G
The C programming language (2nd) -- Notes -- 1.9
基于反馈率的控制系统原理
Summary of C language knowledge involved in learning STM32F103 (link only)
[shader realizes shake random shaking effect _shader effect Chapter 10]
Interval problem acwing 906. Interval grouping
The C programming language 2nd -- Notes -- 6.7
The C programming language (2nd) -- Notes -- 1.6
Caused by:org.gradle.api.internal. plugins . PluginApplicationException: Failed to apply plugin
C programming language (2nd Edition) -- Reading Notes -- 1.3
WGet warning: unable to verify
Local virtual machine initialization script
makefile模板
JUC框架 从Runnable到Callable到FutureTask 使用浅析
数据库 cli 工具 docker 镜像
The C programming language (2nd) -- Notes -- 1.10
N ¨UWA: Visual Synthesis Pre-training for Neural visUal World creAtionChenfei
origin如何作一张图中多张子图是柱状图(或其他图)
pytorch和tensorflow一样展示summary
Modelarts voice detection and text classification