CentOS7安裝經(jīng)典web架構(gòu):LAMP

LAMP是什么?

LAMP,也就是Linux-Apache-MySQL-PHP的簡稱。
這里我們需要了解兩個(gè)概念,靜態(tài)資源動(dòng)態(tài)資源。
靜態(tài)資源一般是用HTML編寫的網(wǎng)頁,實(shí)際上是一個(gè)文本文件。
靜態(tài)內(nèi)容通過瀏覽器的輔助而展示出我們所看到的網(wǎng)站的內(nèi)容。如網(wǎng)站布局等。
動(dòng)態(tài)資源則是需要特定的解釋器翻譯之后,通過服務(wù)器運(yùn)行,最后返回給用戶的結(jié)果。
在訪問一個(gè)PHP網(wǎng)站時(shí),假如我們需要登錄賬號(hào),這部分則是由PHP完成,而賬號(hào)密碼則保存在MySQL里面。
假如用戶在php網(wǎng)站請求登錄,請求順序是這樣的:

Apache-PHP-MySQL是這樣協(xié)作的

Apache有什么特色?

其實(shí)我們可以從他的名字中來理解他的一個(gè)最經(jīng)典的特性。

Apache,原意為A Patchy Server。
意思是,一個(gè)打補(bǔ)丁、拼湊而成的服務(wù)器。
他主要的特點(diǎn),就是支持DSO。Dynamic Shared Object
意思就是動(dòng)態(tài)加載模塊的意思。
配置文件中通過加入LoadModule <模塊名字> <模塊路徑>來調(diào)用模塊。
因?yàn)檫@樣調(diào)用模塊真的很方便,當(dāng)時(shí)有許多人為Apache服務(wù)器編寫模塊文件。
這一點(diǎn)跟Nginx就有很大的不同,Nginx如果需要添加第三方模塊,是要重新編譯的。

另外,Apache支持MPM。Multipath Processing Modules
一般可以叫作:多路處理模塊。
他有兩種較為常用的模式:
Prefork模式
我們可以拆開這個(gè)詞來理解他的特性,Pre-Fork。
Fork在英文里面其實(shí)就是產(chǎn)生子進(jìn)程的意思。
Pre在英文中常有預(yù)先的意思,例如Preview的意思則是預(yù)演。

Prefork模式的特點(diǎn)
在空閑時(shí)通過預(yù)先產(chǎn)生多個(gè)子進(jìn)程,通過進(jìn)程來接受用戶的請求。
一般認(rèn)為此種模式的好處有兩個(gè):
a.假如平時(shí)流量少,但有突如其來的并發(fā)請求,Prefork模式可以更好地應(yīng)對。
因?yàn)楸苊饬嗽陧憫?yīng)請求時(shí),為了加大響應(yīng)量再產(chǎn)生大量進(jìn)程,而對資源產(chǎn)生額外的開銷。
b.而在進(jìn)程因?yàn)槟承┰虮罎⒌臅r(shí)候,不會(huì)影響到其他的進(jìn)程。
注意:PHP一般都需要運(yùn)行在Prefork模式下。

Worker模式的特點(diǎn)
相對于Prefork模式,Worker模式也有使用子進(jìn)程的概念。
但是Worker的特色在于他在進(jìn)程內(nèi)部產(chǎn)生多個(gè)線程,使用線程來處理請求。
一般認(rèn)為worker模式的好處在于:
a.使用線程來響應(yīng),能夠接受更多的請求。
所以在并發(fā)的性能上,Worker模式的性能比Prefork模式更好。
b.使用線程,開銷比使用進(jìn)程要小。

但是相比較于Prefork模型,由于使用了線程,穩(wěn)定性不如Prefork。
因?yàn)楫?dāng)線程出現(xiàn)問題的時(shí)候,所在進(jìn)程也會(huì)受到影響。

由于Apache的網(wǎng)絡(luò)IO模型的原因,Prefork模式和Worker模式最多同時(shí)響應(yīng)1024個(gè)請求。

使用LAMP架設(shè)一個(gè)WordPress個(gè)人博客

這一次由于在單機(jī)上面操作,并沒有拓?fù)鋱D。
本文的實(shí)驗(yàn)中,系統(tǒng)使用CentOS7.1,數(shù)據(jù)庫:MariaDB-5.5.50
注意:實(shí)驗(yàn)中關(guān)閉了selinux,以及iptables。

(1)安裝LAMP具體的包

  [root@node3 ~]yum install httpd mariadb-server mariadb php php-mysql

httpd是Apache的程序名字。MariaDB-server負(fù)責(zé)MySQL的數(shù)據(jù)存儲(chǔ)
php組件用于解析php請求,php-mysql組件用于php于mariadb交互。

(2)啟動(dòng)Apache和MySQL服務(wù)并設(shè)置為開機(jī)啟動(dòng)。

  [root@node3 ~]# systemctl start mariadb.service
  [root@node3 ~]# systemctl start httpd.service
  [root@node3 ~]# systemctl enable mariadb.service
  [root@node3 ~]# systemctl enable httpd.service

(3)查看httpd是否正常運(yùn)行

Apache-test-page.jpg

當(dāng)什么網(wǎng)站都沒有的時(shí)候,在瀏覽器中輸入IP地址就會(huì)出現(xiàn)一個(gè)測試頁.
證明Apache運(yùn)行正常

(4)到官方網(wǎng)站下載WordPress,并解壓到特定目錄。
官方網(wǎng)站的下載地址很明顯,可以直接在機(jī)器上使用wget命令。

a.下載
[root@node3 ~]# wget https://wordpress.org/latest.tar.gz
--2016-12-11 15:56:17--  https://wordpress.org/latest.tar.gz
Resolving wordpress.org (wordpress.org)... 66.155.40.249, 66.155.40.250
Connecting to wordpress.org (wordpress.org)|66.155.40.249|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7993186 (7.6M) [application/octet-stream]
Saving to: ‘latest.tar.gz’

100%[======================================================>] 7,993,186   36.1KB/s   in 2m 36s 

b.解壓
[root@node3 ~]# tar xvf /root/latest.tar.gz -C /var/www/html/

(5)修改文件屬主

[root@node3 ~]# chown -R apache.apache /var/www/html/wordpress/
[root@node3 ~]# ll !$
ll /var/www/html/wordpress/
total 184
-rw-r--r--.  1 apache apache   418 Sep 25  2013 index.php
-rw-r--r--.  1 apache apache 19935 Mar  6  2016 license.txt
-rw-r--r--.  1 apache apache  7433 Dec  2 15:04 readme.html
-rw-r--r--.  1 apache apache  5447 Sep 28 05:36 wp-activate.php
drwxr-xr-x.  9 apache apache  4096 Dec  7 02:40 wp-admin
-rw-r--r--.  1 apache apache   364 Dec 19  2015 wp-blog-header.php
-rw-r--r--.  1 apache apache  1627 Aug 29 20:00 wp-comments-post.php
-rw-r--r--.  1 apache apache  2853 Dec 16  2015 wp-config-sample.php
drwxr-xr-x.  4 apache apache    49 Dec  7 02:40 wp-content
-rw-r--r--.  1 apache apache  3286 May 25  2015 wp-cron.php
drwxr-xr-x. 18 apache apache  8192 Dec  7 02:40 wp-includes
-rw-r--r--.  1 apache apache  2422 Nov 21 10:46 wp-links-opml.php
-rw-r--r--.  1 apache apache  3301 Oct 25 11:15 wp-load.php
-rw-r--r--.  1 apache apache 33939 Nov 21 10:46 wp-login.php
-rw-r--r--.  1 apache apache  7841 Nov 21 10:46 wp-mail.php
-rw-r--r--.  1 apache apache 16250 Nov 29 13:39 wp-settings.php
-rw-r--r--.  1 apache apache 29896 Oct 19 12:47 wp-signup.php
-rw-r--r--.  1 apache apache  4513 Oct 15 03:39 wp-trackback.php
-rw-r--r--.  1 apache apache  3065 Sep  1 00:31 xmlrpc.php

因?yàn)閔ttpd.conf中定義了用戶和組,所以需要將網(wǎng)站文件的屬主屬組都改為對應(yīng)用戶``默認(rèn)都是apache

(6)數(shù)據(jù)庫創(chuàng)建一個(gè)數(shù)據(jù)庫,并授權(quán)一個(gè)用戶。

[root@node3 ~]# mysql 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.50-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database wordpress;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on wordpress.* to 'wordpress'@'%' identified by 'wordpress';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> 

(7)修改httpd的配置文件,將網(wǎng)站設(shè)置為虛擬主機(jī)。

<VirtualHost *:80>
    DocumentRoot /var/www/html/wordpress/
    ServerName node3.bc.com
    ErrorLog "/var/log/httpd/node3-err_log"
    CustomLog "/var/log/httpd/node3-access_log" common
</VirtualHost>

(8)圖形化界面,設(shè)置mysql地址,主機(jī)地址和密碼。
有兩種方式,任選其一。
a.直接配置安裝wordpress。
配置文件在網(wǎng)站根目錄下,此處為/var/www/html/wordpress/wp-config.php

vim /var/www/html/wordpress/wp-config.php
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress');

/** MySQL database username */
define('DB_USER', 'wordpress');

/** MySQL database password */
define('DB_PASSWORD', 'wordpress');

/** MySQL hostname */
define('DB_HOST', '192.168.2.203');

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8mb4');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

b.也可以直接在瀏覽器上面訪問主機(jī)地址

選擇語言
準(zhǔn)備開始!
設(shè)置剛才設(shè)置的數(shù)據(jù)庫和用戶
正常使用!

至此,我們已經(jīng)成功地安裝LAMP并架設(shè)了一個(gè)十分常用的個(gè)人博客。
下一篇文章,我們將會(huì)比較Apache和Nginx,并用Nginx搭建一個(gè)phpMyAdmin。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、LAMP環(huán)境的介紹 1.LAMP環(huán)境的重要性 思索許久,最終還是決定寫一篇詳細(xì)的LAMP的源碼編譯安裝的實(shí)驗(yàn)文...
    endmoon閱讀 2,877評論 4 26
  • 1.LAMP介紹 ? LAM(M)P:L: linuxA: apache (httpd)M: mysql, mar...
    尛尛大尹閱讀 1,237評論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,544評論 19 139
  • 上一篇《WEB請求處理一:瀏覽器請求發(fā)起處理》,我們講述了瀏覽器端請求發(fā)起過程,通過DNS域名解析服務(wù)器IP,并建...
    七寸知架構(gòu)閱讀 81,750評論 21 356
  • >要在人的必死性方面謀求共識(shí),并以生命尊嚴(yán)和保持有意義生活作為生存追求,醫(yī)患雙方都面臨著學(xué)習(xí)的任務(wù)?!D?葛文...
    二耳來了閱讀 953評論 0 5

友情鏈接更多精彩內(nèi)容