日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux之LAMP架构

發(fā)布時(shí)間:2024/8/1 linux 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux之LAMP架构 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • 前言
    • 一、什么是LAMP架構(gòu)
    • 二、各組件的作用
      • 1.Apache(前臺(tái))
      • 2.MYSQL(后臺(tái))
      • 3.PHP/Perl/Python
      • 4.linux
    • 三、LAMP架構(gòu)安裝
      • 1.Apache編譯安裝
      • 2.MYSQL編譯安裝
      • 3.PHP編譯安裝
    • 四、搭建一個(gè)小型論壇

前言

本次LAMP架構(gòu)搭建實(shí)驗(yàn)所需安裝包:
鏈接:https://pan.baidu.com/s/1SlveRWBTil1nM5jy2euJlQ
提取碼:3mpt

一、什么是LAMP架構(gòu)

LAMP架構(gòu)是目前成熟的企業(yè)網(wǎng)站應(yīng)用模式之一,指的是協(xié)同工作的一整套系統(tǒng)和相關(guān)軟件,能夠提供動(dòng)態(tài)Web站點(diǎn)服務(wù)及其應(yīng)用開發(fā)環(huán)境。

LAMP是一個(gè)縮寫詞,具體包括Linux操作系統(tǒng)、Apache網(wǎng)站服務(wù)器、MYSQL數(shù)據(jù)庫服務(wù)器、PHP(Perl、python)網(wǎng)頁編程語言。

在構(gòu)建LAMP架構(gòu)時(shí),各組件的安裝順序以此為Linux、Apache、MYSQL、PHP。其中Apache和MYSQL的安裝順序并沒有嚴(yán)格的順序,PHP環(huán)境的安裝一般是放到最后安裝,負(fù)責(zé)溝通Web服務(wù)器和數(shù)據(jù)庫系統(tǒng)進(jìn)行協(xié)同工作。

二、各組件的作用

1.Apache(前臺(tái))

作為LAMP架構(gòu)的前端,是一款功能強(qiáng)大、穩(wěn)定性好的Web服務(wù)器程序,該服務(wù)器直接面向用戶提供網(wǎng)站訪問,發(fā)送網(wǎng)頁、圖片等文件內(nèi)容。

2.MYSQL(后臺(tái))

作為LAMP架構(gòu)的后端,是一款流行的開源的數(shù)據(jù)庫系統(tǒng),在企業(yè)網(wǎng)站、業(yè)務(wù)系統(tǒng)等應(yīng)用中,各種賬戶信息、產(chǎn)品信息、客戶資料、業(yè)務(wù)數(shù)據(jù)等都可以存儲(chǔ)到MYSQL數(shù)據(jù)庫中,其他程序可以通過SQL語句來查詢、更改這些信息。

3.PHP/Perl/Python

作為三種開發(fā)動(dòng)態(tài)網(wǎng)頁的編程語言,負(fù)責(zé)解釋動(dòng)態(tài)網(wǎng)頁文件,負(fù)責(zé)溝通Web服務(wù)器和數(shù)據(jù)庫系統(tǒng)進(jìn)行協(xié)同工作,并提供Web應(yīng)用程序的開發(fā)和運(yùn)行環(huán)境。其中,PHP是一種被廣泛應(yīng)用的開放源代碼的多用途腳本語言,它可以嵌入到HTML中,尤其適合于Web應(yīng)用開發(fā)。

4.linux

提供了LAMP架構(gòu)的平臺(tái)

三、LAMP架構(gòu)安裝

1.Apache編譯安裝

  • 執(zhí)行 yum install -y gcc gcc-c++ make pcre pcre-devel expat-devel perl 依賴
    • gcc:C語言的編譯器
    • gcc-c++:C++的編譯器
    • make:源代碼編譯器(源代碼轉(zhuǎn)換二進(jìn)制文件)
    • pcre:pcre是一個(gè)perl函數(shù)庫,包括perl兼容的正則表達(dá)式庫
    • pcre-devel:perl的接口開發(fā)包
    • expat-devel:用于支持網(wǎng)站解析HTML、XML文件
    • perl:perl語言編譯器
  • 上傳apache.rar中的apr-1.6.2.tar.gz、apr-util-1.6.0.tar.gz、httpd-2.4.29.tar.bz2三個(gè)壓縮包至/opt目錄下,使用 tar 進(jìn)行解壓。
  • 將apr-1.6.2目錄和apr-util-1.6.0移動(dòng)到/opt/httpd-2.4.29/srclib目錄下
  • 進(jìn)入/opt/httpd-2.4.29目錄,執(zhí)行以下命令
  • ./config命令可以自定義安裝的位置以及所需要的組件,這一點(diǎn)是yum不能提供的./configure \ --prefix=/usr/local/httpd \ #指定將 httpd 服務(wù)程序的安裝路徑 --enable-so \ #啟用動(dòng)態(tài)加載模塊支持,使 httpd 具備進(jìn)一步擴(kuò)展功能的能力 --enable-rewrite \ #啟用網(wǎng)頁地址重寫功能,用于網(wǎng)站優(yōu)化、防盜鏈及目錄遷移維護(hù) --enable-charset-lite \ #啟動(dòng)字符集支持,以便支持使用各種字符集編碼的頁面 --enable-cgi #啟用CGI(通用網(wǎng)關(guān)接口)腳本程序支持,便于網(wǎng)站的外部擴(kuò)展應(yīng)用訪問能力上述命令執(zhí)行完畢后,執(zhí)行以下命令進(jìn)行編譯安裝make -j 2 && make install #-j 2 的意思是使用雙核同時(shí)編譯,效率會(huì)更快一些

  • 我們可以做軟鏈接將httpd服務(wù)的可執(zhí)行程序文件放入環(huán)境變量的目錄中,便于系統(tǒng)識(shí)別,優(yōu)化配置文件路徑。

  • 添加httpd系統(tǒng)服務(wù)

  • #編輯/lib/systemd/system目錄下的httpd.service文件,將原先的內(nèi)容刪除,寫入下述代碼 vim /lib/systemd/system/httpd.service內(nèi)容如下:[Unit] #服務(wù)的說明 Description=The Apache HTTP Server #描述服務(wù) After=network.target #依賴,當(dāng)依賴的服務(wù)啟動(dòng)之后再啟動(dòng)自定義的服務(wù) [Service] #服務(wù)運(yùn)行參數(shù)的設(shè)置 Type=forking #后臺(tái)運(yùn)行方式 PIDFile=/usr/local/httpd/logs/httpd.pid #PID文件位置 ExecStart=/usr/local/bin/apachectl $OPTIONS #服務(wù)的運(yùn)行命令 ExecReload=/bin/kill -HUP $MAINPID #根據(jù)PID重載配置 [Install] #服務(wù)安裝的相關(guān)設(shè)置 WantedBy=multi-user.target #設(shè)置為多用戶 :wq保存退出systemctl daemon-reload #重載文件systemctl start httpd.service # 開啟http服務(wù) systemctl enable httpd.service #設(shè)置開機(jī)自啟動(dòng)

  • 修改httpd 服務(wù)配置文件
    vim /etc/httpd.conf

    • 修改第52行Listen參數(shù),默認(rèn)為80,意味著監(jiān)聽所有主機(jī)的80端口,我們這里改成http服務(wù)器的IP:80。
    • 修改第197行,將ServerName參數(shù)注釋刪除,并添加域名

    • 使用httpd -t 命令進(jìn)行配置文件的檢查
  • 首先重啟httpd服務(wù),再使用netstat -anpt | grep 80 命令過濾 80 端口,查看服務(wù)是否開啟

  • 將IP與域名的映射關(guān)系寫入/etc/hosts文件,進(jìn)行訪問


  • 2.MYSQL編譯安裝

  • 將mysql-5.7.17.tar.gz和boost_1_59_0.tar.gz上傳到/opt目錄

  • yum安裝依賴包

  • yum -y install \ gcc \ gcc-c++ \ ncurses \ #字符終端下圖形互動(dòng)功能的動(dòng)態(tài)庫 ncurses-devel \ #ncurses開發(fā)包 bison \ #語法分析器 cmake #mysql需要用cmake編譯安裝

  • 將兩個(gè)包使用 tar xvf 進(jìn)行解壓
  • 將解壓出來的boost_1_59_0 目錄移動(dòng)到/usr/local/boost目錄
    命令:mv boost_1_59_0 /usr/local/boost
  • 進(jìn)入/opt/mysql-5.7.17目錄下進(jìn)行cmake自定義安裝
  • cd /opt/mysql-5.7.17/ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #指定mysql的安裝路徑 -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ #指定mysql進(jìn)程監(jiān)聽套接字文件(數(shù)據(jù)庫連接文件)的存儲(chǔ)路徑 -DSYSCONFDIR=/etc \ #指定配置文件的存儲(chǔ)路徑 -DSYSTEMD_PID_DIR=/usr/local/mysql \ #指定進(jìn)程文件的存儲(chǔ)路徑 -DDEFAULT_CHARSET=utf8 \ #指定默認(rèn)使用的字符集編碼,如 utf8 -DDEFAULT_COLLATION=utf8_general_ci \ #指定默認(rèn)使用的字符集校對(duì)規(guī)則 -DWITH_EXTRA_CHARSETS=all \ #指定支持其他字符集編碼 -DWITH_INNOBASE_STORAGE_ENGINE=1 \ #安裝INNOBASE存儲(chǔ)引擎 -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ #安裝ARCHIVE存儲(chǔ)引擎 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ #安裝BLACKHOLE存儲(chǔ)引擎 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ #安裝FEDERATED存儲(chǔ)引擎 -DMYSQL_DATADIR=/usr/local/mysql/data \ #指定數(shù)據(jù)庫文件的存儲(chǔ)路徑 -DWITH_BOOST=/usr/local/boost \ #指定boost的路徑,若使用mysql-boost集成包安裝則-DWITH_BOOST=boost -DWITH_SYSTEMD=1 #生成便于systemctl管理的文件

    存儲(chǔ)引擎選項(xiàng):
    1.MYISAM,MERGE,MEMORY,和CSV引擎是默認(rèn)編譯到服務(wù)器中,并不需要明確地安裝。
    2.靜態(tài)編譯一個(gè)存儲(chǔ)引擎到服務(wù)器,使用-DWITH_engine_STORAGE_ENGINE= 1
    3.可用的存儲(chǔ)引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema)

    !!!注:如果在CMAKE的過程中有報(bào)錯(cuò),當(dāng)報(bào)錯(cuò)解決后,需要把源碼目錄中的CMakeCache.txt文件刪除,然后再重新CMAKE,否則錯(cuò)誤依舊!!!

  • make -j 2 && make install

  • 創(chuàng)建mysql用戶
    useradd -M -s /sbin/nologin mysql

  • 修改mysql 配置文件

  • vim /etc/my.cnf #刪除原配置項(xiàng),再重新添加下面內(nèi)容 [client] #客戶端設(shè)置 port = 3306 socket = /usr/local/mysql/mysql.sock [mysql] #服務(wù)端設(shè)置 port = 3306 socket = /usr/local/mysql/mysql.sock auto-rehash #開啟自動(dòng)補(bǔ)全功能[mysqld] #服務(wù)全局設(shè)置 user = mysql #設(shè)置管理用戶 basedir=/usr/local/mysql #指定數(shù)據(jù)庫的安裝目錄 datadir=/usr/local/mysql/data #指定數(shù)據(jù)庫文件的存儲(chǔ)路徑 port = 3306 #指定端口 character-set-server=utf8 #設(shè)置服務(wù)器字符集編碼格式為utf8 pid-file = /usr/local/mysql/mysqld.pid #指定pid 進(jìn)程文件路徑 socket=/usr/local/mysql/mysql.sock #指定數(shù)據(jù)庫連接文件 bind-address = 0.0.0.0 #設(shè)置監(jiān)聽地址,0.0.0.0代表允許所有,如允許多個(gè)IP需空格隔開 skip-name-resolve #禁用DNS解析 max_connections=2048 #設(shè)置mysql的最大連接數(shù) default-storage-engine=INNODB #指定默認(rèn)存儲(chǔ)引擎 max_allowed_packet=16M #設(shè)置數(shù)據(jù)庫接收的數(shù)據(jù)包大小的最大值 server-id = 1 #指定服務(wù)ID號(hào)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_QUOTESsql_mode常用值如下: NO_ENGINE_SUBSTITUTION #如果需要的存儲(chǔ)引擎被禁用或未編譯,那么拋出錯(cuò)誤。不設(shè)置此值時(shí),用默認(rèn)的存儲(chǔ)引擎替代,并拋出一個(gè)異常STRICT_TRANS_TABLES #在該模式下,如果一個(gè)值不能插入到一個(gè)事務(wù)表中,則中斷當(dāng)前的操作,對(duì)非事務(wù)表不做限制NO_AUTO_CREATE_USER #禁止GRANT創(chuàng)建密碼為空的用戶NO_AUTO_VALUE_ON_ZERO #mysql中的自增長列可以從0開始。默認(rèn)情況下自增長列是從1開始的,如果你插入值為0的數(shù)據(jù)會(huì)報(bào)錯(cuò)NO_ZERO_IN_DATE #不允許日期和月份為零NO_ZERO_DATE #mysql數(shù)據(jù)庫不允許插入零日期,插入零日期會(huì)拋出錯(cuò)誤而不是警告ERROR_FOR_DIVISION_BY_ZERO #在INSERT或UPDATE過程中,如果數(shù)據(jù)被零除,則產(chǎn)生錯(cuò)誤而非警告。默認(rèn)情況下數(shù)據(jù)被零除時(shí)MySQL返回NULLPIPES_AS_CONCAT #將"||"視為字符串的連接操作符而非或運(yùn)算符,這和Oracle數(shù)據(jù)庫是一樣的,也和字符串的拼接函數(shù)Concat相類似ANSI_QUOTES #啟用ANSI_QUOTES后,不能用雙引號(hào)來引用字符串,因?yàn)樗唤忉尀樽R(shí)別符
  • 更改mysql安裝目錄和配置文件的屬主屬組
    chown -R mysql:mysql /usr/local/mysql/
    chown mysql:mysql /etc/my.cnf

  • .設(shè)置路徑環(huán)境變量

  • 初始化數(shù)據(jù)庫

  • cd /usr/local/mysql/bin/./mysqld \ --initialize-insecure \ #生成初始化密碼為空 --user=mysql \ #指定管理用戶 --basedir=/usr/local/mysql \ #指定數(shù)據(jù)庫的安裝目錄 --datadir=/usr/local/mysql/data #指定數(shù)據(jù)庫文件的存儲(chǔ)路徑

  • 添加mysqld系統(tǒng)服務(wù)
  • cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ #用于systemctl服務(wù)管理 systemctl daemon-reload #刷新識(shí)別 systemctl start mysqld.service #開啟服務(wù) systemctl enable mysqld #開機(jī)自啟動(dòng) netstat -anpt | grep 3306 #查看端口
  • 修改mysql 的登錄密碼
    mysqladmin -u root -p password “XXX”

  • 授權(quán)遠(yuǎn)程登錄


  • 查看數(shù)據(jù)庫

  • 3.PHP編譯安裝

  • 上傳php-7.1.10.tar.bz2到/opt目錄下

  • yum安裝依賴包

  • yum -y install \ gd \ libjpeg libjpeg-devel \ libpng libpng-devel \ freetype freetype-devel \ libxml2 libxml2-devel \ zlib zlib-devel \ curl curl-devel \ openssl openssl-devel

  • 配置軟件模塊
  • cd /opt tar jxvf php-7.1.10.tar.bz2cd /opt/php-7.1.10/ ./configure \ --prefix=/usr/local/php7 \ #指定將 PHP 程序的安裝路徑 --with-apxs2=/usr/local/httpd/bin/apxs \ #指定Apache httpd服務(wù)提供的apxs 模塊支持程序的文件位置 --with-mysql-sock=/usr/local/mysql/mysql.sock \ #指定mysql 數(shù)據(jù)庫連接文件的存儲(chǔ)路徑 --with-config-file-path=/usr/local/php7 #設(shè)置 PHP 的配置文件 php.ini 將要存放的位置 --with-mysqli \ #添加 MySQL 擴(kuò)展支持 #mysqli擴(kuò)展技術(shù)不僅可以調(diào)用MySQL的存儲(chǔ)過程、處理MySQL事務(wù),而且還可以使訪問數(shù)據(jù)庫工作變得更加穩(wěn)定 --with-zlib \ #支持zlib功能,提供數(shù)據(jù)壓縮 --with-curl \ #開啟curl擴(kuò)展功能,實(shí)現(xiàn)HTTP的Get下載和Post請(qǐng)求的方法 --with-gd \ #激活gd 庫的支持 --with-jpeg-dir \ #激活jpeg 的支持 --with-png-dir \ #激活png 的支持 --with-freetype-dir \ --with-openssl \ --enable-mbstring \ #啟用多字節(jié)字符串功能,以便支持中文等代碼 --enable-xml \ #開啟擴(kuò)展性標(biāo)記語言模塊 --enable-session \ #會(huì)話 --enable-ftp \ #文本傳輸協(xié)議 --enable-pdo \ #函數(shù)庫 --enable-tokenizer \ #令牌解釋器 --enable-zip #ZIP壓縮格式等待./configure完成make -j 2 && make install
  • 復(fù)制模版文件作為PHP 的主配置文件,并進(jìn)行修改
    cp /opt/php-7.1.10/php.ini-development /usr/local/php7/php.ini
    注:php目錄中會(huì)有兩個(gè)文件,一個(gè)是developmen結(jié)尾的文件,適用于測(cè)試環(huán)境;另一個(gè)是production結(jié)尾的文件,適用于生產(chǎn)環(huán)境,這里我們使用development文件就行。
  • vim /usr/local/php7/php.ini #在第1170行修改參數(shù) mysqli.default_socket = /usr/local/mysql/mysql.sock在第939行取消注釋,修改參數(shù) date.timezone = Asia/Shanghai



    5. 把PHP 的可執(zhí)行程序文件放入路徑環(huán)境變量的目錄中便于系統(tǒng)識(shí)別(優(yōu)化方案)
    ln -s /usr/local/php7/bin/* /usr/local/bin/,再使用 php -m 命令查看PHP 加載了哪些模塊

    6. 修改httpd 服務(wù)的配置文件,讓apache支持PHP

    vim /etc/httpd.conf #在393行插入 AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps#在第255行修改首頁文件名設(shè)置 DirectoryIndex index.html index.php




    7.測(cè)試

    四、搭建一個(gè)小型論壇

  • 首先登錄數(shù)據(jù)庫,并創(chuàng)建一個(gè)名為bbs的庫

  • 授權(quán),刷新

  • 傳Discuz_X3.4_SC_UTF8.zip壓縮包到/opt目錄,并進(jìn)行解壓,因?yàn)槭?zip,所以使用unzip進(jìn)行解壓
    unzip /opt/Discuz_X3.4_SC_UTF8.zip -d /opt/dis
    執(zhí)行 cp -r /opt/dis/dir_SC_UTF8/upload/ /usr/local/httpd/htdocs/bbs 命令將站點(diǎn)上傳

  • 更改論壇目錄的屬主

  • cd /usr/local/httpd/htdocs/bbs chown -R daemon ./config chown -R daemon ./data chown -R daemon ./uc_client chown -R daemon ./uc_server/data

    5.訪問驗(yàn)證






    這樣,一個(gè)簡易的論壇就搭好了

    總結(jié)

    以上是生活随笔為你收集整理的Linux之LAMP架构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。