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
相关推荐
m0_6948455710 分钟前
教你使用服务器如何搭建数据库
linux·运维·服务器·数据库·云计算
空灵之海29 分钟前
Ubuntu Server 22.04.5系统安装教程
linux·运维·ubuntu
gamers1 小时前
rock linux 9 安装mysql 5.7.44
linux·mysql·adb
arbboter1 小时前
【自动化】深入浅出UIAutomationClient:C#桌面自动化实战指南
运维·c#·自动化·inspect·uiautomation·uia·桌面自动化
二进制_博客1 小时前
给CentOS的虚拟机扩容
linux·运维·centos
千钰v2 小时前
Tcpdump: The Basics Tcpdump 基础
linux·运维·网络·tcpdump·tryhackme
kk5792 小时前
【Ubuntu】sudo apt update出现E :仓库***没有Release文件
linux·运维·ubuntu
cellurw2 小时前
Linux下C语言实现HTTP+SQLite3电子元器件查询系统
linux·c语言·http
belldeep2 小时前
Win10 上 Debian 12 如何安装 Redis ?
运维·redis·debian
文弱书生6562 小时前
5.后台运行设置和包设计与实现
服务器·开发语言·c#