28.Linux :通过源代码编译安装lamp

Linux :通过源代码编译安装lamp

区别

特性 源代码编译安装 yum 安装
安装方式 从源代码编译构建 预编译的二进制包
自定义程度 高度可定制 有限定制
性能优化 可针对特定硬件优化 通用优化
依赖管理 手动解决依赖关系 自动解决依赖
安装复杂度 复杂,需技术经验 简单,一键安装
维护更新 手动更新 自动更新
安全性 需自行关注安全补丁 官方提供安全更新
版本控制 可选择任意版本 受仓库版本限制
适用场景 高性能需求/特殊定制/学习环境 快速部署/生产环境/新手友好

lamp分别指linux,apache,MySQL(mariadb),php

php环境一般最后安装,用于沟通web服务器和数据库进行协同工作

源代码安装有四个步骤,分别为解包,配置,编译,编译安装

安装之前关闭防火墙和selinux,使用yum网络源进行配置(wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo)

复制代码
yum -y install epel-release

安装需要的工具包

复制代码
yum -y install bzip2  vim make wget openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ libxml2-devel

首先去官网找到需要的软件包(一般为tar包,可以用tar命令解压)

复制代码
本次使用apr-1.7.0.tar.gz,
apr-util-1.6.1.tar.gz,
httpd-2.4.54.tar.gz,
mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz,
php-7.1.10.tar.bz2

使用xshell(或者其他软件)将软件包传输到linux系统中

首先解压并安装apr,apr-util包

复制代码
apr
[root@xieyuhui2 ~]# tar -xzvf apr-1.7.0.tar.gz
[root@xieyuhui2 ~]# cd apr-1.7.0/
[root@xieyuhui2 apr-1.7.0]# sed -i '/$RM "$cfgfile"/d' configure   #删除configure里面的$RM "$cfgfile,使用`-i`选项时,`sed`会直接更改源文件
配置
[root@xieyuhui2 apr-1.7.0]# ./configure --prefix=/usr/local/apr    #prefix为路径
[root@xieyuhui2 apr-1.7.0]# make  #编译
[root@xieyuhui2 apr-1.7.0]# make install #编译安装

apr-util
[root@xieyuhui2 ~]# tar -xzvf apr-util-1.6.1.tar.gz
[root@xieyuhui2 ~]# cd apr-util-1.6.1/
[root@xieyuhui2 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr      #with表示包含apr依赖组件
[root@xieyuhui2 apr-util-1.6.1]# make
[root@xieyuhui2 apr-util-1.6.1]# make install

httpd的依赖组件安装完成后开始安装httpd

复制代码
[root@xieyuhui2 ~]# tar -xzvf httpd-2.4.54.tar.gz
[root@xieyuhui2 ~]# cd httpd-2.4.54/
[root@xieyuhui2 httpd-2.4.54]# ./configure --prefix=/usr/local/apache \
> --sysconfdir=/etc/httpd24 \
> --enable-so \
> --enable-ssl \
> --enable-cgi \
> --enable-rewrite \
> --with-zlib \
> --with-pcre \
> --with-apr=/usr/local/apr \
> --with-apr-util=/usr/local/apr-util/ \
> --enable-modules=most \
> --enable-mpms-shared=all \
> --with-mpm=prefork
[root@xieyuhui2 httpd-2.4.54]# make
[root@xieyuhui2 httpd-2.4.54]# make install

启动apache服务

复制代码
[root@xieyuhui2 ~]# /usr/local/apache/bin/apachectl start

安装依赖包

复制代码
yum -y install libncurses*     #centos7系统自带,因此不用安装

创建mysql用户

复制代码
[root@xieyuhui2 ~]# useradd -r -M -s /sbin/nologin mysql        #-r 表示创建一个系统用户,uid小于1000,-M表示不创建家目录

安装mysql

复制代码
[root@xieyuhui2 ~]# tar -xzvf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz -C /usr/local   #-C表示指定目录

[root@xieyuhui2 local]# ln -sv /usr/local/mysql-5.7.37-linux-glibc2.12-x86_64 /usr/local/mysql   #给mysql-5.7.37-linux-glibc2.12-x86_64创建软链接
[root@xieyuhui2 local]# chown -R mysql.mysql /usr/local/mysql     #将mysql的所有者和所属组改为mysql,-R表示递归
[root@xieyuhui2 local]# mkdir -p /opt/data
[root@xieyuhui2 local]# chown -R mysql.mysql /opt/data/
#  yum -y install libaio centos7自带因此不安装,如果没有则安装

数据库初始化

复制代码
[root@xieyuhui2 ~]# /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --datadir=/opt/data/
[root@xieyuhui2 ~]# ln -sv /usr/local/mysql/include/ /usr/local/include/mysql 
[root@xieyuhui2 ~]# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
[root@xieyuhui2 ~]# ldconfig   #查看是否报错

编辑mysql文件

复制代码
[root@xieyuhui2 ~]# vim /etc/my.cnf  #里面的的东西都可以删掉然后自己重写
[mysql]
basedir = /usr/local/mysql
datadir = /opt/data
socket = /tmp/mysql.sockport = 3306
pid-file = /opt/data/mysql.pid
user = mysqlskip-name-resolve

[root@xieyuhui2 ~]# vim /usr/local/mysql/support-files/mysql.server

定义mysql服务使用systemd管理

复制代码
[root@xieyuhui2 ~]# cd /usr/lib/systemd/system
[root@xieyuhui2 system]# vim mysqld.service

重启mysql服务

复制代码
[root@xieyuhui2 system]# systemctl daemon-reload
[root@xieyuhui2 system]# systemctl enable --now mysqld

添加mysql命令的变量到环境变量

复制代码
[root@xieyuhui2 ~]# vim /etc/profile
复制代码
[root@xieyuhui2 ~]# source /etc/profile

设置数据库密码

复制代码
[root@xieyuhui2 ~]# mysql -uroot -p  #首次进入没有密码,直接回车即可
[root@xieyuhui2 ~]# /usr/local/mysql/bin/mysql -uroot -e "set password=password('redhat')"

部署lamp-php

复制代码
安装依赖包,安装GD库和GD库关联程序,用来处理和生成图片
[root@xieyuhui2 ~]# yum -y install \
> libjpeg \
> libjpeg-devel \
> libpng libpng-devel \
> freetype freetype-devel \
> libxml2 \
> libxml2-devel \
> zlib zlib-devel \
> curl curl-devel

[root@xieyuhui2 ~]# tar -xjvf php-7.1.10.tar.bz2
[root@xieyuhui2 php-7.1.10]# ./configure \
> --prefix=/usr/local/php \
> --with-apxs2=/usr/local/apache/bin/apxs \
> --with-mysql-sock=/tmp/mysql.sock \
> --with-mysqli \
> --with-zlib \
> --with-curl \
> --with-gd \
> --with-jpeg-dir \
> --with-png-dir \
> --with-freetype-dir \
> --with-openssl \
> --enable-mbstring \
> --enable-xml \
> --enable-session \
> --enable-ftp \
> --enable-pdo \
> --enable-tokenizer \
> --enable-zip
[root@xieyuhui2 php-7.1.10]# make
[root@xieyuhui2 php-7.1.10]# make install

测试环境时使用php.ini-development文件,生产环境使用php.ini-production文件

复制代码
[root@xieyuhui2 ~]# cp php.ini-development /usr/local/php/lib/php.ini

修改php配置文件

复制代码
1.设置时区
[root@xieyuhui2 ~]# vim /usr/local/php/lib/php.ini
复制代码
2.使apache支持php
[root@xieyuhui2 ~]# vim /etc/httpd24/httpd.conf
复制代码
[root@xieyuhui2 ~]# cd /usr/local/apache/htdocs 
[root@xieyuhui2 htdocs]# rm -f /usr/local/apache/htdocs/index.html   #删除原有的html文件
[root@xieyuhui2 htdocs]# vim index.php  #验证php详细信息测试网页

重启apache服务(先停止再启动)

复制代码
[root@xieyuhui2 ~]# /usr/local/apache/bin/apachectl stop
[root@xieyuhui2 ~]# /usr/local/apache/bin/apachectl start
相关推荐
wj3055853784 小时前
课程 9:模型测试记录与 Prompt 策略
linux·人工智能·python·comfyui
abigriver4 小时前
打造 Linux 离线大模型级语音输入法:Whisper.cpp + 3090 显卡加速与 Rime 中英混输终极调优指南
linux·运维·whisper
wangqiaowq4 小时前
windows下nginx的安装
linux·服务器·前端
YYRAN_ZZU5 小时前
Petalinux新建自动脚本启动
linux
charlie1145141915 小时前
嵌入式Linux驱动开发pinctrl篇(1)——从寄存器到子系统:驱动演进之路
linux·运维·驱动开发
Agent手记5 小时前
异常考勤智能预警与处理与流程优化方案 | 基于企业级Agent的超自动化实战教程
运维·人工智能·ai·自动化
于小猿Sup6 小时前
VMware在Ubuntu22.04驱动Livox Mid360s
linux·c++·嵌入式硬件·自动驾驶
cen__y6 小时前
Linux12(Git01)
linux·运维·服务器·c语言·开发语言·git
不仙5207 小时前
VMware Workstation 26.0.0 在 Ubuntu 24.04 (内核 6.17.0) 上的安装与内核模块编译问题
linux·ubuntu·elasticsearch
189228048618 小时前
NY352固态MT29F32T08GWLBHD6-24QJ:B
大数据·服务器·人工智能·科技·缓存