首页 > 其他分享 >源代码编译安装LAMP

源代码编译安装LAMP

时间:2024-09-22 17:53:51浏览次数:10  
标签:-- local 编译 LAMP usr mysql node1 源代码 root

一、简介

源代码编译安装LAMP:

  • 源代码:指的是软件的原始代码,是软件编写和编译的基础。
  • 编译:将源代码转换成机器可执行的二进制代码的过程。
  • 安装:将编译后的软件部署到服务器上并配置好,使其能够运行。

源代码编译安装LAMP的特点:

  • 定制性:可以从源代码开始,根据服务器的具体需求进行编译和配置。
  • 性能优化:通过编译时的选项,可以优化软件的性能,以适应特定的硬件环境。
  • 安全性:可以确保安装的软件是最新的,并且可以关闭不需要的功能,减少安全风险。
  • 兼容性:可以确保软件与操作系统和硬件的兼容性。

Linux编译安装主要体现在提高软件性能、‌自由度高、‌更新方便、‌系统兼容性好以及学习成本低等方面。‌

二、实验

使用编译安装安装一个lamp架构

下载需要的编译环境
[root@node1 ~]# yum -y install bzip2  vim make wget openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ libxml2-devel
将apr软件包解压后更改配置文件
[root@node1 apr-1.7.0]# cd ..
[root@node1 software]# ls
apr-1.7.0  apr-1.7.0.tar.gz  apr-util-1.6.1.tar.gz  httpd-2.4.54.tar.gz
 
# 进入 apr-1.7.0中configure 配置文件 删掉$RM "$cfgfile"
安装apr,将他放到/usr/local/apr
[root@node1 apr-1.7.0]# ./configure --prefix=/usr/local/apr
安装完成对他进行编译,编译安装
[root@node1 apr-1.7.0]# make

[root@node1 apr-1.7.0]# make install
第二个安装apr-util-1.6.1.tar.gz,与上同理
[root@node1 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util \
> --with-apr=/usr/local/apr     # 将他与apr关联
使用make进行编译,再使用make install进行编译安装
apache,与上同理,设置参数
[root@node1 software]# cd httpd-2.4.54/
[root@node1 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
使用make进行编译,再使用make install进行编译安装
启动apache,此时没有配置环境变量
[root@node1 apache]# /usr/local/apache/bin/apachectl start
[root@node1 apache]# 
访问apache 

mysql编译安装
[root@node1 ~]# useradd -r -M -s /sbin/nologin mysql  # 创建一个mysql用户 不让他登录
安装mysql需要的依赖包
[root@node1 software]# yum -y install libncurses*
将mysql安装到指定目录下
[root@node1 software]# tar -xzvf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz -C /usr/local
配置mysql
[root@node1 local]# ln -sn mysql-5.7.37-linux-glibc2.12-x86_64/ mysql  # 给mysql创建一个软链接
[root@node1 local]# ls
apache    bin    include  libexec                              sbin
apr       etc    lib      mysql                                share
apr-util  games  lib64    mysql-5.7.37-linux-glibc2.12-x86_64  src
[root@node1 local]# chown -R mysql.mysql /usr/local/mysql      # 更改所属主属组
[root@node1 local]# mkdir -p /opt/data                     # 创建mysql存放数据的目录
[root@node1 local]# chown -R mysql.mysql /opt/data/     # 更改所属主属组
[root@node1 local]# 
对mysql进行初始化,在此之前需要下载libaio
[root@node1 local]# /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --datadir=/opt/data/
配置数据库
[root@node1 local]# vim /etc/my.cnf
[root@node1 local]# cat /etc/my.cnf 
[mysqld]
basedir = /usr/local/mysql
datadir = /opt/data
socket = /tmp/mysql.sock
port = 3306
pid-file = /opt/data/mysql.pid
user = mysql
skip-name-resolve
[root@node1 local]#
配置服务启动的文件
[root@node1 support-files]# pwd
/usr/local/mysql/support-files
[root@node1 support-files]# vim mysql.server 
 
# 更改其中的两个地方
 
basedir= /usr/local/mysql     # 工作目录
datadir=/opt/data             # 数据存放目录
二进制安装没有配置systemctl restart 启动,手动编辑一个
[root@node1 support-files]# cat /usr/lib/systemd/system/mysqld.service
[Unit]
Description=mysql server daemon
After=network.targe
 
[Service]
Type=forking
ExecStart=/usr/local/mysql/support-files/mysql.server start
ExecStop=/usr/local/mysql/support-files/mysql.server stop
ExecReload=/bin/kill -HUP \$MAINPID
 
[Install]
WantedBy=multi-user.target
[root@node1 support-files]# 
此时就可以使用
[root@node1 support-files]# systemctl restart mysqld
[root@node1 support-files]# systemctl enable mysqld
给mysql设置一个环境变量
[root@node1 ~]# vim /etc/profile 
export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH   # 把它添加到最后一行
设置mysql的密码
[root@node1 support-files]# mysql -u root -e "set password=password('linux')"
安装php所需要的依赖包
[root@node1 ~]# yum -y install wget gcc gcc-c++ autoconf automake libtool make libxml2 libxml2-devel openssl openssl-devel sqlite-devel libpng libpng-devel libpsl libpsl-devel libicu-devel libcurl-devel
编译安装前会报错,就先把这些依赖包装好
[root@node1 ~]# yum install openldap openldap-devel  -y
[root@node1 ~]# cp -frp /usr/lib64/libldap* /usr/lib/
[root@node1 ~]# yum install oniguruma oniguruma-devel -y
[root@node1 ~]# yum --enablerepo=devel -y install oniguruma-devel
配置编译安装php
[root@node1 php-8.2.5]# pwd
/opt/software/php-8.2.5
[root@node1 php-8.2.5]# ./configure --prefix=/usr/local/php \
	--with-apxs2=/usr/local/apache/bin/apxs \
	--with-mysql-sock=/tmp/mysql.sock \
	--enable-fpm \
	--enable-mysqlnd \
	--enable-mysqlnd-compression-support \
	--with-zlib \
	--enable-xml \
	--disable-rpath \
	--enable-bcmath \
	--enable-shmop \
	--enable-sysvsem \
	--enable-mbregex \
	--enable-mbstring \
	--enable-intl \
	--enable-ftp \
	--enable-gd-jis-conv \
	--with-openssl \
	--with-mhash \
	--enable-pcntl \
	--enable-sockets \
	--enable-soap \
	--with-gettext \
	--enable-fileinfo \
	--enable-opcache \
	--with-pear \
	--with-ldap=shared \
	--without-gdbm \
	--with-curl \
	--enable-ctype \
	--without-pear  --disable-phar

使用make进行编译,再使用make install进行编译安装

配置php

# 测试环境时使用php.ini-development文件,生产环境使用php.ini-production文件
[root@node1 ~]# cp php.ini-development /usr/local/php/lib/php.ini
 
将/usr/local/php/lib/php.ini 中的时区修改成Asia/Shanghai
修改httpd服务配置文件,让apache支持php
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php
# 将以上两行添加到/etc/httpd24/httpd.conf
# 默认网页加上index.php 
写一个新的网页
[root@node1 htdocs]# pwd
/usr/local/apache/htdocs
[root@node1 htdocs]# cat index.php 
<?php
        phpinfo();
?>
[root@node1 htdocs]# 
重启apache服务,访问网址

三、思维导图

 

标签:--,local,编译,LAMP,usr,mysql,node1,源代码,root
From: https://blog.csdn.net/2301_78088515/article/details/142364728

相关文章

  • 编译流程背后的一些技术细节
    在c#语言中,中间代码是如何被转换为特定平台的机器码的在C#语言中,中间代码是通过.NET框架中的**公共语言运行时(CommonLanguageRuntime,CLR)**转换为特定平台的机器码的。这个过程涉及几个关键步骤,主要包括编译、JIT编译和执行。以下是详细的解释:1.源代码编译成中间语言(I......
  • 探索编译器编译c#程序神秘面纱
    编译器编译C#程序的过程可以分为以下几个主要步骤:1.词法分析(LexicalAnalysis)编译器首先将源代码文本分解成一个个的标记(tokens)。每个标记代表一个关键字、标识符、运算符、字面量或其他语法元素。空白字符和注释通常在这个阶段被忽略或移除。2.语法分析(SyntaxAnalysi......
  • 听说ChatGPT o1推理模型即将问世,传统问答系统是否还有存在的必要?毕业设计:基于知识图谱
     OpenAI隆重推出全新一代的o1模型,该模型在多个领域展现出了非凡的能力,标志着人工智能技术的又一次飞跃。该模型专门解决比此前的科学、代码和数学模型能做到的更难的问题,实现复杂推理。那来看看并体验以下我们传统的问答系统的设计流程和具体面貌吧!!!1.1系统架构设计1.1.1......
  • win10x64位+nmake编译geos3.7.1
    说明:使用nmake进行编译,最新的geos3.13似乎已经不能用nmake进行编译了,不过3.7.1已经够用了。1、解压geos-3.7.1,定位到根目录下的namke.opt文件,这个文件控制着nmake编译的一些参数。2、打开nmake.opt,找到如下片段:############################################################......
  • 【Ambari自定义组件集成】Bigtop编译大数据组件,看这一篇就够了
    快捷导航在正式内容之前,通过下方导航,大家可以快速找到相关资源:快捷导航链接地址备注相关文档-ambari+bigtop自定义组件集成https://blog.csdn.net/TTBIGDATA/article/details/142150086CSDN地址编译、开发、部署、集成解决方案https://t.zsxq.com/0PVcI知识星球源代码-Ambar......
  • ubuntu22.04编译安装R4.4.1
    1.卸载当前版本的R:为了确保之前安装的R版本不会干扰,先卸载它:sudorm-rf/opt/R/4.4.1sudorm/usr/local/bin/Rsudorm/usr/local/bin/Rscript2.安装所需依赖:确保编译R所需的依赖已经安装:sudoapt-getupdate&&\sudoapt-getinstall-ybuild-essentialli......
  • uniapp - 实现安卓App打包上架应用商店详细教程,详解Hbuilder打包编译apk发布上传到应
    前言【苹果App】打包上架Appstore应用商店,请访问。在uni-app安卓App项目开发中,详解打包app及上架应用市场教程,uniapp打包app安卓应用并发布到软件商店,提供多种方式打包编译为APK文件(HbuilderX云打包/本地原生打包/离线打包),附带申请Android签名证书多种方法、对要上......
  • Android插件化(三)基础之Android应用程序资源的编译和打包过程分析
    Android插件化(三)基础之Android应用程序资源的编译和打包过程分析Android资源加载常规思路getResourcesForApplication//首先,通过包名获取该包名的Resources对象Resourcesres=pm.getResourcesForApplication(packageName);//根据约定好的名字,去取资源id;intid=res.......
  • 一个nvcc编译的小问题
    下面的cuda代码为什么指定computecapability=8.0后在A100上跑结果不对?nvcca.cu#正确nvcca.cu-gencodearch=compute_80,code=sm_80#结果不正确//a.cu#include<cuda_runtime.h>#include<stdio.h>#include<stdlib.h>usingValueType=float;__constant__......
  • 编译安装nginx
    Nginx官方定义了Mainline、Stable、Legacy三种版本Mainlineversion(主线版本)该版本包含最新的功能和bug修复,被视为开发版,即正在活跃开发中的版本。其版本号通常为单数,这个版本的更新较快,可能会引入新的功能和修复,但也可能存在尚未解决的bug。Stableversion(稳定版本)最新稳......