国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

LAMP(Linux+Apache+MySQL+PHP)環(huán)境介紹、配置、搭建

這篇具有很好參考價值的文章主要介紹了LAMP(Linux+Apache+MySQL+PHP)環(huán)境介紹、配置、搭建。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

LAMP(Linux+Apache+MySQL+PHP)環(huán)境介紹、配置、搭建

LAMP介紹

LAMP是由Linux, Apache, MySQL, PHP組成的,即把Apache、MySQL以及PHP安裝在Linux系統(tǒng)上,組成一個環(huán)境來運行PHP的腳本語言。Apache是最常用的Web服務(wù)軟件,而MySQL是比較小型的數(shù)據(jù)庫軟件。三個角色可以安裝在一臺機器上,也可以分開(但httpd和php要在一起的)
LAMP(Linux+Apache+MySQL+PHP)環(huán)境介紹、配置、搭建,云計算運維,Shell語言學堂,應(yīng)用部署,linux,運維,bash,云計算,服務(wù)器

為什么需要LAMP?

手動逐個編譯安裝各個組件,需要輸入各種命令,且有可能會中途出錯。
對于想要成功搭建 LAMP 建站環(huán)境來說,可以節(jié)約大量時間和精力。

LAMP 有什么優(yōu)點?

LAMP 是最經(jīng)典的建站環(huán)境之一,風靡世界十幾年。
而本腳本只需幾個簡單交互,選擇需要安裝的包,即可一路安裝,無人值守。

準備工作

yum install -y bzip2 tar net-tools wget expect

安裝MySQL:

MySQL介紹

MySQL是一個關(guān)系型數(shù)據(jù)庫,由mysql ab公司開發(fā),mysql在2008年被sun公司收購(10億刀),2009年sun公司被oracle公司收購(74億刀)

MySQL官網(wǎng)https://www.mysql.com 最新版本5.7GA/8.0DMR

MySQL5.6變化比較大,5.7性能上有很大提升

MySQL安裝過程

# 安裝必要的軟件包
yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake
# 添加mysql用戶,設(shè)置不登錄
useradd -s /sbin/nologin mysql
# 解壓MySQL源碼
tar xf /opt/mysql-5.7.17.tar.gz -C /opt
# 解壓Boost源碼
tar xf /opt/boost_1_59_0.tar.gz -C /usr/local/
# 重命名Boost源碼目錄
mv -f /usr/local/boost_1_59_0 /usr/local/boost
# 進入MySQL源碼目錄
cd /opt/mysql-5.7.17 
# 配置MySQL編譯選項
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/boost \
-DWITH_SYSTEMD=1
# 使用多核編譯并安裝
make -j 4 && make install
# 將自定義的my.cnf配置文件移動到/etc并修改權(quán)限
cp -f /opt/my.cnf /etc/my.cnf
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf
# 在環(huán)境變量中添加MySQL/bin路徑
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile
# 初始化MySQL數(shù)據(jù)庫
cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
# 復制MySQL的systemd服務(wù)文件
cp -f /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
# 重新加載systemd配置
systemctl daemon-reload
# 啟動MySQL服務(wù)并設(shè)置開機自啟動
systemctl start mysqld.service
systemctl enable mysqld
# 檢查MySQL服務(wù)是否正常運行在3306端口
netstat -anpt | grep 3306

LAMP(Linux+Apache+MySQL+PHP)環(huán)境介紹、配置、搭建,云計算運維,Shell語言學堂,應(yīng)用部署,linux,運維,bash,云計算,服務(wù)器

my.cnf

[client]
port = 3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock
[mysql]
port = 3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock
auto-rehash
[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

mysql設(shè)置用戶密碼腳本

#!/usr/bin/expect
set timeout 30
spawn mysqladmin -u root -p password \"123456\"
expect {
	"*password*" {send "\r"}
}
expect eof

LAMP(Linux+Apache+MySQL+PHP)環(huán)境介紹、配置、搭建,云計算運維,Shell語言學堂,應(yīng)用部署,linux,運維,bash,云計算,服務(wù)器

安裝Httpd(Apache)

腳本源代碼:

#!/bin/bash

# 安裝軟件包
function install_packages {
    yum install -y $1
}

# 提取tarball文件并將其解壓到/opt目錄下
function extract_tarball {
    tar xf $1 -C /opt
}

# 配置并編譯安裝軟件
function configure_and_make {
    cd $1
    ./configure $2
    make -j $(nproc) && make install
}

# 配置Apache,將IP和端口替換為更安全的值
function configure_httpd {
    LOCAL_IP=$(ip addr show ens33 | grep "inet " | awk '{print $2}' | cut -d/ -f1) 
 
    sed -i "s/#ServerName www.example.com:80/ServerName $LOCAL_IP:80/" /usr/local/httpd/conf/httpd.conf
}

# 啟動服務(wù)并設(shè)置開機自啟動
function start_service {
    systemctl daemon-reload
    systemctl start $1.service
    systemctl enable $1
}

# 創(chuàng)建符號鏈接
function create_symbolic_links {
    local source_path="$1"
    local target_path="$2"

    # 檢查是否以root身份運行
    if [ "$(id -u)" -ne 0 ]; then
        echo "必須以root身份運行此腳本。" >&2
        return 1
    fi

    # 遍歷源路徑下的文件,創(chuàng)建符號鏈接
    for file in "$source_path"/*
    do
        base=$(basename "$file")
        link_target="$target_path/$base"

        # 檢查目標是否已存在
        if [ -L "$link_target" ]; then
            echo "警告:$link_target 已存在,將被覆蓋。" >&2
        else
            if [ -e "$file" ]; then
                echo "創(chuàng)建符號鏈接: $file => $link_target"
                ln -s -T "$file" "$link_target" || { echo "創(chuàng)建鏈接失敗,請檢查權(quán)限和路徑。" >&2; return 1; }
            else
                echo "錯誤:$file 不存在。" >&2
                return 1
            fi
        fi
    done
}

# 主腳本邏輯開始
extract_tarball "/opt/apr-1.6.2.tar.gz"
extract_tarball "/opt/apr-util-1.6.0.tar.gz"
extract_tarball "/opt/httpd-2.4.29.tar.bz2"
mv /opt/apr-1.6.2 /opt/httpd-2.4.29/srclib/apr
mv /opt/apr-util-1.6.0 /opt/httpd-2.4.29/srclib/apr-util
# 安裝編譯依賴包
install_packages \
    "gcc gcc-c++ make pcre-devel expat-devel perl"
# 配置并編譯安裝Apache
configure_and_make "/opt/httpd-2.4.29" \
    "--prefix=/usr/local/httpd \
    --enable-so \
    --enable-rewrite \
    --enable-charset-lite \
    --enable-cgi"

configure_httpd
# 創(chuàng)建必要的符號鏈接
create_symbolic_links "/usr/local/httpd/conf" "/etc"
create_symbolic_links "/usr/local/httpd/bin" "/usr/local/bin"
# 創(chuàng)建Apache的systemd服務(wù)文件
echo '[Unit]
Description=The Apache HTTP
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/httpd/logs/httpd.pid
ExecStart=/usr/local/bin/apachectl $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
' > /usr/lib/systemd/system/httpd.service
# 啟動Apache服務(wù)并設(shè)置開機自啟動
start_service httpd

LAMP(Linux+Apache+MySQL+PHP)環(huán)境介紹、配置、搭建,云計算運維,Shell語言學堂,應(yīng)用部署,linux,運維,bash,云計算,服務(wù)器

安裝PHP

#!/bin/bash

# 使用函數(shù)封裝功能,增加可讀性和可維護性
function install_packages {
    yum install -y $1
}

function extract_tarball {
    tar xf $1 -C /opt
}

function configure_and_make {
    cd $1
    ./configure $2
    make -j $(nproc) && make install
}

function configure_httpd {
    # 配置 Apache,替換 IP 和端口為更安全的值
LOCAL_IP=$(ip addr show ens33 | grep "inet " | awk '{print $2}' | cut -d/ -f1) 
    sed -i "s/Listen 80/Listen $LOCAL_IP:80/g" /usr/local/httpd/conf/httpd.conf
    sed -i "s/#ServerName www.example.com:80/ServerName $LOCAL_IP:80/" /usr/local/httpd/conf/httpd.conf
}

function start_service {
    systemctl daemon-reload
    systemctl start $1.service
    systemctl enable $1
}
function create_symbolic_links {
    local source_path="$1"
    local target_path="$2"

    # 檢查是否以root身份運行
    if [ "$(id -u)" -ne 0 ]; then
        echo "必須以root身份運行此腳本。" >&2
        return 1
    fi

    # 遍歷源路徑下的文件
    for file in "$source_path"/*
    do
        base=$(basename "$file")
        link_target="$target_path/$base"

        # 檢查目標是否已存在
        if [ -L "$link_target" ]; then
            echo "警告:$link_target 已存在,將被覆蓋。" >&2
        else
            if [ -e "$file" ]; then
                echo "創(chuàng)建符號鏈接: $file => $link_target"
                ln -s -T "$file" "$link_target" || { echo "創(chuàng)建鏈接失敗,請檢查權(quán)限和路徑。" >&2; return 1; }
            else
                echo "錯誤:$file 不存在。" >&2
                return 1
            fi
        fi
    done

}
# 安全的 MySQL 初始化和配置
function initialize_mysql {
    cd /usr/local/mysql/bin
  ./mysqld \
    --initialize-insecure \
    --user=mysql \
    --basedir=/usr/local/mysql \
    --datadir=/usr/local/mysql/data
}

# 更新 PATH 以包含 PHP
function configure_php {

# 定義變量
PHP_INI_SRC=/opt/php-7.1.24/php.ini-development
PHP_INI_DEST=/usr/local/php7/php.ini
HTTPD_CONF=/etc/httpd.conf
HTTPD_HTDICT=/usr/local/httpd/htdocs
MYSQL_INIT_SH=/opt/mysql_init2.exp
UNZIP_FILE=/opt/Discuz_X3.4_SC_UTF8.zip
DIS_DIR=/opt/dis/dir_SC_UTF8/upload
BBS_DIR=/usr/local/httpd/htdocs/bbs

# 復制php.ini文件并編輯
cp -f "$PHP_INI_SRC" "$PHP_INI_DEST"
sed -i 's/;date.timezone =/date.timezone = Asia\/Shanghai/g' /usr/local/php7/php.ini
sed -i "s/mysqli.default_socket =/mysqli.default_socket = \/usr\/local\/mysql\/mysql.sock/g" /usr/local/php7/php.ini

# 鏈接php命令
create_symbolic_links "/usr/local/php7/bin/*" "/usr/local/bin/"

# 編輯httpd.conf文件
sed -i 's/DirectoryIndex index.html/DirectoryIndex index.php/g' "$HTTPD_CONF"
sed -i  '396a\    AddType application/x-httpd-php .php\n    AddType application/x-httpd-php-source .phps\n' "$HTTPD_CONF"

# 刪除并創(chuàng)建新的index.php
rm -f "$HTTPD_HTDICT/index.html"
touch "$HTTPD_HTDICT/index.php"
echo '<?php phpinfo();?>' > "$HTTPD_HTDICT/index.php"
chmod 644 "$HTTPD_HTDICT/index.php"
systemctl restart httpd.service
# 安裝unzip,解壓文件并復制到目標目錄
sudo yum install unzip -y
unzip -f "$UNZIP_FILE" -d "$DIS_DIR"
cp -r /opt/dis/dir_SC_UTF8/upload/ /usr/local/httpd/htdocs/bbs
# 安全地設(shè)置腳本和目錄權(quán)限
chmod 755 "$MYSQL_INIT_SH"
chmod -R 755 "$DIS_DIR"
chown -R daemon "$BBS_DIR/config"
chown -R daemon "$BBS_DIR/data"
chown -R daemon "$BBS_DIR/uc_client"
chown -R daemon "$BBS_DIR/uc_server/data"

}

install_packages \
    "gd libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel"
extract_tarball "/opt/php-7.1.24.tar.gz"
configure_and_make "/opt/php-7.1.24" \
    "--prefix=/usr/local/php7 \
    --with-apxs2=/usr/local/httpd/bin/apxs \
    --with-mysql-sock=/usr/local/mysql/mysql.sock \
    --with-config-file-path=/usr/local/php7 \
    --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"
configure_php
systemctl restart httpd

LAMP(Linux+Apache+MySQL+PHP)環(huán)境介紹、配置、搭建,云計算運維,Shell語言學堂,應(yīng)用部署,linux,運維,bash,云計算,服務(wù)器

安裝論壇

創(chuàng)建數(shù)據(jù)庫腳本

#!/usr/bin/expect
set timeout 30
set password "123456"
spawn mysql -uroot -p
expect {
	"*password*" {send "$password\r"}
}
expect ">*"
send "CREATE DATABASE bbs;\r"
expect ">*"
send "GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';\r"
expect ">*"
send "flush privileges;\r"
expect ">*"
send "quit\r"
expect eof


LAMP(Linux+Apache+MySQL+PHP)環(huán)境介紹、配置、搭建,云計算運維,Shell語言學堂,應(yīng)用部署,linux,運維,bash,云計算,服務(wù)器文章來源地址http://www.zghlxwxcb.cn/news/detail-860996.html

到了這里,關(guān)于LAMP(Linux+Apache+MySQL+PHP)環(huán)境介紹、配置、搭建的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Apache的簡單介紹(LAMP架構(gòu)+搭建Discuz論壇)

    Apache的簡單介紹(LAMP架構(gòu)+搭建Discuz論壇)

    Apache通常指的是Apache HTTP Server,是一個開源的、跨平臺的Web服務(wù)器軟件。它是目前世界上使用最廣泛的Web服務(wù)器之一,也是許多網(wǎng)站和應(yīng)用程序的核心基礎(chǔ)。 1.2.1功能 提供http協(xié)議服務(wù) 多個虛擬主機:IP、Port、FQDN CGI:Common Gateway Interface,通用網(wǎng)關(guān)接口,支持動態(tài)程序 反向代理

    2024年02月11日
    瀏覽(89)
  • Linux-現(xiàn)實環(huán)境模擬(apache、MySQL、PHP、discuz)

    ?? 作者:小劉在C站 ?? 個人主頁: ?小劉主頁? ?? 努力不一定有回報,但一定會有收獲加油!一起努力,共赴美好人生! ?? 學習兩年總結(jié)出的運維經(jīng)驗,以及思科模擬器全套網(wǎng)絡(luò)實驗教程。專欄: 云計算技術(shù) ??小劉私信可以隨便問,只要會絕不吝嗇,感謝CSD

    2024年02月16日
    瀏覽(18)
  • 【環(huán)境配置】使用Docker搭建LAMP環(huán)境

    【環(huán)境配置】使用Docker搭建LAMP環(huán)境

    這篇文章不是介紹DOCKER是什么,也不是闡述DOCKER的核心:鏡像/容器和倉庫之間的關(guān)系,它只是一篇讓剛剛接觸DOCKER的初學者,在沒有完全了解DOCKER是什么之前,也能盡快的在Linux系統(tǒng)下面通過DOCKER來搭建一個LAMP環(huán)境,這是其一;其二才是我寫這篇文章的初心,我覺得很多事情在

    2024年02月15日
    瀏覽(19)
  • 數(shù)據(jù)庫安全-第一章 Mysql 安全基礎(chǔ)-【web 環(huán)境搭建——LAMP-1】-LAMP & LNMP 簡介

    數(shù)據(jù)庫安全-第一章 Mysql 安全基礎(chǔ)-【web 環(huán)境搭建——LAMP-1】-LAMP & LNMP 簡介

    WEB 的本意是蜘蛛網(wǎng)和網(wǎng),在網(wǎng)頁設(shè)計中稱為網(wǎng)頁?,F(xiàn)廣泛譯作網(wǎng)絡(luò)、互聯(lián)網(wǎng)等技術(shù)領(lǐng)域。日常生活中用戶使用瀏覽器請求一個 URL ,這個 URL 標識著某個特定的服務(wù)器的特定資源,服務(wù)器接收到請求之后,服務(wù)器就把生成的 HTML 網(wǎng)頁通過 HTTP 協(xié)議發(fā)送給瀏覽器。 早期的 WEB 頁

    2024年01月18日
    瀏覽(18)
  • macOS搭建PHP開發(fā)環(huán)境(brew安裝nginx、mysql 和多版本php,并配置多個php同時運行的環(huán)境)

    由于homebrew主庫中沒有PHP7.2 之前的版本,并且7.2,7.3版本也被標記成過時版本;所以需要先掛在第三方的擴展,具體操作如下: php5.6 php7.3 php7.4 php8.2 默認新版8以上直接安裝 sudo vim /usr/local/etc/php/5.6/php-fpm.conf? 下的: 注意:5.6版本的配置文件路徑和其他版本不一樣 listen = 127

    2024年02月04日
    瀏覽(50)
  • 搭建WAMP網(wǎng)站教程(windows+apache+mysql+php)

    搭建WAMP網(wǎng)站教程(windows+apache+mysql+php)

    之前為了學習網(wǎng)絡(luò)安全,從搭建網(wǎng)站學起,對網(wǎng)站運行有個初步的了解。 今天翻到了之前的筆記,順手發(fā)到csdn上了。 安裝Apache,下載Apache之后把Apache解壓,此處解壓到C:目錄下 2.然后要記得安裝運行庫 3.安裝httpd 4.運行httpd 5.此時發(fā)現(xiàn)已經(jīng)可以訪問網(wǎng)站了 此時就安裝好了容

    2024年02月05日
    瀏覽(17)
  • 完整的Apache+PHP8+MYSQL的配置

    完整的Apache+PHP8+MYSQL的配置

    下載Apache,地址:http://www.apachelounge.com/download/,如下圖: 將下載的壓縮包解壓到某個文件夾(比如:D:software), 將解壓后的文件夾重命名為Apache24 下載PHP壓縮包,地址:https://windows.php.net/download, (一定要下載Thread Safe版本) 將下載的壓縮包解壓到某個文件夾(比如:D:software),

    2024年02月04日
    瀏覽(19)
  • apache php mysql python 環(huán)境部署與離線安裝deb包

    apache php mysql python 環(huán)境部署與離線安裝deb包

    使用的系統(tǒng)為ubuntu18.04 server amd64 2.1 安裝系統(tǒng): 下載:https://cn.ubuntu.com/download/alternative-downloads 選擇查看全部Ubuntu 鏡像站 點擊可以選擇使用國內(nèi)的源進行下載,速度非???2.2 apache mysql php安裝 安裝順序為:apache2,mysql,php,在當前的Ubuntu18安裝apache2和mysql時,apt會自動將這兩

    2024年02月12日
    瀏覽(23)
  • 59 openEuler 22.03-LTS 搭建MySQL數(shù)據(jù)庫服務(wù)器-軟件介紹和配置環(huán)境

    59 openEuler 22.03-LTS 搭建MySQL數(shù)據(jù)庫服務(wù)器-軟件介紹和配置環(huán)境

    59.1 軟件介紹 MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB公司開發(fā),目前屬于Oracle旗下產(chǎn)品。MySQL是業(yè)界最流行的RDBMS (Relational Database Management System,關(guān)系數(shù)據(jù)庫管理系統(tǒng))之一,尤其在WEB應(yīng)用方面。 關(guān)系數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫

    2023年04月22日
    瀏覽(24)
  • 【Linux】jdk、tomcat、MySQL環(huán)境搭建的配置安裝,Linux更改后端端口

    【Linux】jdk、tomcat、MySQL環(huán)境搭建的配置安裝,Linux更改后端端口

    工具的組合為開發(fā)者和系統(tǒng)管理員提供了構(gòu)建和運行Java應(yīng)用程序以及存儲和管理數(shù)據(jù)的完整環(huán)境。 JDK(Java Development Kit):JDK是Java開發(fā)工具包,它提供了開發(fā)和運行Java應(yīng)用程序所需的工具和庫。通過安裝JDK,您可以在Linux上編譯、調(diào)試和運行Java程序。 Tomcat:Tomcat是一個開源

    2024年02月06日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包