記LAMP搭建(附源碼包)

来源:https://www.cnblogs.com/ajajroom/archive/2023/03/16/17223366.html
-Advertisement-
Play Games

web平臺搭建-LAMP(CentOS-7) 一.準備工作 環境要求: 操作系統:CentOS7.X 64位 關閉SELinux和firewalld防火牆 源碼包:https://pan.baidu.com/s/1P2fq706H8sPeHG6-nfHUSw 提取碼:9ruw 1.安裝編譯工具gcc ...


web平臺搭建-LAMP(CentOS-7)

一.準備工作

環境要求:
操作系統:CentOS7.X 64位
關閉SELinux和firewalld防火牆

源碼包:https://pan.baidu.com/s/1P2fq706H8sPeHG6-nfHUSw
提取碼:9ruw

1.安裝編譯工具gcc、gcc-c+等

註意解決依賴關係,推薦使用 yum 安裝,若不能聯網可使用安裝光碟做為 yum 源

安裝 gcc、gcc-ct+、make等編譯工具

yum -y install gcc gcc-c++ make

關閉SELinux和firewalld

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=permissive/g" /etc/selinux/config 

拷貝源碼包,解包解壓縮

建議將 LAMP環境安裝源碼包統一存放在一個目錄下,如/lamp,可以使用解壓腳本解壓縮

vim tar.sh
#/bin/bash
ls *.tar.gz > ls.list
for tar in $(cat ls.list)
        do
                $(/bin/tar -zxvf $tar)
        done
rm ls.list
~          

源碼軟體包安裝報錯確認與解決方案

echo $?	#安裝軟體過程中由於頻繁刷屏,建議在每個步驟結束後執行此命令
./configure	##此步驟報錯多是依賴關係沒解決或是編譯工具未安裝(註意關鍵詞提示)
make	#此步驟多是編譯時選項參數書寫錯誤、不存在、漏寫等問題
		#一般需要檢查上一個步驟:./configure_—help

註意:若遇到報錯,最簡答的辦法是,找到問題解決後重新解壓軟體,重新安裝,步驟最簡潔

二.編譯安裝

註意:每個源碼包配置編譯安裝完成後,確認安裝目錄下是否生成安裝文件(並確定目錄是否正確)建議將安裝路徑指定為[--prefix=/usr/local/軟體名]格式

1.安裝 libxml2

yum install -y libxm12-devel python-devel
cd libxml2-2.9.1
./configure --prefix=/usr/local/libxml2
make
make install
ls /usr/local/libxml2/

2.安裝libmcrypt

cd libmcrypt-2.5.8
./configure --prefix=/usr/local/libmcrypt/
make
make install

安裝libltdl,也在libmcrypt源碼目錄中,非新軟體

cd libltdl/
./configure --enable-ltdl-install
make
make install

3.安裝mhash

cd ../mhash-0.9.9.9
./configure
make
make install

4.安裝 mcrypt

cd libmcrypt-2.5.8
export LD_LIBRARY_PATH=/usr/local/libmcrypt/lib/:/usr/local/lib
 ./configure --with-libmcrypt-prefix=/usr/local/libmcrypt/
 make
 make install

5.安裝zlib

cd ../zlib-1.2.13
./configure
make && make install

安裝 libpng

cd ../libpng-1.2.31
./configure --prefix=/usr/local/libpng && make && make install

7.安裝jpeg6

註意:此軟體預設不會自動創建所需目錄,所以目錄必須手工建立

mkdir /usr/local/jpeg6
mkdir /usr/local/jpeg6/bin
mkdir /usr/local/jpeg6/lib
mkdir /usr/local/jpeg6/include
mkdir /usr/local/jpeg6/man/man1 -p
./configure --prefix=/usr/local/jpeg6/ \
--enable-shared \ ##建立共用庫使用的GNU的libtool
--enable-static \#建立靜態庫使用的GNU的libtool
&& make && make install

8.安裝 freetype

cd ../freetype-2.3.5
 ./configure --prefix=/usr/local/freetype && make && make install

9.安裝Apache

源碼包2.4.*版本中預設沒有集成apr的依賴包,所以需要提前解決依賴問

 cp -a ../apr-1.7.2 ../httpd-2.4.56/srclib/apr
 cp -a ../apr-util-1.6.3 ../httpd-2.4.56/srclib/apr-util

Apache 預設需要依賴 pcre 軟體,但由於 Apache 軟體版本較高,則系統預安裝的 pcre 無法使用,所以需要人為手動安裝適合版本

cd ../pcre-8.34
./configure && make &&make install

httpd 軟體安裝

yum install expat-devel
./configure --prefix=/usr/local/apache2 \
--sysconfdir=/usr/local/apache2/etc \#指定Apache配置文件保存目錄
--with-include-apr \#使用捆綁APR/APR-Util 的副本
--enable-so \ #以動態共用對象(DSO)方式編譯
--enable-deflate=shared \#啟用編小傳輸編瑪支持的模塊
--enable-expires=shard \#根據用戶的特別設定來生成失效和隱藏控制的HTTP頭信息
--enable-rewrite-shard \#啟動重寫功能的模塊
&& make && make install

啟動Apache測試

/usr/local/apache2/bin/apachectl start
netstat -tlun
#使用網路進程查看命令確認Apache是否啟動,是否開啟了80監聽埠

警告提示:發現啟動服務提示

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message

解決辦法:打開主配置文件 httpd.conf

搜索 ServerName

改為ServerName localhost:80(並且去掉前面的#註釋)

驗證:通過瀏覽器輸入地址訪問:http://伺服器ip,若顯示"It works"即表明Apache正常工作

10.安裝 ncurses

yum install ncurses-devel
cd ../ncurses-5.9
./configure --with-shared --without-debug--without-ada--enable-overwrite&& make && make install

11,安裝cmake和bison

yum install cmake bison -y

12.安裝MySQL

為MySQL軟體創建運行用戶,創建為系統用戶,並限制此用戶登錄操作系統

useradd -r -s /sbin/nologin mysql
cd ../mysql-5.5.48
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 && make && make install

選項詳解:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
安裝位置
-DMYSQL_UNIX_ADDR=/tmp/mysąl.sock
指定 socket(套接字)文件位置
-DEXTRA_CHARSETS=al1
擴展字元支持
-DDEFAULT_CHARSET=ut f8
預設字元集
-DDEFAULT COLLATION=utf8_general_ci
預設字元校對
-DWITH_MYISAM_STORAGE ENGINE=1
安裝 myisam存儲引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1
安裝 innodb 存儲引擎
-DWITH MEMORY STORAGE ENGINE=1
安裝 memory 存儲引擎
-DWITH READLINE=1
支持 readline 庫
-DENABLED_LOCAL_INFILE=1
啟用載入本地數據
-DMYSQL_USER=mysql
指定 mysql 運行用戶
-DMYSQL TCP PORT-3306
指定 mysql 埠

MySQL 安裝後需要調整相應配置文件和參數才能正常運行

修改MySQL目錄的用戶歸屬

chown -R root .
chown -R mysql data/

生成配置文件,並初始化授權表

 cp -a /root/lamp/mysql-5.5.48/support-files/my-medium.cnf /etc/my.cnf

複製MySQL配置文件到指定位置,覆蓋掉系統自帶文件

cd /usr/local/mysql/
./scripts/mysql_install_db --user=mysql

創建資料庫授權表,初始化資料庫,相當於安裝完操作系統後的引導設置(添加第一個用戶)

啟動MySQL服務

在/usr/local/mysql/bin 下

./mysqld_safe --user=mysql &

設定MySQL密碼

./mysqladmin -uroot password 000000

登錄MySQL

./mysql -uroot -p000000

13.安裝PHP

安裝libtool和libtool-ltdl

yum install libtool* -y
./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/ --with-apxs2=/usr/local/apache2/bin/apxs --with-libxml-dir=/usr/local/libxml2/ --with-jpeg-dir=/usr/local/jpeg6/ --with-png-dir=/usr/local/libpng/ --with-freetype-dir=/usr/local/freetype/ --with-mcrypt=/usr/local/libmcrypt/ --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets --with-pdo-mysql=/usr/local/mysql/ --with-gd --without-pear && make && make install

選項詳解:

--with-config-file-path=/usr/local/php/etc/
指定配置文件目錄
--with-apxs2=/usr/local/apache2/bin/apxs
指定 apache 動態模塊位置
--with-libxml-dir=/usr/local/libxml2/
指定 libxml 位置
--with-jpeg-dir=/usr/local/jpeg6/
指定 jpeg 位置
--with-png-dir=/usr/local/libpng/
指定 libpng 位置
--wi th-freetype-dir=/usr/local/freetype/
指定 freetype 位置
-with-mcrypt=/usr/local/libmcrypt/
指定 libmcrypt 位置
-with-mysqli=/usr/local/mysql/bin/mysql_config 
指定 mysqli 位置
with-gd
啟用 gd 庫
enable-soap
支持 soap 服務
enable-mbstring-all
支持多位元組,字元串
enable-sockets
支持套接字
with-pdo-mysql=/usr/local/mysql
啟用 mysql 的 pdo 模塊支持
without-pear
不安裝 pear(安裝 pear 需要連接互聯網)

PHP 安裝後需要調整相應配置文件和參數才能正常運行

生成 php 配置文件

mkdir /usr/local/php/etc
cp php.ini-production /usr/local/php/etc/php.ini

修改 Apache 配置文件,使其識別*.php 文件,並能通過 php 模塊調用 php 進行頁面解析

vim /usr/local/apache2/etc/httpd.conf
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps

重啟 Apache 服務

/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start

測試php 頁面是否能正常解析(即 apache 和 php 連通性)

vim /usr/local/apache2/htdocs/test.php
<?php
        phpinfo();
?>

通過瀏覽器輸入地址訪問:http://Apache伺服器地址/test.php

14.為PHP安裝openssl模塊

yum install autoconf
cd /php-7.0.7/ext/openssl/
mv config0.m4 config.m4
/usr/local/php/bin/phpize
./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config && make && make install

15,為PHP安裝memcache模塊

cd pecl-memcache-php7
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config && make && make install

16.修改 php 配置文件,使其識別並調用 openssl 和 memcache 兩個模塊

vim /usr/local/php/etc/php.ini
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20151012/"
取消分號註釋,並添加以上路徑(此路徑來自於模塊安裝命令的結果)
extension="openssl.so"
extension="memcache.so"
添加以上兩個庫文件的調用

重啟 apache,刷新 phpinfo 頁面,並查看是否有兩個新增的模塊

17.安裝memcached服務

yum install libevent-devel
cd ../memcached-1.4.17
./configure --prefix=/usr/local/memcached && make &&make install
useradd -r -s /sbin/nologin memcache
添加memcache用戶,此用戶不用登錄,不設置密碼
/usr/local/memcached/bin/memcached -umemcache &
啟動memcache服務,並設置為後臺運行
netstat -an | grep 11211
檢查 memcache 是否正常啟動,並監聽了 11211 埠

18.安裝phpMyAdmin

cp -a ../phpMyAdmin-4.1.4-all-languages /usr/local/apache2/htdocs/phpmyadmin
cd /usr/local/apache2/htdocs/phpmyadmin/
cp -a config.sample.inc.php config.inc.php
vim config.inc.php
$cfg['Servers'][$i]['auth_type'] = 'http';
設置 auth type 為 http,即設置為HTTP身份認證模式(新增即可)

通過瀏覽器輸入地址訪問:http://Apache 伺服器地址/phpmyadmin/index.php

用戶名為root,密碼為MySQL設置時指定的root密碼123456

19.項目遷移:

1、把php項目拷貝到網站預設目錄下:/usr/local/apache2/htdocs/**
2、使用phpMyAdmin創建網站所需資料庫
註意事項:註意目錄許可權和歸屬,防止許可權過大或者許可權過小


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 預覽 技術實現 看過我上篇在 WPF 中實現 OpenGL 與 D3D 渲染的同學應該知道,我是依靠 WGL 中 WGL_NV_DX_interop 擴展與 D3D Surface 關聯併在使用該 Surface 實現渲染。 所以我們這次實現也是如此,但與 WPF 不同的是 WinUI 支持 D3D ...
  • 需求 swagger頁面按標簽Tags分組顯示。 沒有打標簽Tags的介面,預設歸到"未分組"。 分組內按介面路徑排序 說明 為什麼沒有使用GroupName對介面進行分組? 暫時不需要,以及不想點擊swagger頁面右上角那個下拉框。 當然Tags和GroupName不衝突,不影響通過GroupN ...
  • 背景: 我們項目一開始的所有提示都是中文,後來要做國際化。發現項目中的帶雙引號的中文居然有 2.3 w 多條!!!簡直讓人欲哭無淚... 如果使用人工改的話,首先不說正確率了。光是效率都是難難難。所以發揮了自己的才能寫了一個自動化工具。 思路: 首選讀取項目文件夾下的所有文件路徑 篩選路徑文件尾碼. ...
  • 接下來我們對依賴屬性進行一個簡單的剖析,從以下幾個方面入手吧。 1 - 為什麼是public static 首先說下為什麼是public 答:WPF有一種特殊屬性,叫附加屬性,需要直接訪問xxxxProperty的方法才能實現,所以xxxxProperty是public 的。 其次為什麼是靜態sta ...
  • 1. 選項 前面講完了.NET Core 下的配置系統,我們可以通過 IConfiguration 服務從各種來源的配置中讀取到配置信息,但是每次要用的時候都通過 Iconfiguration 讀取配置文件會比較不方便,而且效率低。.NET Core 體系下提供了一個選項系統,該功能用於實現以強類型 ...
  • 1、安裝 NLog.Web.AspNetCore 包 2、新增Configs文件夾,在Configs文件夾下新增nlog.config文件 nlog.config文件內容如下 <?xml version="1.0" encoding="utf-8" ?> <nlog xmlns="http://ww ...
  • 對於有輕微強迫症的技術人員來說,桌面有個IE圖標且刪不掉是非常不能忍受的,造成這種情況有可能是新裝的操作系統自帶,也有可能是裝了某個軟體(比如SQLyog)後…… 現將刪除IE圖標的方法整理如下: 1.打開運行對話框,兩種方式,點擊開始→運行;Win+R;輸入“gpedit.msc”,打開本地安全策 ...
  • 設置靜態網路 1、設置靜態網路,一是用來不讓地址飄忽不定,二來是為了訪問外網。 命令如下: [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 修改內容: TYPE="Ethernet" BOOTPROTO="stat ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...