企业网站应用模式之—LAMP架构的源码编译超详细步骤,有手就行!
LAMP架構的源碼編譯安裝
- 一、LAMP架構介紹
- 1.1 LAMP概述
- 1.2 LAMP各組件介紹
- 1.2.1 (平臺)Linux
- 1.2.2(前臺)Apache
- 1.2.3(后臺)MySQL
- 1.2.4(中間連接)PHP/Perl/Python
- 1.3 LAMP各組件安裝順序
- 二、編譯安裝Apache httpd服務
- 2.1 操作步驟流程
- 2.2 操作詳細步驟(含圖文)
- 三、編譯安裝mysqld 服務
- 3.1 操作步驟流程
- 3.2 操作詳細步驟(含圖文)
- 四、編譯安裝PHP 解析環境
- 4.1 操作步驟流程
- 4.2 操作詳細步驟(含圖文)
- 五、安裝論壇
- 5.1 操作步驟流程
- 5.2 操作詳細步驟(含圖文)
一、LAMP架構介紹
1.1 LAMP概述
LAMP架構是目前成熟的企業網站應用模式之一,指的是協同工作的一整套系統和相關軟件,能夠提供動態Web站點服務及其應用開發環境。LAMP是一個縮寫詞,具體包括Linux操作系統、Apache網站服務器、MySQL數據庫服務器、PHP(或Perl、Python)網頁編程語言。
1.2 LAMP各組件介紹
1.2.1 (平臺)Linux
作為LAMP架構的基礎,提供用于支撐Web站點的操作系統,能夠與其他三個組件提供更好的穩定性,兼容性(AMP組件也支持Windows、UNIX等平臺) 。
1.2.2(前臺)Apache
作為LAMP架構的前端,是一款功能強大,穩定性好的Web服務器程序,該服務器直接面向用戶提供網站訪問,發送網頁,圖片等文件內容。
1.2.3(后臺)MySQL
作為LAMP架構的后端,是一款流行的開源關系數據庫系統。在企業網站、業務系統等應用中,各種賬戶信息、產品信息,客戶資料、業務數據等都可以存儲到MySQL數據庫,其他程序可以通過SQL語句來查詢,更改這些信息。
1.2.4(中間連接)PHP/Perl/Python
作為三種開發動態網頁的編程語言,負責解釋動態網頁文件,負責溝通Web服務器和數據庫系統以協同工作,并提供Web應用程序的開發和運行環境。其中PHP是一種被廣泛應用的開放源代碼的多用途腳本語言,它可以嵌入到HTML中,尤其適合于Web應用開發。
1.3 LAMP各組件安裝順序
在構建LAMP平臺時,各組件的安裝順序依次為Linux、Apache、MySQL、PHP。其中Apache和MySQL的安裝并沒有嚴格的順序,PHP環境的安裝一般放到最后安裝,負責溝通 Web 服務器和數據庫系統以協同工作。
二、編譯安裝Apache httpd服務
2.1 操作步驟流程
1.關閉防火墻,將安裝Apache所需軟件包傳到/opt目錄下
systemctl stop firewalld systemctl disable firewalld setenforce 0httpd-2.4.29.tar.gz apr-1.6.2.tar.gz apr-util-1.6.0.tar.gz #apr組件包用于支持Apache上層應用跨平臺,提供底層接口庫,能有效的降低并發連接數、降低進程和減少訪問堵塞。2.安裝環境依賴包
yum -y install gcc gcc-c++ make pcre pcre-devel expat-devel perl ------------------------------------------------------------------------------------------ 各程序作用解釋如下: gcc #C語言的編譯器 gcc-c++ #C++的編譯器 make #源代碼編譯器(源代碼轉換成二進制文件) pcre #pcre是一個Perl函數庫,包括perl 兼容的正則表達式庫 pcre-devel #perl的接口開發包 expat-devel #用于支持網站解析HTML、XML文件 perl #perl語言編譯器3.配置軟件模塊
cd /opt/ tar zxvf apr-1.6.2.tar.gz tar zxvf apr-util-1.6.0.tar.gz tar jxvf httpd-2.4.29.tar.bz2mv apr-1.6.2 /opt/httpd-2.4.29/srclib/apr mv apr-util-1.6.0 /opt/httpd-2.4.29/srclib/apr-util cd /opt/httpd-2.4.29/./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi ------------------------------------------------------------------------------------------------------ 各配置命令作用解釋如下: --prefix=/usr/local/httpd \ #指定將 httpd 服務程序的安裝路徑 --enable-so \ #啟用動態加載模塊支持,使 httpd 具備進一步擴展功能的能力 --enable-rewrite \ #啟用網頁地址重寫功能,用于網站優化、防盜鏈及目錄遷移維護 --enable-charset-lite \ #啟動字符集支持,以便支持使用各種字符集編碼的頁面 --enable-cgi #啟用CGI(通用網關接口)腳本程序支持,便于網站的外部擴展應用訪問能力4.編譯及安裝
make #make -j 2 表示開2核同時進行編譯 make install5.優化配置文件路徑,并把httpd服務的可執行程序文件放入路徑環境變量的目錄中便于系統識別
ln -s /usr/local/httpd/conf/httpd.conf /etc/ #做個軟鏈接 ln -s /usr/local/httpd/bin/* /usr/local/bin/ #做個軟鏈接6.添加httpd系統服務
方法一:
方法二:
vim /lib/systemd/system/httpd.service [Unit] Description=The Apache HTTP Server #描述 After=network.target #描述服務類別 [Service] Type=forking #后臺運行方式 PIDFile=/usr/local/httpd/logs/httpd.pid #PID文件位置 ExecStart=/usr/local/bin/apachectl $OPTIONS #啟動服務 ExecReload=/bin/kill -HUP $MAINPID #根據PID重載配置 [Install] WantedBy=multi-user.targetsystemctl start httpd.service #開啟http服務(關閉和開啟要使用相同的方式) systemctl enable httpd.service #設為開機自啟動7.修改httpd 服務配置文件
vim /etc/httpd.conf --52行--修改 Listen 192.198.80.10:80 --197行--取消注釋,修改 ServerName www.kgc.com:80--221行--默認首頁存放路徑 DocumentRoot "/usr/local/httpd/htdocs" --255行--默認首頁文件名設置 DirectoryIndex index.htmlhttpd -t 或 apachectl -t #檢查配置文件的配置項是否有誤 cat /usr/local/httpd/htdocs/index.html #查看html的內容 systemctl restart httpd.service8.瀏覽器訪問驗證
netstat -anpt | grep 80 echo "192.168.80.77 www.kgc.com" >> /etc/hostshttp://192.168.80.77 http://www.clj.com2.2 操作詳細步驟(含圖文)
第一步:關閉防火墻和selinux,然后將三個壓縮文件拖入到xshell內
第二步:安裝環境依賴包
第三步:配置軟件模塊
1)對三個壓縮包進行解壓
2)將apr的兩個文件移動到httpd的srclib文件內
3)對apr的兩個文件進行修改名稱
4)切換目錄執行configure文件
第四步:編譯并安裝
我這邊虛擬機給的是cpu4核處理器,所以我這邊可以使用使用j4,參與編譯安裝的cpu不能大于分配給虛擬機的cpu。
第五步:優化配置文件路徑
1)創建軟鏈接
第六步:添加httpd系統服務
1)修改httpd配置文件
2)將httpd服務加入到service管理器并開啟服務
第七步:備份修改httpd服務配置文件
1)備份修改文件
2)檢查配置項是否有誤
第八步:瀏覽器進行訪問驗證
三、編譯安裝mysqld 服務
3.1 操作步驟流程
1.將安裝mysql 所需軟件包傳到/opt目錄下
mysql-5.7.17.tar.gz boost_1_59_0.tar.gz #支持c++的運行庫2.安裝環境依賴包
yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake ---------------------------------------------------------------------------------------------------------- 各程序作用解釋如下: gcc gcc-c++ ncurses #字符終端下圖形互動功能的動態庫 ncurses-devel #ncurses開發包 bison #語法分析器 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 \ #指定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.編譯及安裝
make && make install5.創建mysql用戶
useradd -M -s /sbin/nologin mysql6.修改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_QUOTESsql_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后,不能用雙引號來引用字符串,因為它被解釋為識別符
7.更改mysql安裝目錄和配置文件的屬主屬組
chown -R mysql:mysql /usr/local/mysql/ chown mysql:mysql /etc/my.cnf8.設置路徑環境變量
echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile source /etc/profile9.初始化數據庫
cd /usr/local/mysql/bin/ ./mysqld \ --initialize-insecure \ #生成初始化密碼為空 --user=mysql \ #指定管理用戶 --basedir=/usr/local/mysql \ #指定數據庫的安裝目錄 --datadir=/usr/local/mysql/data #指定數據庫文件的存儲路徑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 #查看端口11.修改mysql 的登錄密碼
mysqladmin -u root -p password "abc123" #給root賬號設置密碼為abc123,提示輸入的是原始密碼(為空)12.授權遠程登錄
mysql -u root -p grant all privileges on *.* to 'root'@'%' identified by 'abc123'; #授予root用戶可以在所有終端遠程登錄,使用的密碼是abc123,并對所有數據庫和所有表有操作權限show databases; #查看當前已有的數據庫3.2 操作詳細步驟(含圖文)
第一步:將三個壓縮文件拖入到Linux中的/opt目錄下
第二步:安裝環境依賴包
第三步:配置軟件模塊
1)解壓文件至當前目錄
2)CMAKE相關路徑和安裝相關引擎
第四步:編譯及安裝
第五步:創建mysql用戶,不創建家目錄和禁止登錄
第六步:修改mysql 配置文件
第七步:更改mysql安裝目錄和配置文件的屬主屬組
第八步:設置路徑環境變量
第九步:初始化數據庫
第十步:添加mysqld系統服務
第十一步:修改mysql 的登錄密碼
第十二步:授權遠程登錄
四、編譯安裝PHP 解析環境
4.1 操作步驟流程
1.將安裝PHP 所需軟件包傳到/opt目錄下
php-7.1.10.tar.bz22.安裝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-devel3.配置軟件模塊
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壓縮格式4.編譯及安裝
make && make install5.復制模版文件作為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/Shanghai6.優化把PHP 的可執行程序文件放入路徑環境變量的目錄中便于系統識別
ln -s /usr/local/php7/bin/* /usr/local/bin/ php -m #查看PHP 加載了哪些模塊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---檢查支持php7的模塊是否存在------ LoadModule php7_module modules/libphp7.so8.驗證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.80.774.2 操作詳細步驟(含圖文)
第一步:將安裝PHP 所需軟件包傳到/opt目錄下
第二步:安裝GD庫和GD庫關聯程序,用來處理和生成圖片
第三步:配置軟件模塊
1)解壓文件
2)配置相關軟件模塊
第四步:編譯及安裝
第五步:復制模版文件作為PHP 的主配置文件,并進行修改
第六步:優化把PHP 的可執行程序文件放入路徑環境變量的目錄中便于系統識別
第七步:修改httpd 服務的配置文件,讓apache支持PHP
檢查下面兩個文件是否正常,如果沒有,則需要重新安裝
第八步:備份index.html,新建index.php文件。
第九步:開啟服務,驗證PHP 測試頁
刷新頁面,測試正常!
五、安裝論壇
5.1 操作步驟流程
1.創建數據庫,并進行授權
mysql -u root -pCREATE DATABASE bbs; #創建一個數據庫GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123'; #把bbs數據庫里面所有表的權限授予給bbsuser,并設置密碼admin123flush privileges; #刷新數據庫show databases;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 #上傳站點更新包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/data4.瀏覽器訪問驗證
論壇頁面訪問 http://192.168.80.77/bbs ---------------------------------------------------------------------------------------------------------- 數據庫服務器:localhost ###本地架設就用localhost,如何不是在在本機上就要填寫IP地址和端口號 數據庫名字:bbs 數據庫用戶名:bbsuser 數據庫密碼:admin123 管理員賬號:admin 管理員密碼:admin123 ---------------------------------------------------------------------------------------------------------- 論壇后臺管理員頁面 http://192.168.80.77/bbs/admin.php5.2 操作詳細步驟(含圖文)
第一步:創建數據庫,并進行授權
#把bbs數據庫里面所有表的權限授予給bbsuser,并設置密碼admin123,刷新數據庫
第二步:解壓論壇壓縮包
1)解壓
2)上傳站點更新包
3)宿主機驗證
4)點擊論壇的我同意按鈕進去,發現文件沒有權限
第三步:更改論壇目錄的屬主
1)查看論壇進程的用戶名是daemon
2)更改論壇目錄的屬主
第四步:論壇相關設置
1) 刷新瀏覽器查看文件是否有權限
2)選擇全新安裝Discuz!X
3)安裝數據庫相關配置,用戶名、密碼等。
4)安裝完成點擊訪問
5)論壇安裝完成
6)論壇后臺管理員頁面
7)管理頁面登錄成功
總結
以上是生活随笔為你收集整理的企业网站应用模式之—LAMP架构的源码编译超详细步骤,有手就行!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 必看!100道Java程序员面试题(含答
- 下一篇: DynamipsGUI小凡模拟器VPCS