美文网首页
CentOS7安装经典web架构:LAMP

CentOS7安装经典web架构:LAMP

作者: 酱油菠菜 | 来源:发表于2016-12-13 12:19 被阅读1334次

    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。

    相关文章

      网友评论

          本文标题:CentOS7安装经典web架构:LAMP

          本文链接:https://www.haomeiwen.com/subject/ephpmttx.html