CentOS7安装经典web架构:LAMP

LAMP是什么?

LAMP,也就是Linux-Apache-MySQL-PHP的简称。
这里我们需要了解两个概念,静态资源动态资源
静态资源一般是用HTML编写的网页,实际上是一个文本文件。
静态内容通过浏览器的辅助而展示出我们所看到的网站的内容。如网站布局等。
动态资源则是需要特定的解释器翻译之后,通过服务器运行,最后返回给用户的结果。
在访问一个PHP网站时,假如我们需要登录账号,这部分则是由PHP完成,而账号密码则保存在MySQL里面。
假如用户在php网站请求登录,请求顺序是这样的:

Apache-PHP-MySQL是这样协作的

Apache有什么特色?

其实我们可以从他的名字中来理解他的一个最经典的特性。

Apache,原意为A Patchy Server。
意思是,一个打补丁、拼凑而成的服务器。
他主要的特点,就是支持DSO。Dynamic Shared Object
意思就是动态加载模块的意思。
配置文件中通过加入LoadModule <模块名字> <模块路径>来调用模块。
因为这样调用模块真的很方便,当时有许多人为Apache服务器编写模块文件。
这一点跟Nginx就有很大的不同,Nginx如果需要添加第三方模块,是要重新编译的。

另外,Apache支持MPM。Multipath Processing Modules
一般可以叫作:多路处理模块。
他有两种较为常用的模式:
Prefork模式
我们可以拆开这个词来理解他的特性,Pre-Fork。
Fork在英文里面其实就是产生子进程的意思。
Pre在英文中常有预先的意思,例如Preview的意思则是预演。

Prefork模式的特点
在空闲时通过预先产生多个子进程,通过进程来接受用户的请求。
一般认为此种模式的好处有两个:
a.假如平时流量少,但有突如其来的并发请求,Prefork模式可以更好地应对。
因为避免了在响应请求时,为了加大响应量再产生大量进程,而对资源产生额外的开销。
b.而在进程因为某些原因崩溃的时候,不会影响到其他的进程。
注意:PHP一般都需要运行在Prefork模式下。

Worker模式的特点
相对于Prefork模式,Worker模式也有使用子进程的概念。
但是Worker的特色在于他在进程内部产生多个线程,使用线程来处理请求。
一般认为worker模式的好处在于:
a.使用线程来响应,能够接受更多的请求。
所以在并发的性能上,Worker模式的性能比Prefork模式更好。
b.使用线程,开销比使用进程要小。

但是相比较于Prefork模型,由于使用了线程,稳定性不如Prefork。
因为当线程出现问题的时候,所在进程也会受到影响。

由于Apache的网络IO模型的原因,Prefork模式和Worker模式最多同时响应1024个请求。

使用LAMP架设一个WordPress个人博客

这一次由于在单机上面操作,并没有拓扑图。
本文的实验中,系统使用CentOS7.1,数据库:MariaDB-5.5.50
注意:实验中关闭了selinux,以及iptables。

(1)安装LAMP具体的包

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

httpd是Apache的程序名字。MariaDB-server负责MySQL的数据存储
php组件用于解析php请求,php-mysql组件用于php于mariadb交互。

(2)启动Apache和MySQL服务并设置为开机启动。

  [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是否正常运行

Apache-test-page.jpg

当什么网站都没有的时候,在浏览器中输入IP地址就会出现一个测试页.
证明Apache运行正常

(4)到官方网站下载WordPress,并解压到特定目录。
官方网站的下载地址很明显,可以直接在机器上使用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

因为httpd.conf中定义了用户和组,所以需要将网站文件的属主属组都改为对应用户``默认都是apache

(6)数据库创建一个数据库,并授权一个用户。

[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的配置文件,将网站设置为虚拟主机。

<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)图形化界面,设置mysql地址,主机地址和密码。
有两种方式,任选其一。
a.直接配置安装wordpress。
配置文件在网站根目录下,此处为/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.也可以直接在浏览器上面访问主机地址

选择语言
准备开始!
设置刚才设置的数据库和用户
正常使用!

至此,我们已经成功地安装LAMP并架设了一个十分常用的个人博客。
下一篇文章,我们将会比较Apache和Nginx,并用Nginx搭建一个phpMyAdmin。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 223,652评论 6 521
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 95,678评论 3 401
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 170,645评论 0 366
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 60,483评论 1 300
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 69,503评论 6 399
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 53,039评论 1 314
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 41,420评论 3 427
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 40,391评论 0 278
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,921评论 1 322
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,973评论 3 343
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 41,114评论 1 354
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,761评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,437评论 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,928评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 34,042评论 1 275
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 49,596评论 3 380
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 46,142评论 2 363

推荐阅读更多精彩内容

  • 1. Nginx的模块与工作原理 Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单...
    rosekissyou阅读 10,222评论 5 124
  • 一、LAMP环境的介绍 1.LAMP环境的重要性 思索许久,最终还是决定写一篇详细的LAMP的源码编译安装的实验文...
    endmoon阅读 2,628评论 4 26
  • 1.LAMP介绍  LAM(M)P:L: linuxA: apache (httpd)M: mysql, mar...
    尛尛大尹阅读 1,058评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,727评论 18 139
  • 上一篇《WEB请求处理一:浏览器请求发起处理》,我们讲述了浏览器端请求发起过程,通过DNS域名解析服务器IP,并建...
    七寸知架构阅读 81,050评论 21 356