阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS7安装经典Web架构:LAMP

167次阅读
没有评论

共计 5818 个字符,预计需要花费 15 分钟才能阅读完成。

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。见 http://www.linuxidc.com/Linux/2017-10/147556.htm

下面关于 LAMP 相关 的内容你可能也喜欢

LAMP 平台安装 Xcache 和 Memcached 加速网站运行  http://www.linuxidc.com/Linux/2015-06/118835.htm

CentOS 7 下搭建 LAMP 平台环境  http://www.linuxidc.com/Linux/2015-06/118818.htm

CentOS 7.3 下配置 LAMP 实现 WordPress  http://www.linuxidc.com/Linux/2017-07/145947.htm

Ubuntu 14.04 配置 LAMP+phpMyAdmin PHP(5.5.9)开发环境  http://www.linuxidc.com/Linux/2014-10/107924.htm

LAMP 结合 NFS 构建小型博客站点  http://www.linuxidc.com/Linux/2015-08/121029.htm

CentOS7 下安装部署 LAMP 环境  http://www.linuxidc.com/Linux/2016-04/130653.htm

CentOS 7 上安装(LAMP)服务 Linux,Apache,MySQL,PHP  http://www.linuxidc.com/Linux/2017-05/143868.htm

Ubuntu Server 14.04 LTS 下搭建 LAMP 环境图文详解  http://www.linuxidc.com/Linux/2016-12/138758.htm

Ubuntu Server 16.04 下配置 LAMP 环境 http://www.linuxidc.com/Linux/2016-12/138757.htm

在 Ubuntu 17.04 上安装搭建 LAMP 组件环境  http://www.linuxidc.com/Linux/2017-07/145644.htm

CentOS 6.7 编译安装 LAMP 详解 http://www.linuxidc.com/Linux/2017-03/141244.htm

Ubuntu 16.04 搭建 LAMP 开发环境 http://www.linuxidc.com/Linux/2016-10/136327.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-10/147599.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计5818字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中