日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

LAMP构架概述及相关服务的搭建(附带搭建论坛实验)

發(fā)布時(shí)間:2024/2/28 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LAMP构架概述及相关服务的搭建(附带搭建论坛实验) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

LAMP構(gòu)架概述及相關(guān)服務(wù)的搭建

  • 一、LAMP概述
    • 1、相關(guān)組件的主要作用:
    • 2、注意事項(xiàng)
  • 二、手工編譯安裝Apache服務(wù)
    • 1、關(guān)閉防火墻
    • 2、將安裝Apache所需軟件包傳到/opt目錄下
    • 3、安裝環(huán)境依賴(lài)包
    • 4、解壓三個(gè)壓縮包
    • 5、配置軟件模塊
    • 6、編譯及安裝
    • 7、優(yōu)化配置文件路徑,并把httpd服務(wù)的可執(zhí)行程序文件放入路徑環(huán)境變量的目錄中便于系統(tǒng)識(shí)別
    • 8、添加httpd系統(tǒng)服務(wù)
      • ①、方法一:
      • ②、方法二:
    • 9、修改 /etc/httpd.conf 服務(wù)配置文件
    • 10、瀏覽器訪問(wèn)驗(yàn)證
    • 11、使用域名訪問(wèn)
  • 三、手工編譯mysql數(shù)據(jù)庫(kù)
    • 1、將安裝mysql 所需軟件包傳到/opt目錄下
    • 2、安裝環(huán)境依賴(lài)包
    • 3、配置軟件模塊
    • 4、編譯及安裝
    • 5、創(chuàng)建mysql用戶(hù)
    • 6、修改mysql 配置文件
    • 7、更改mysql安裝目錄和配置文件的屬主屬組
    • 8、設(shè)置路徑環(huán)境變量
    • 9、初始化數(shù)據(jù)庫(kù)
    • 10、添加mysqld系統(tǒng)服務(wù)
    • 11、修改mysql 的登錄密碼,并授權(quán)遠(yuǎn)程登錄
  • 四、手工編譯安裝PHP
    • 1、將安裝PHP 所需軟件包傳到/opt目錄下
    • 2、安裝GD庫(kù)和GD庫(kù)關(guān)聯(lián)程序,用來(lái)處理和生成圖片
    • 3、配置軟件模塊
    • 4、編譯及安裝
    • 5、復(fù)制模版文件作為PHP 的主配置文件,并進(jìn)行修改
    • 6、優(yōu)化把PHP 的可執(zhí)行程序文件放入路徑環(huán)境變量的目錄中便于系統(tǒng)識(shí)別
    • 7、修改httpd 服務(wù)的配置文件,讓apache支持PHP```
    • 8、驗(yàn)證PHP 測(cè)試頁(yè)
  • 五、使用LAMP搭建論壇
    • 1、完成LAMP的搭建
    • 2、創(chuàng)建數(shù)據(jù)庫(kù),并進(jìn)行授權(quán)
    • 3、上傳并解壓論壇壓縮包
    • 4、更改論壇目錄的屬主
    • 5、瀏覽器訪問(wèn)驗(yàn)證
    • 6、論壇后臺(tái)管理員頁(yè)面

一、LAMP概述

  • LAMP架構(gòu)是目前成熟的企業(yè)網(wǎng)站應(yīng)用模式之一,指的是協(xié)同工作的一整套系統(tǒng)和相關(guān)軟件,能夠提供靜態(tài)和動(dòng)態(tài)Web站點(diǎn)服務(wù)以及其應(yīng)用開(kāi)發(fā)環(huán)境。
  • LAMP是一個(gè)縮寫(xiě)詞,具體包括Linux操作系統(tǒng)、Apache網(wǎng)站服務(wù)器、MySQL數(shù)據(jù)庫(kù)服務(wù)器、PHP(或Perl、Python)網(wǎng)頁(yè)編程語(yǔ)言。

1、相關(guān)組件的主要作用:

  • (平臺(tái))Linux:作為L(zhǎng)AMP架構(gòu)的基礎(chǔ),提供用于支撐Web站點(diǎn)的操作系統(tǒng),能夠與其他三個(gè)組件提供更好的穩(wěn)定性,兼容性(AMP組件也支持Windows、UNIX等平臺(tái)) 。
  • (前臺(tái))Apache:作為L(zhǎng)AMP架構(gòu)的前端,是一款功能強(qiáng)大,穩(wěn)定性好的Web服務(wù)器程序,該服務(wù)器直接面向用戶(hù)提供網(wǎng)站訪問(wèn),發(fā)送網(wǎng)頁(yè),圖片等文件內(nèi)容。
  • (后臺(tái))MySQL:作為L(zhǎng)AMP架構(gòu)的后端,是一款流行的開(kāi)源關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。在企業(yè)網(wǎng)站、業(yè)務(wù)系統(tǒng)等應(yīng)用中,各種賬戶(hù)信息、產(chǎn)品信息,客戶(hù)資料、業(yè)務(wù)數(shù)據(jù)等都可以存儲(chǔ)到MySQL數(shù)據(jù)庫(kù),其他程序可以通過(guò)SQL語(yǔ)句來(lái)查詢(xún),更改這些信息。
  • (中間連接)PHP/Perl/Python:作為三種開(kāi)發(fā)動(dòng)態(tài)網(wǎng)頁(yè)的編程語(yǔ)言,負(fù)責(zé)解釋動(dòng)態(tài)網(wǎng)頁(yè)文件,負(fù)責(zé)溝通Web服務(wù)器和數(shù)據(jù)庫(kù)系統(tǒng)以協(xié)同工作,并提供Web應(yīng)用程序的開(kāi)發(fā)和運(yùn)行環(huán)境。其中PHP是一種被廣泛應(yīng)用的開(kāi)放源代碼的多用途腳本語(yǔ)言,它可以嵌入到HTML中,尤其適合于Web應(yīng)用開(kāi)發(fā)。

2、注意事項(xiàng)

  • 在構(gòu)建LAMP平臺(tái)時(shí),各組件的安裝順序依次為L(zhǎng)inux、Apache、MySQL、PHP。
  • 其中Apache和MySQL的安裝并沒(méi)有嚴(yán)格的順序,PHP環(huán)境的安裝一般放到最后安裝,負(fù)責(zé)溝通 Web 服務(wù)器和數(shù)據(jù)庫(kù)系統(tǒng)以協(xié)同工作。

二、手工編譯安裝Apache服務(wù)

1、關(guān)閉防火墻

2、將安裝Apache所需軟件包傳到/opt目錄下

3、安裝環(huán)境依賴(lài)包

gcc #C語(yǔ)言的編譯器 gcc-c++ #C++的編譯器 make #源代碼編譯器(源代碼轉(zhuǎn)換成二進(jìn)制文件) pcre #pcre是一個(gè)Perl函數(shù)庫(kù),包括perl 兼容的正則表達(dá)式庫(kù) pcre-devel #perl的接口開(kāi)發(fā)包 expat-devel #用于支持網(wǎng)站解析HTML、XML文件 perl #perl語(yǔ)言編譯器

4、解壓三個(gè)壓縮包

5、配置軟件模塊

mv apr-1.6.2 /opt/httpd-2.4.29/srclib/apr mv apr-util-1.6.0 /opt/httpd-2.4.29/srclib/apr-utilcd /opt/httpd-2.4.29/ ./configure \ --prefix=/usr/local/httpd \ #指定將 httpd 服務(wù)程序的安裝路徑 --enable-so \ #啟用動(dòng)態(tài)加載模塊支持,使 httpd 具備進(jìn)一步擴(kuò)展功能的能力 --enable-rewrite \ #啟用網(wǎng)頁(yè)地址重寫(xiě)功能,用于網(wǎng)站優(yōu)化、防盜鏈及目錄遷移維護(hù) --enable-charset-lite \ #啟動(dòng)字符集支持,以便支持使用各種字符集編碼的頁(yè)面 --enable-cgi #啟用CGI(通用網(wǎng)關(guān)接口)腳本程序支持,便于網(wǎng)站的外部擴(kuò)展應(yīng)用訪問(wèn)能力

6、編譯及安裝

make #make -j 2 表示開(kāi)2核同時(shí)進(jìn)行編譯 make install

7、優(yōu)化配置文件路徑,并把httpd服務(wù)的可執(zhí)行程序文件放入路徑環(huán)境變量的目錄中便于系統(tǒng)識(shí)別

ln -s /usr/local/httpd/conf/httpd.conf /etc/ ln -s /usr/local/httpd/bin/* /usr/local/bin/

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

①、方法一:

cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd #用于service服務(wù)管理 chmod +x /etc/init.d/httpd vi /etc/init.d/httpd #!/bin/bash #在第一行前插入新行,添加此三行內(nèi)容 # chkconfig: 35 85 21 #35級(jí)別自動(dòng)運(yùn)行 第85個(gè)啟動(dòng) 第21個(gè)關(guān)閉 # description: Apache is a World Wide Web serverchkconfig --add httpd #將httpd服務(wù)加入到service管理器systemctl start httpd.service 或 service httpd start

②、方法二:

vim /lib/systemd/system/httpd.service [Unit] Description=The Apache HTTP Server #描述 After=network.target #描述服務(wù)類(lèi)別 [Service] Type=forking #后臺(tái)運(yùn)行方式 PIDFile=/usr/local/httpd/logs/httpd.pid #PID文件位置 ExecStart=/usr/local/bin/apachectl $OPTIONS #啟動(dòng)服務(wù) ExecReload=/bin/kill -HUP $MAINPID #根據(jù)PID重載配置 [Install] WantedBy=multi-user.targetsystemctl start httpd.service systemctl enable httpd.service

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


10、瀏覽器訪問(wèn)驗(yàn)證

11、使用域名訪問(wèn)

三、手工編譯mysql數(shù)據(jù)庫(kù)

1、將安裝mysql 所需軟件包傳到/opt目錄下

2、安裝環(huán)境依賴(lài)包

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

3、配置軟件模塊

tar zxvf mysql-5.7.17.tar.gz tar zxvf boost_1_59_0.tar.gzcd /opt mv boost_1_59_0 /usr/local/boost #重命名cd /opt/mysql-5.7.17/ 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

  • 存儲(chǔ)引擎選項(xiàng):
    • MYISAM,MERGE,MEMORY,和CSV引擎是默認(rèn)編譯到服務(wù)器中,并不需要明確地安裝。
    • 靜態(tài)編譯一個(gè)存儲(chǔ)引擎到服務(wù)器,使用-DWITH_engine_STORAGE_ENGINE= 1
    • 可用的存儲(chǔ)引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema)
  • 注意:
    • 如果在CMAKE的過(guò)程中有報(bào)錯(cuò),當(dāng)報(bào)錯(cuò)解決后,需要把源碼目錄中的CMakeCache.txt文件刪除,然后再重新CMAKE,否則錯(cuò)誤依舊

4、編譯及安裝

make && make install

5、創(chuàng)建mysql用戶(hù)

useradd -M -s /sbin/nologin mysql

6、修改mysql 配置文件

vim /etc/my.cnf #刪除原配置項(xiàng),再重新添加下面內(nèi)容 [client] #客戶(hù)端設(shè)置 port = 3306 socket = /usr/local/mysql/mysql.sock [mysql] #服務(wù)端設(shè)置 port = 3306 socket = /usr/local/mysql/mysql.sock auto-rehash #開(kāi)啟自動(dòng)補(bǔ)全功能[mysqld] #服務(wù)全局設(shè)置 user = mysql #設(shè)置管理用戶(hù) basedir=/usr/local/mysql #指定數(shù)據(jù)庫(kù)的安裝目錄 datadir=/usr/local/mysql/data #指定數(shù)據(jù)庫(kù)文件的存儲(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ù)庫(kù)連接文件 bind-address = 0.0.0.0 #設(shè)置監(jiān)聽(tīng)地址,0.0.0.0代表允許所有,如允許多個(gè)IP需空格隔開(kāi) skip-name-resolve #禁用DNS解析 max_connections=2048 #設(shè)置mysql的最大連接數(shù) default-storage-engine=INNODB #指定默認(rèn)存儲(chǔ)引擎 max_allowed_packet=16M #設(shè)置數(shù)據(jù)庫(kù)接收的數(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_QUOTES

  • sql_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)建密碼為空的用戶(hù)

    • NO_AUTO_VALUE_ON_ZERO
      mysql中的自增長(zhǎng)列可以從0開(kāi)始。默認(rèn)情況下自增長(zhǎng)列是從1開(kāi)始的,如果你插入值為0的數(shù)據(jù)會(huì)報(bào)錯(cuò)

    • NO_ZERO_IN_DATE
      不允許日期和月份為零

    • NO_ZERO_DATE
      mysql數(shù)據(jù)庫(kù)不允許插入零日期,插入零日期會(huì)拋出錯(cuò)誤而不是警告

    • ERROR_FOR_DIVISION_BY_ZERO
      在INSERT或UPDATE過(guò)程中,如果數(shù)據(jù)被零除,則產(chǎn)生錯(cuò)誤而非警告。默認(rèn)情況下數(shù)據(jù)被零除時(shí)MySQL返回NULL

    • PIPES_AS_CONCAT
      將"||"視為字符串的連接操作符而非或運(yùn)算符,這和Oracle數(shù)據(jù)庫(kù)是一樣的,也和字符串的拼接函數(shù)Concat相類(lèi)似

    • ANSI_QUOTES
      啟用ANSI_QUOTES后,不能用雙引號(hào)來(lái)引用字符串,因?yàn)樗唤忉尀樽R(shí)別符

7、更改mysql安裝目錄和配置文件的屬主屬組

chown -R mysql:mysql /usr/local/mysql/ chown mysql:mysql /etc/my.cnf

8、設(shè)置路徑環(huán)境變量

echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile source /etc/profile

9、初始化數(shù)據(jù)庫(kù)

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

10、添加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 #開(kāi)啟服務(wù) systemctl enable mysqld #開(kāi)機(jī)自啟動(dòng) netstat -anpt | grep 3306 #查看端口

11、修改mysql 的登錄密碼,并授權(quán)遠(yuǎn)程登錄

mysqladmin -u root -p password "abc123" #給root賬號(hào)設(shè)置密碼為abc123,提示輸入的是原始密碼(為空)mysql -u root -p grant all privileges on *.* to 'root'@'%' identified by 'abc123'; #授予root用戶(hù)可以在所有終端遠(yuǎn)程登錄,使用的密碼是abc123,并對(duì)所有數(shù)據(jù)庫(kù)和所有表有操作權(quán)限show databases; #查看當(dāng)前已有的數(shù)據(jù)庫(kù)

四、手工編譯安裝PHP

1、將安裝PHP 所需軟件包傳到/opt目錄下

2、安裝GD庫(kù)和GD庫(kù)關(guān)聯(lián)程序,用來(lái)處理和生成圖片


3、配置軟件模塊

tar jxvf php-7.1.10.tar.bz2 cd /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ù)庫(kù)連接文件的存儲(chǔ)路徑 --with-config-file-path=/usr/local/php7 #設(shè)置 PHP 的配置文件 php.ini 將要存放的位置 --with-mysqli \ #添加 MySQL 擴(kuò)展支持 #mysqli擴(kuò)展技術(shù)不僅可以調(diào)用MySQL的存儲(chǔ)過(guò)程、處理MySQL事務(wù),而且還可以使訪問(wèn)數(shù)據(jù)庫(kù)工作變得更加穩(wěn)定 --with-zlib \ #支持zlib功能,提供數(shù)據(jù)壓縮 --with-curl \ #開(kāi)啟curl擴(kuò)展功能,實(shí)現(xiàn)HTTP的Get下載和Post請(qǐng)求的方法 --with-gd \ #激活gd 庫(kù)的支持 --with-jpeg-dir \ #激活jpeg 的支持 --with-png-dir \ #激活png 的支持 --with-freetype-dir \ --with-openssl \ --enable-mbstring \ #啟用多字節(jié)字符串功能,以便支持中文等代碼 --enable-xml \ #開(kāi)啟擴(kuò)展性標(biāo)記語(yǔ)言模塊 --enable-session \ #會(huì)話(huà) --enable-ftp \ #文本傳輸協(xié)議 --enable-pdo \ #函數(shù)庫(kù) --enable-tokenizer \ #令牌解釋器 --enable-zip #ZIP壓縮格式

4、編譯及安裝

make && make install

5、復(fù)制模版文件作為PHP 的主配置文件,并進(jìn)行修改

cp /opt/php-7.1.10/php.ini-development /usr/local/php7/php.ini #在測(cè)試環(huán)境時(shí)使用php.ini-development文件,而在生產(chǎn)環(huán)境時(shí)使用php.ini-production文件 vim /usr/local/php7/php.ini --1170--修改 mysqli.default_socket = /usr/local/mysql/mysql.sock --939--取消注釋,修改 date.timezone = Asia/Shanghai

6、優(yōu)化把PHP 的可執(zhí)行程序文件放入路徑環(huán)境變量的目錄中便于系統(tǒng)識(shí)別

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

vim /etc/httpd.conf --393--插入以下內(nèi)容 AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps --255--修改首頁(yè)文件名設(shè)置 DirectoryIndex index.html index.php---檢查支持php7的模塊是否存在------ LoadModule php7_module modules/libphp7.so

8、驗(yàn)證PHP 測(cè)試頁(yè)

rm -rf /usr/local/httpd/htdocs/index.html #刪除默認(rèn)靜態(tài)首頁(yè)文件 vim /usr/local/httpd/htdocs/index.php #編寫(xiě)動(dòng)態(tài)首頁(yè)文件 <?php phpinfo(); ?>systemctl restart httpd.service #重啟服務(wù)瀏覽器訪問(wèn) http://192.168.184.80

五、使用LAMP搭建論壇

1、完成LAMP的搭建

2、創(chuàng)建數(shù)據(jù)庫(kù),并進(jìn)行授權(quán)

3、上傳并解壓論壇壓縮包


4、更改論壇目錄的屬主

ps aux #查看發(fā)現(xiàn)論壇進(jìn)程的用戶(hù)名是daemon 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、瀏覽器訪問(wèn)驗(yàn)證

6、論壇后臺(tái)管理員頁(yè)面

總結(jié)

以上是生活随笔為你收集整理的LAMP构架概述及相关服务的搭建(附带搭建论坛实验)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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