何爲 LAMP ?
LAMP(Web應用軟件組合)是指一組通常一起使用來運行動態網站或者服務器的自由軟件名稱首字母縮寫
-
Apache(Apache HTTP Server)是Apache軟件基金會的一個開放源碼的網頁服務器
雖然這些開放源代碼程序本身並不是專門設計成同另幾個程序一起工作的,但由於它們的廉價和普遍,這個組合開始流行(大多數Linux發行版本捆綁了這些軟件)。當一起使用的時候,它們表現的像一個具有活力的“解決方案包”(Solution Packages)。其他的方案包有蘋果的WebObjects(最初是應用服務器),Java/J2EE和微軟的.NET架構。
“LAMP包”的腳本組件中包括了CGIweb接口,它在90年代初期變得流行。這個技術允許網頁瀏覽器的用戶在服務器上執行一個程序,並且和接受靜態的內容一樣接受動態的內容。程序員使用腳本語言來創建這些程序因爲它們能很容易有效的操作文本流,甚至當這些文本流並非源自程序自身時也是。正是由於這個原因系統設計者經常稱這些腳本語言爲膠水語言。
Michael Kunze在一篇爲德國計算機雜誌《c't》(1998,第12期,230頁)而寫的文章中使用了縮略語“LAMP”。這篇文章意在展示一系列的自由軟件成爲了商業包的替換物。由於IT世界衆所周知的對縮寫的愛好,Kunze提出“LAMP”這一容易被市場接受的術語來普及自由軟件的使用。
LAMP 架構說明
- CGI(Common Gateway Interface,通用網關接口),CGI是外部應用程序(CGI程序)與WEB服務器之間的接口標準,是在CGI程序和Web服務器之間傳遞信息的過程。CGI規範允許Web服務器執行外部程序,並將它們的輸出發送給Web瀏覽器,CGI將web的一組簡單的靜態超媒體文檔變成一個完整的新的交互式媒體。
- FastCGI(Fast Common Gateway Interface)是CGI的改良版,CGI是通過啓用一個解釋器進程來處理每個請求,耗時且耗資源,而FastCGI則是通過master-worker形式來處理每個請求,即啓動一個master主進程,然後根據配置啓動幾個worker進程,當請求進來時,master會從worker進程中選擇一個去處理請求,這樣就避免了重複的生成和殺死進程帶來的頻繁cpu上下文切換而導致耗時
下面開始搭建 LAMP 部署分離
實驗環境說明
-
Apache 192.168.10.2 Centos7.5
-
MariaDB 192.168.10.6 Centos7.5
-
PHP 192.168.10.7 Centos7.5
-
關閉 Iptables、Firewalld 和 selinux
-
首先在 192.168.10.2 上安裝配置 Apache Web 服務:
- 編輯 /etc/httpd/conf/httpd.conf 配置文件
- 搜索 ServerName 修改爲對應的 IP 地址
- 搜索 DirectoryIndex 添加 index.php
- 整合APACHE和PHP使APACHE支持PHP
- AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
- 在末尾添加以下內容
- <VirtualHost *:80>
DocumentRoot "/www/"
ServerName 192.168.10.2
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.10.7:9000/www/$1
<Directory "/www/">
Options none
AllowOverride none
Require all granted
</Directory>
</VirtualHost>
-
確認無誤保存退出,查看配置文件是否有語法錯誤
- httpd -t
-
啓動 Httpd
-
接着在 192.168.10.6 上安裝配置 MariaDB
-
詳細配置請參見拙作:https://blog.csdn.net/gaofei0428/article/details/103829676
-
最後在 192.168.10.7 上安裝配置 PHP
- 安裝需要用到 yum 、epel 以及 remi 源
- 具體設置請參見拙作:https://blog.csdn.net/gaofei0428/article/details/102903468
- 安裝remi源
- rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
- 使用 yum 方式 指定 --enablerepo=remi --enablerepo=remi-php56 安裝 PHP
- yum -y install --enablerepo=remi --enablerepo=remi-php56 php php-fpm php-common php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof php-bcmath php-gd php-xcache --skip-broken
- 編輯 /etc/php-fpm.d/www.conf 配置文件
- 設置對應的IP監聽地址
- listen = 192.168.10.7:9000
- 設置 httpd 服務器 IP地址
- listen.allowed_clients = 192.168.10.2
- 確認無誤保存退出,啓動 PHP
- 在 192.168.10.2 上的 /www 目錄下編輯 index.html
- 在 192.168.10.7 上的 /www 目錄下編輯 index.php
- 打開瀏覽器輸入 Apache 服務器地址
- 測試鏈接 MariaDB 數據庫