一、LAMP概述
1.1LAMP的概念
- LAMP架構是目前成熟的企業網站應用模式之一,指的是協同作業的一整套系統和相關軟體,能夠提供動態web站點服務及其應用開發環境
- LAMP是一個縮寫詞,具體包括Linux作業系統、Apache網站服務器、MySQL資料庫服務器、PHP(或Perl、python)網頁編程語言
1.2各組件作用
- Linux(平臺): 作為LAMP架構的基礎,提供用于支撐Web站點的作業系統,能夠與其他三個組件提供更好的穩定性,兼容性(AMP組件也支持Windows、UNIX等平臺),
- Apache(前臺): 作為LAMP架構的前端,是一款功能強大,穩定性好的Web服務器程式,該服務器直接面向用戶提供網站訪問,發送網頁,圖片等檔案內容,
- MySQL(后臺): 作為LAMP架構的后端,是一款流行的開源關系資料庫系統,在企業網站、業務系統等應用中,各種賬戶資訊、產品資訊,客戶資料、業務資料等都可以存盤MySQL資料庫,其他程式可以通過SQL陳述句來查詢,更改這些資訊,
- PHP/Perl/Python(中間連接):作為三種開發動態網頁的編程語言,負責解釋動態網頁檔案,負責溝通web服務器和資料庫系統以協同作業,并提供Web應用程式的開發和運行環境,其中PHP是一 種被廣泛應用的開放源代碼的多用途腳本語言,它可以嵌入到HTML中,尤其適合于Web應用開發,
- 在構建LAMP平臺時,各組件的安裝順序依次為Linux、Apache、MySQL、PHP,其中Apache和MySQL的安裝并沒有嚴格的順序,PHP環境的安裝一般放到最后安裝,負責溝通Web服務器和資料庫系統以協同作業,
二、編譯安裝Apache httpd服務
2.1關閉防火墻,將安裝Apache所需軟體包傳到/opt目錄下

[root@server /opt]#systemctl stop firewalld [root@server /opt]#systemctl disable firewalld [root@server /opt]#setenforce 0 httpd-2.4.29.tar.gz apr-1.6.2.tar.gz apr-util-1.6.0.tar.gz #apr組件包用于支持Apache上層應用跨平臺,提供底層介面庫,能有效的降低并發連接數、降低行程和減少訪問堵塞,
2.2安裝環境依賴包
[root@server /opt]#yum -y install gcc gcc-c++ make pcre pcre-devel expat-devel perl yum -y install \ gcc \ #C語言的編譯器 gcc-c++ \ #C++的編譯器 make \ #源代碼編譯器(源代碼轉換成二進制檔案) pcre \ #pcre是一個Perl函式庫,包括perl 兼容的正則運算式庫 pcre-devel \ #perl的介面開發包 expat-devel \ #用于支持網站決議HTML、XML檔案 perl #perl語言編譯器

2.3配置軟體模塊
[root@server /opt]#cd /opt/ [root@server /opt]#tar xf apr-1.6.2.tar.gz [root@server /opt]#tar xf apr-util-1.6.0.tar.gz [root@server /opt]#tar xf httpd-2.4.29.tar.bz2 [root@server /opt]#mv apr-1.6.2 /opt/httpd-2.4.29/srclib/apr [root@server /opt]#mv apr-util-1.6.0 /opt/httpd-2.4.29/srclib/apr-util
[root@server /opt]#cd /opt/httpd-2.4.29/ [root@server /opt/httpd-2.4.29]#./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi 各配置命令作用解釋如下: ./configure \ --prefix=/usr/local/httpd \ #指定將 httpd 服務程式的安裝路徑 --enable-so \ #啟用動態加載模塊支持,使 httpd 具備進一步擴展功能的能力 --enable-rewrite \ #啟用網頁地址重寫功能,用于網站優化、防盜鏈及目錄遷移維護 --enable-charset-lite \ #啟動字符集支持,以便支持使用各種字符集編碼的頁面 --enable-cgi #啟用CGI(通用網關介面)腳本程式支持,便于網站的外部擴展應用訪問能力
2.4編譯及安裝
[root@server /opt/httpd-2.4.29]#make #make -j 2 表示開2核同時進行編譯 [root@server /opt/httpd-2.4.29]#make install
2.5優化組態檔路徑,并把httpd服務的可執行程式檔案放入路徑環境變數的目錄中便于系統識別
[root@server /opt/httpd-2.4.29]#ln -s /usr/local/httpd/conf/httpd.conf /etc/ [root@server /opt/httpd-2.4.29]#ln -s /usr/local/httpd/bin/* /usr/local/bin/
2.6添加httpd系統服務
[root@server /opt/httpd-2.4.29]#cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd [root@server /opt/httpd-2.4.29]#chmod +x /etc/init.d/httpd [root@server /opt/httpd-2.4.29]#vim /etc/init.d/httpd #!/bin/bash #在第一行前插入新行,添加此三行內容 # chkconfig: 35 85 21 #35級別自動運行 第85個啟動 第21個關閉 # description: Apache is a World Wide Web server [root@server /opt/httpd-2.4.29]#chkconfig --add httpd #將httpd服務加入到service管理器 [root@server /opt/httpd-2.4.29]#systemctl start httpd.service #開啟http服務(關閉和開啟要使用相同的方式) 或者 [root@server /opt/httpd-2.4.29]#service httpd start #開啟http服務(關閉和開啟要使用相同的方式)
2.7修改httpd服務組態檔
[root@server /opt/httpd-2.4.29]#vim /usr/local/httpd/conf/httpd.conf --52行--修改 Listen 192.198.10.10:80 --197行--取消注釋,修改 ServerName www.kgc.com:80 --221行--默認首頁存放路徑 DocumentRoot "/usr/local/httpd/htdocs" --255行--默認首頁檔案名設定 DirectoryIndex index.html [root@server /opt/httpd-2.4.29]#httpd -t #檢查組態檔的配置項是否有誤 [root@server /opt/httpd-2.4.29]#apachectl -t #檢查組態檔的配置項是否有誤 [root@server /opt/httpd-2.4.29]#cat /usr/local/httpd/htdocs/index.html #查看html的內容 [root@server /opt/httpd-2.4.29]#systemctl restart httpd.service
2.8瀏覽器訪問驗證
[root@server /opt/httpd-2.4.29]#netstat -napt | grep 80 瀏覽器訪問:http://192.168.10.10/
三、實體操作:編譯安裝Apache http服務
3.1關閉防火墻,將安裝Apache所需軟體包傳到/opt目錄下


3.2安裝環境依賴包

3.3配置軟體模塊
3.3.1對三個壓縮包進行解壓


3.3.2將apr的兩個檔案移動到httpd的srclib檔案內
![]()
3.3.3切換目錄執行configure檔案

3.4編譯及安裝

3.5優化組態檔路徑,并把httpd服務的可執行程式檔案放入路徑環境變數的目錄中便于系統識別
![]()
3.6添加httpd系統服務
3.6.1修改httpd組態檔

3.6.2將httpd服務加入到service管理器并開啟服務
![]()
3.7修改httpd 服務組態檔


![]()

![]()
3.8瀏覽器訪問驗證

四、編譯安裝mysql服務
4.1將安裝mysql 所需軟體包傳到/opt目錄下
mysql-5.7.17.tar.gz boost_1_59_0.tar.gz #支持c++的運行庫
4.2安裝環境依賴包
yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake 各程式作用解釋如下: gcc gcc-c++ ncurses #字符終端下圖形互動功能的動態庫 ncurses-devel #ncurses開發包 bison #語法分析器 cmake #mysql需要用cmake編譯安裝
4.3配置軟體模塊
tar zxvf mysql-5.7.17.tar.gz tar zxvf boost_1_59_0.tar.gz cd /opt mv boost_1_59_0 /usr/local/boost #重命名 cd /opt/mysql-5.7.17/ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #指定mysql的安裝路徑 -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ #指定mysql行程監聽套接字檔案(資料庫連接檔案)的存盤路徑 -DSYSCONFDIR=/etc \ #指定組態檔的存盤路徑 -DSYSTEMD_PID_DIR=/usr/local/mysql \ #指定行程檔案的存盤路徑 -DDEFAULT_CHARSET=utf8 \ #指定默認使用的字符集編碼,如 utf8 -DDEFAULT_COLLATION=utf8_general_ci \ #指定默認使用的字符集校對規則 -DWITH_EXTRA_CHARSETS=all \ #指定支持其他字符集編碼 -DWITH_INNOBASE_STORAGE_ENGINE=1 \ #安裝INNOBASE存盤引擎 -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ #安裝ARCHIVE存盤引擎 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ #安裝BLACKHOLE存盤引擎 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ #安裝FEDERATED存盤引擎 -DMYSQL_DATADIR=/usr/local/mysql/data \ #指定資料庫檔案的存盤路徑 -DWITH_BOOST=/usr/local/boost \ #指定boost的路徑,若使用mysql-boost集成包安裝則-DWITH_BOOST=boost -DWITH_SYSTEMD=1 #生成便于systemctl管理的檔案
存盤引擎選項:
MYISAM,MERGE,MEMORY,和CSV引擎是默認編譯到服務器中,并不需要明確地安裝,
靜態編譯一個存盤引擎到服務器,使用-DWITH_engine_STORAGE_ENGINE= 1
可用的存盤引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema)
注意:如果在CMAKE的程序中有報錯,當報錯解決后,需要把原始碼目錄中的CMakeCache.txt檔案洗掉,然后再重新CMAKE,否則錯誤依舊,
4.4編譯及安裝
make && make install
4.5創建mysql用戶
useradd -M -s /sbin/nologin mysql
4.6修改mysql 組態檔
vim /etc/my.cnf #洗掉原配置項,再重新添加下面內容 [client] #客戶端設定 port = 3306 socket = /usr/local/mysql/mysql.sock [mysql] #服務端設定 port = 3306 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 #設定服務器字符集編碼格式為utf8 pid-file = /usr/local/mysql/mysqld.pid #指定pid 行程檔案路徑 socket=/usr/local/mysql/mysql.sock #指定資料庫連接檔案 bind-address = 0.0.0.0 #設定監聽地址,0.0.0.0代表允許所有,如允許多個IP需空格隔開 skip-name-resolve #禁用DNS決議 max_connections=2048 #設定mysql的最大連接數 default-storage-engine=INNODB #指定默認存盤引擎 max_allowed_packet=16M #設定資料庫接收的資料包大小的最大值 server-id = 1 #指定服務ID號 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 如果需要的存盤引擎被禁用或未編譯,那么拋出錯誤,不設定此值時,用默認的存盤引擎替代,并拋出一個例外 STRICT_TRANS_TABLES 在該模式下,如果一個值不能插入到一個事務表中,則中斷當前的操作,對非事務表不做限制 NO_AUTO_CREATE_USER 禁止GRANT創建密碼為空的用戶 NO_AUTO_VALUE_ON_ZERO mysql中的自增長列可以從0開始,默認情況下自增長列是從1開始的,如果你插入值為0的資料會報錯 NO_ZERO_IN_DATE 不允許日期和月份為零 NO_ZERO_DATE mysql資料庫不允許插入零日期,插入零日期會拋出錯誤而不是警告 ERROR_FOR_DIVISION_BY_ZERO 在INSERT或UPDATE程序中,如果資料被零除,則產生錯誤而非警告,默認情況下資料被零除時MySQL回傳NULL PIPES_AS_CONCAT 將"||"視為字串的連接運算子而非或運算子,這和Oracle資料庫是一樣的,也和字串的拼接函式Concat相類似 ANSI_QUOTES 啟用ANSI_QUOTES后,不能用雙引號來參考字串,因為它被解釋為識別符
4.7更改mysql安裝目錄和組態檔的屬主屬組
chown -R mysql:mysql /usr/local/mysql/ chown mysql:mysql /etc/my.cnf
4.8設定路徑環境變數
echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile source /etc/profile
4.9初始化資料庫
cd /usr/local/mysql/bin/ ./mysqld \ --initialize-insecure \ #生成初始化密碼為空 --user=mysql \ #指定管理用戶 --basedir=/usr/local/mysql \ #指定資料庫的安裝目錄 --datadir=/usr/local/mysql/data #指定資料庫檔案的存盤路徑
4.10添加mysqld系統服務
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ #用于systemctl服務管理 systemctl daemon-reload #重繪識別 systemctl start mysqld.service #開啟服務 systemctl enable mysqld #開機自啟動 netstat -anpt | grep 3306 #查看埠
4.11修改mysql 的登錄密碼
mysqladmin -u root -p password ``"123456"` `#給root賬號設定密碼為123456,提示輸入的是原始密碼(為空)
4.12授權遠程登錄
mysql -u root -p grant all privileges on *.* to 'root'@'%' identified by 'abc123'; #授予root用戶可以在所有終端遠程登錄,使用的密碼是abc123,并對所有資料庫和所有表有操作權限 show databases; #查看當前已有的資料庫
五、實體操作:編譯安裝mysql服務
5.1將安裝mysql 所需軟體包傳到/opt目錄下

5.2安裝環境依賴包

5.3配置軟體模塊
5.3.1解壓檔案至當前目錄
![]()
![]()
![]()
5.3.2CMAKE相關路徑和安裝相關引擎
![]()

5.4編譯及安裝
![]()
5.5創建mysql用戶
![]()
5.6修改mysql 組態檔

5.7更改mysql安裝目錄和組態檔的屬主屬組

5.8設定路徑環境變數
![]()
5.9初始化資料庫

5.10添加mysqld系統服務

5.11修改mysql 的登錄密碼

5.12授權遠程登錄

六、編譯安裝PHP決議環境
6.1將安裝PHP所需軟體包傳到/opt目錄下
php-7.1.10.tar.bz2
6.2安裝GD庫和GD庫關聯程式,用來處理和生成圖片
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
6.3配置軟體模塊
cd /opt 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服務提供的apxs 模塊支持程式的檔案位置 --with-mysql-sock=/usr/local/mysql/mysql.sock \ #指定mysql 資料庫連接檔案的存盤路徑 --with-config-file-path=/usr/local/php7 #設定 PHP 的組態檔 php.ini 將要存放的位置 --with-mysqli \ #添加 MySQL 擴展支持 #mysqli擴展技術不僅可以呼叫MySQL的存盤程序、處理MySQL事務,而且還可以使訪問資料庫作業變得更加穩定 --with-zlib \ #支持zlib功能,提供資料壓縮 --with-curl \ #開啟curl擴展功能,實作HTTP的Get下載和Post請求的方法 --with-gd \ #激活gd 庫的支持 --with-jpeg-dir \ #激活jpeg 的支持 --with-png-dir \ #激活png 的支持 --with-freetype-dir \ --with-openssl \ --enable-mbstring \ #啟用多位元組字串功能,以便支持中文等代碼 --enable-xml \ #開啟擴展性標記語言模塊 --enable-session \ #會話 --enable-ftp \ #文本傳輸協議 --enable-pdo \ #函式庫 --enable-tokenizer \ #令牌解釋器 --enable-zip #ZIP壓縮格式
6.4編譯及安裝
make && make install
6.5復制模版檔案作為PHP 的主組態檔,并進行修改
cp /opt/php-7.1.10/php.ini-development /usr/local/php7/php.ini #在測驗環境時使用php.ini-development檔案,而在生產環境時使用php.ini-production檔案 vim /usr/local/php7/php.ini
--1170行--修改 mysqli.default_socket = /usr/local/mysql/mysql.sock
--939行--取消注釋,修改 date.timezone = Asia/Shanghai
6.6優化把PHP 的可執行程式檔案放入路徑環境變數的目錄中便于系統識別
ln -s /usr/local/php7/bin/* /usr/local/bin/ php -m #查看PHP 加載了哪些模塊
6.7修改httpd 服務的組態檔,讓apache支持PHP
vim /etc/httpd.conf
--393行--插入以下內容 AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps
--255行--修改首頁檔案名設定 DirectoryIndex index.html index.php ---156行檢查支持php7的模塊是否存在------ LoadModule php7_module modules/libphp7.so
6.8驗證PHP測驗頁
rm -rf /usr/local/httpd/htdocs/index.html vim /usr/local/httpd/htdocs/index.php <?php phpinfo(); ?> systemctl restart httpd.service 瀏覽器訪問 http://192.168.10.10
七、實體操作:編譯安裝PHP決議環境
7.1將安裝PHP所需軟體包傳到/opt目錄下

7.2安裝GD庫和GD庫關聯程式,用來處理和生成圖片

7.3.配置軟體模塊
7.3.1 解壓檔案


7.3.2配置相關軟體模塊

7.4編譯及安裝

7.5復制模版檔案作為PHP的主組態檔,并進行修改
![]()

![]()
7.6優化把PHP的可執行程式檔案放入路徑環境變數的目錄中便于系統識別

7.7修改httpd服務的組態檔,讓apache支持PHP
![]()


![]()
7.8驗證PHP測驗頁
7.8.1 備份index.html,新建index.php檔案

7.8.2開啟服務,驗證PHP 測驗頁
![]()

八、安裝論壇
8.1創建資料庫,并進行授權
mysql -u root -p CREATE DATABASE bbs; #創建一個資料庫 GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123'; #把bbs資料庫里面所有表的權限授予給bbsuser,并設定密碼admin123 flush privileges; #重繪資料庫 show databases;
8.2解壓論壇壓縮包
unzip /opt/Discuz_X3.4_SC_UTF8.zip -d /opt/dis cd /opt/dis/dir_SC_UTF8/ cp -r upload/ /usr/local/httpd/htdocs/bbs #上傳站點更新包
8.3更改論壇目錄的屬主
ps aux #查看發現論壇行程的用戶名是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
8.4瀏覽器訪問驗證
論壇頁面訪問 http://192.168.10.10/bbs 資料庫服務器:localhost ###本地架設就用localhost,如何不是在在本機上就要填寫IP地址和埠號 資料庫名字:bbs 資料庫用戶名:bbsuser 資料庫密碼:admin123 管理員賬號:admin 管理員密碼:admin123 論壇后臺管理員頁面 http://192.168.10.10/bbs/admin.php
九、實體操作:安裝論壇
9.1創建資料庫,并進行授權

9.2解壓論壇壓縮包
![]()

9.3上傳站點更新包

9.4網頁驗證


9.5更改論壇目錄的屬主
9.5.1 查看論壇行程的用戶名是daemon
![]()

9.5.2更改論壇目錄的屬主

9.6論壇相關設定
9.6.1 重繪瀏覽器查看檔案是否有權限

9.6.2選擇全新安裝

9.6.3安裝資料庫相關配置

9.6.4 安裝完成點擊訪問

9.6.5 論壇安裝完成

9.6.6 論壇后臺管理員頁面

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/528082.html
標籤:其他
