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

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/93888.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/93888.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/93888.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

應用控制技術

一、 應用特征識別技術1.傳統行為檢測技術1.1 五元組檢測原理1.2 配置思路1.3 效果展示需求背景21.4 傳統行為檢測的缺陷無法識別應用層內容:若應用更換端口(如QQ改用隨機端口)或偽裝協議(如HTTPS加密),傳統…

當MySQL的int不夠用了

關于int的長度很多時候看到int(8)這樣的定義,其實這是工具導出的不專業。int是范圍,不是長度。在開發有了共識(知道這個長度不算數,要看范圍)以后,上來就是所有的類型都是bigint。int的范圍int的取值范圍是…

讓AI學會“邊做邊想“:ReAct的實戰指南

小智的求職困境有個叫小智的AI助手,它剛從"大語言模型大學"畢業,滿懷信心地去應聘一家咨詢公司的智能助理職位。面試官問:"北京和上海哪個城市人口更多?"小智立刻回答:"根據我的知識&#xf…

vue優化有哪些手段?

vue本身存在的方法 v-if 和v-show 的合理運用,頻繁使用的組件使用v-show,不頻繁的使用v-if,來減少dom的渲染路由懶加載 采用()>import(index.vue)當路由被訪問的時候才回去加載使用keep-alive緩存頁面,減少沒必要的重復渲染同時也可以減少服務器的壓力使用computed緩存數據,…

【圖像算法 - 14】精準識別路面墻體裂縫:基于YOLO12與OpenCV的實例分割智能檢測實戰(附完整代碼)

摘要: 裂縫是結構健康的重要隱患,傳統人工巡檢耗時耗力且易遺漏。本文將帶您利用當前最先進的YOLO12實例分割模型,構建一個高效、準確、更高精度的裂縫檢測系統。我們將從數據準備、模型訓練到結果可視化,手把手實現一個完整的項目…

“讓機器人更智慧 讓具身體更智能”北京世界機器人大會行業洞察

2025年8月8日,世界機器人大會在北京盛大開幕。本屆大會以“讓機器人更智慧 讓具身體更智能”為主題,由中國電子學會、世界機器人合作組織主辦,包括開幕式、閉幕式、論壇等。同期舉辦世界機器人博覽會、世界機器人大賽等活動,打造了…

PHP如何使用JpGraph生成折線圖?

JpGraph是一個功能強大的PHP圖表庫,它通過封裝GD庫函數,為開發者提供了簡單高效的數據可視化解決方案。作為專門用于繪制統計圖的面向對象庫,JpGraph支持創建折線圖、柱狀圖、餅圖等20余種圖表類型,并能自動處理坐標軸、刻度、圖例…

超級云平臺:重構數字生態的“超級連接器“

在數字經濟浪潮席卷全球的今天,企業數字化轉型已從"選擇題"變為"必答題"。然而,傳統云服務模式因技術壁壘高、資源分散、協同效率低等問題,讓許多企業在數字化轉型中陷入"上云易、用云難"的困境。 在此背景下,一種以"全域資源整合+智能…

https如何保證傳遞參數的安全

HTTPS 并非直接“加密參數”,而是通過一整套加密傳輸機制,確保客戶端與服務器之間所有通信內容(包括 URL 參數、表單數據、Cookie 等)在傳輸過程中不被竊聽、篡改或偽造。其核心安全保障來自以下技術實現: 一、核心加密…

OpenHarmony之打造全場景智聯基座的“分布式星鏈 ”WLAN子系統

1. 技術架構概覽 無線局域網(Wireless Local Area Networks,WLAN),是通過無線電、紅外光信號或者其他技術發送和接收數據的局域網,用戶可以通過WLAN實現結點之間無物理連接的網絡通訊。常用于用戶攜帶可移動終端的辦公、公眾環境中。 WLAN組件子系統為用戶提供WLAN基礎功…

JMeter(入門篇)

一.簡介 JMeter 是 Apache 組織使用 Java 開發的一款測試工具。 1、可以用于對服務器、網絡或對象模擬巨大的負載 2、通過創建帶有斷言的腳本來驗證程序是否能返回期望的結果 二.優缺點 優點: 開源、免費 跨平臺 支持多協議 小巧 功能強大 缺點&#xff…

Lecture 12: Concurrency 5

回顧:并行用餐哲學家讀者/作者問題哲學家進餐問題方案三:最大化并行需要一個更復雜的解決方案來實現最大的并行性 解決方案使用:state[N]:每個哲學家的當前狀態(THINKING, HUNGRY, EATING&#…

UniApp 微信小程序之間跳轉指南

概述 在UniApp開發中,經常需要實現從當前小程序跳轉到其他微信小程序的功能。本文檔詳細介紹了如何在UniApp中實現微信小程序之間的跳轉。 核心API uni.navigateToMiniProgram() 這是UniApp提供的用于跳轉到其他微信小程序的核心API。 基本語法 uni.navigateToMiniP…

基于SpringBoot+Vue的養老院管理系統的設計與實現 智能養老系統 養老架構管理 養老小程序

🔥作者:it畢設實戰小研🔥 💖簡介:java、微信小程序、安卓;定制開發,遠程調試 代碼講解,文檔指導,ppt制作💖 精彩專欄推薦訂閱:在下方專欄&#x1…

TRAE調教指南:用6A工作流項目規則+5S敏捷個人規則打造高效AI開發流程

TRAE調教指南:用6A工作流項目規則5S敏捷個人規則打造高效AI開發流程 引言:從"AI瞎寫"到"精準交付"的實戰手冊一、什么是Rules:讓AI"聽話"的底層邏輯1. 告別重復指令疲勞2. 實現"千人千面"的個性化適…

【C語言】gets和getchar的區別

在C語言中,gets和getchar是兩個用于輸入的標準函數,它們在功能和用法上有所不同。 功能上: gets函數主要用于讀取一行字符串,直到遇到換行符(回車鍵)為止。它會自動過濾掉換行符,不會將其讀入到…

【數據結構與算法】數據結構初階:詳解二叉樹(一)

🔥個人主頁:胡蘿卜3.0 🎬作者簡介:C研發方向學習者 📖個人專欄: 《C語言》《數據結構》 《C干貨分享》 ??人生格言:不試試怎么知道自己行不行 正片開始之前,我們來了解一下我們即…

工具測試 - marker (Convert PDF to markdown + JSON quickly with high accuracy)

參考鏈接如下:: 參考鏈接:https://github.com/datalab-to/marker?tabreadme-ov-file#llm-services 底層的OCR模型:https://github.com/datalab-to/surya 作用:開源免費🆓,多 GPU 推理、生成效…

STM32HAL 快速入門(七):GPIO 輸入之光敏傳感器控制蜂鳴器

STM32HAL 快速入門(七):GPIO 輸入之光敏傳感器控制蜂鳴器 前言 大家好,這里是 Hello_Embed。上一篇我們用 GPIO 輸入模式實現了按鍵控制 LED,本篇將進階到 “光敏傳感器控制蜂鳴器”—— 通過讀取光敏傳感器的信號&…

windows環境,安裝kafka

步驟 1: 準備工作 確保已安裝 Java:Kafka 需要 Java 運行時環境 (JRE) 或 Java 開發工具包 (JDK) 來運行。請確認您的系統上已安裝了 Java,并且 JAVA_HOME 環境變量正確配置。 解壓 Kafka:將下載的 Kafka 壓縮包解壓到一個目錄,比…