lamp源码搭建详解及wordpress搭建

Posted 小凡it故事

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lamp源码搭建详解及wordpress搭建相关的知识,希望对你有一定的参考价值。

LAMP架构

LAMP 概述

  • Linux下LAMP( Linux+ Apache+My SQL/ MariaDB+PerI /php/ Python)是一组用来搭建动态网站的开源软件架构,本身是各自独立的软件服务,放在一起使用,拥有了越来越兼容成大的Web应用程序平台。
  • 本章向读者介绍互联网主流企业架构LAMP应用案例、PHP解释性语言详解、LAMP组合通信原理、LAMP企业源码架设、LAMP拓展及使用 Redis提升LAMP性能优化等。
  • 随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个T界的关注。LAMP架构受到大多数中小企业的运维、DBA、程序员的青睐, Apache默认只能发布静态网页,而LAMP组合可以发布静态+PHP动态页面
  • 静态页面通常指不与数据库发生交互的页画,是一种基于w3c规范的一种网页书写
    格式,是一种统一协议语言,所以称之为静态网页。静态页面被设计好之后,一般很少
    去修改,不随着浏览器参数改变而内容改变,需注意的是动态的图片也是属于静态文件。从SE0角度来讲,html页面更有利于搜索引擎的爬行和收录。常见的静态页面以.html、.gif、.jpg、.jpeg、.bmp、,png、.ico、TXT、,js、,css等结尾。
  • 动态页面通常指与数据库发生交互的页面,内容展示丰富,功能非常强大,实用性
    广。从SE0角度来讲,搜索引擎很难全面的爬行和收录动态网页,因为动态网页会随着
    的更新、参数的变更而发生改变,常见以.jsp、.php、.do、.asp、.cgi、.apsx等结尾。
  • LAMP企业主流架构最重要的三个环节,一是 Apache WEB服务器,二是PHP(PHP Hypertext Preprocessor),三是MYSL数据库
    Apache WEB服务器主要是基于多模块工作,依赖 PHP SAP处理方式中的PHP_ MODULE
    去解析PHP结尾的文件

实验环境

操作系统IP地址
CentOS 7.4192.198.10.11

实验步骤

Apache 源码安装

Apache源码安装

mysql 源码安装

Mysql源码安装

PHP源码安装

  • 下载安装包

    • 下载地址:http://mirrors.sohu.com
  • 解压安装包

    [root@localhost lamp]# tar xf php-5.3.28.tar.bz2 
    [root@localhost lamp]# ls
    apache  httpd-2.2.20  mysql  mysql-5.5.20  mysql-5.5.20.tar.gz  php-5.3.28  php-5.3.28.tar.bz2
    [root@localhost lamp]# cd php-5.3.28
    
  • 预编译、编译、安装

    [root@localhost php-5.3.28]# ./configure --prefix=/usr/local/lamp/php5 --with-config-file-path=/usr/local/lamp/php5/etc --with-apxs2=/usr/local/lamp/apache/bin/apxs --with-mysql=/usr/local/lamp/mysql
    
    [root@localhost php-5.3.28]# make -j4 &&make install -j4
    
    
  • 整合lamp

    整合Apache+php环境,修改httpd.conf配置文件,然后加入如下语句:
    LoadModule     php5_module modules/libphp5.so (默认已存在)
    AddType     application/x-httpd-php  .php
    DirectoryIndex  index.php index.html (把index.php加入index.html之前)
    
    
  • 测试:

搭建WordPress

  • 下载wordpress

    [root@localhost ~]# wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
    --2021-05-23 15:57:24--  https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
    Resolving cn.wordpress.org (cn.wordpress.org)... 198.143.164.252
    Connecting to cn.wordpress.org (cn.wordpress.org)|198.143.164.252|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 9082696 (8.7M) [application/octet-stream]
    Saving to: ‘wordpress-4.9.4-zh_CN.tar.gz’
    
    78% [====================================>          ] 7,167,579   12.7KB/s  eta 16s     100%[==============================================>] 9,082,696    304KB/s   in 75s    
    
    2021-05-23 15:58:41 (118 KB/s) - ‘wordpress-4.9.4-zh_CN.tar.gz’ saved [9082696/9082696]
    
    [root@localhost ~]# 
    
  • 解压

    [root@localhost ~]# tar xf wordpress-4.9.4-zh_CN.tar.gz -C /usr/local/lamp/
    [root@localhost ~]#/usr/local/lamp/apache/htdocs
    
  • 创建WordPress 站点目录,给权限

    [root@localhost lamp]# mv wordpress apache/htdocs/
    [root@localhost htdocs]# ls
    index.html  index.php  worldpress
    [root@localhost htdocs]# chmod 755 -R /usr/local/lamp/apache/htdocs/worldpress/
    
  • 重启apache 服务

    [root@localhost htdocs]# cd ~
    [root@localhost ~]# apachectl restart
    
  • 在mysql数据库中输入以下命令

    MYSQL数据库命令行中创建PHP连接MYSQL的用户及密码,命令如下:
    create database wordpress charset=utf8;
    grant all on wordpress.* to root@'localhost' identified by "123456";
    
  • web界面安装

  • 手动创建:

    [root@localhost worldpress]# touch wp-config.php
    [root@localhost worldpress]# cat wp-config.php 
    <?php
    /**
     * WordPress基础配置文件。
     *
     * 这个文件被安装程序用于自动生成wp-config.php配置文件,
     * 您可以不使用网站,您需要手动复制这个文件,
     * 并重命名为“wp-config.php”,然后填入相关信息。
     *
     * 本文件包含以下配置选项:
     *
     * * MySQL设置
     * * 密钥
     * * 数据库表名前缀
     * * ABSPATH
     *
     * @link https://codex.wordpress.org/zh-cn:%E7%BC%96%E8%BE%91_wp-config.php
     *
     * @package WordPress
     */
    
    // ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
    /** WordPress数据库的名称 */
    define('DB_NAME', 'wordpress');
    
    /** MySQL数据库用户名 */
    define('DB_USER', 'root');
    
    /** MySQL数据库密码 */
    define('DB_PASSWORD', '123456');
    
    /** MySQL主机 */
    define('DB_HOST', 'localhost');
    
    /** 创建数据表时默认的文字编码 */
    define('DB_CHARSET', 'utf8mb4');
    
    /** 数据库整理类型。如不确定请勿更改 */
    define('DB_COLLATE', '');
    
    /**#@+
     * 身份认证密钥与盐。
     *
     * 修改为任意独一无二的字串!
     * 或者直接访问{@link https://api.wordpress.org/secret-key/1.1/salt/
     * WordPress.org密钥生成服务}
     * 任何修改都会导致所有cookies失效,所有用户将必须重新登录。
     *
     * @since 2.6.0
     */
    define('AUTH_KEY',         'DU`87M5j>d{SZ6Q#;x%Q!wSI`q`Lq&s1ic<XkHt1!&mvZBXskL.H4ll[5Gfw%=Z6');
    define('SECURE_AUTH_KEY',  '+W}ga5|t^dtEu>wmm8`]eArF-YNhn)PM(]O;[5=yacK2BQfE$x;TbrqRQF(<jMR/');
    define('LOGGED_IN_KEY',    'd<#Bf?oYu`qI7.?.YY^p7mlNHzo9Qn23FE 4>qCnp3[ZP>g4`K{mF=v~3^@BQ3h2');
    define('NONCE_KEY',        'rL7T3R>V.Gg#zwV?2X{gSce?9&Z[qv!Q9#heis/ky;)V?L[xsfaUhI]PS8Q(`Om7');
    define('AUTH_SALT',        'qw8x 0X[zY4fbP9/dX/U546sG:8I?]7 /0uc+w?sfv&xaEX>`SGbO^AS6`cM2mLd');
    define('SECURE_AUTH_SALT', 'xbUiB;T9`A-cHSgZI-J?*iYDoG:m:Kv%?7MNBZA$u Jo[Sl<-b,IfIV)B25x(rl&');
    define('LOGGED_IN_SALT',   'T8[-d:1ed@&%kL?9W$SAohu`VF)BkyeWqqiOFv dV/ByNu!4LV;_UMYoS/qb*Dv*');
    define('NONCE_SALT',       'PjWbKg~|-<]^8-A:MRG*j`o94*+9)i]:(SbnBSMSOCAV 9(m&kUF5^MV$*<r9]/W');
    
    /**#@-*/
    
    /**
     * WordPress数据表前缀。
     *
     * 如果您有在同一数据库内安装多个WordPress的需求,请为每个WordPress设置
     * 不同的数据表前缀。前缀名只能为数字、字母加下划线。
     */
    $table_prefix  = 'wp_';
    
    /**
     * 开发者专用:WordPress调试模式。
     *
     * 将这个值改为true,WordPress将显示所有用于开发的提示。
     * 强烈建议插件开发者在开发环境中启用WP_DEBUG。
     *
     * 要获取其他能用于调试的信息,请访问Codex。
     *
     * @link https://codex.wordpress.org/Debugging_in_WordPress
     */
    define('WP_DEBUG', false);
    
    /**
     * zh_CN本地化设置:启用ICP备案号显示
     *
     * 可在设置→常规中修改。
     * 如需禁用,请移除或注释掉本行。
     */
    define('WP_ZH_CN_ICP_NUM', true);
    
    /* 好了!请不要再继续编辑。请保存本文件。使用愉快! */
    
    /** WordPress目录的绝对路径。 */
    if ( !defined('ABSPATH') )
            define('ABSPATH', dirname(__FILE__) . '/');
    
    /** 设置WordPress变量和包含文件。 */
    require_once(ABSPATH . 'wp-settings.php');
    
    [root@localhost worldpress]# 
    

  • 测试:

LAMP 架构优化

当我们把LAMP架构配置好后,如何让服务器承担更大的访问量呢?今天我们将一起来学习LAMP如何来优化。

  • 优化PHP服务器
eAccelerator、APC、Xcache、ZEND属于一个免费的开源php加速、优化、编译和动态缓存项目,原理和apc类似,都是通过缓存php编译后的opcode代码来提高php脚本的执行性能。
目前最新的版本下载地址:
https://codeload.github.com/eaccelerator/eaccelerator/legacy.tar.gz/master 
tar -xzf master ;cd 
eaccelerator-eaccelerator-42067ac/;phpize ;./configure --enable-eaccelerator=shared --with-php-config=/usr/bin/php-config
make && make install

  • 然后在/etc/php.ini末尾加入如下代码:
extension="/usr/lib64/php/modules/eaccelerator.so"
eaccelerator.shm_size="64"
eaccelerator.cache_dir="/data/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
  • 如上参数的解释:
eaccelerator.shm_size
指定 eAccelerator 能够使用的共享内存数量,单位:MB。
"0" 代表操作系统默认,默认值为 "0",一般设置为64128
eaccelerator.cache_dir
用户磁盘缓存的目录。eAccelerator 在该目录中存储预编译代码、session 数据、内容等。相同的数据也可以存储于共享内存中(以获得更快的存取速度)。默认值为 "/tmp/eaccelerator"
eaccelerator.enable
开启或关闭 eAccelerator。"1" 为开启,"0" 为关闭。默认值为 "1"
eaccelerator.optimizer
开启或关闭内部优化器,可以提升代码执行速度。"1" 为开启,"0" 为关闭。默认值为 "1"
eaccelerator.debug
开启或关闭调试日志记录。"1" 为开启,"0" 为关闭。默认值为 "0"
eaccelerator.check_mtime
开启或关闭 PHP 文件改动检查。"1" 为开启,"0" 为关闭。如果您想要在修改后重新编译 PHP程序则需要设置为 "1"。默认值为 "1"
eaccelerator.filter
判断哪些 PHP 文件必须缓存。您可以指定缓存和不缓存的文件类型(如 "*.php *.phtml"等),如果参数以 "!" 开头,则匹配这些参数的文件被忽略缓存。默认值为 "",即,所有 PHP 文件都将被缓存。
eaccelerator.shm_max
当使用 " eaccelerator_put() " 函数时禁止其向共享内存中存储过大的文件。该参数指定允许存储的最大值,单位:字节 (10240, 10K, 1M)"0" 为不限制。默认值为 "0"
eaccelerator.shm_ttl
 eAccelerator 获取新脚本的共享内存大小失败时,它将从共享内存中删除所有在最后 "shm_ttl" 秒内无法存取的脚本缓存。默认值为 "0",即:不从共享内春中删除任何缓存文件。
eaccelerator.shm_prune_period
 eAccelerator 获取新脚本的共享内存大小失败时,他将试图从共享内存中删除早于"shm_prune_period" 秒的缓存脚本。默认值为 "0",即:不从共享内春中删除任何缓存文件。
eaccelerator.shm_only
允许或禁止将已编译脚本缓存在磁盘上。该选项对 session 数据和内容缓存无效。默认值为 "0",即:使用磁盘和共享内存进行缓存。
eaccelerator.compress
允许或禁止压缩内容缓存。默认值为 "1",即:允许压缩。
eaccelerator.compress_level
指定内容缓存的压缩等级。默认值为 "9",为最高等级。

以上是关于lamp源码搭建详解及wordpress搭建的主要内容,如果未能解决你的问题,请参考以下文章

Web服务器群集——源码部署搭建LAMP平台上线wordpress博客上线

linux架构学习第二十六天之LAMP架构原理及搭建详解

LAMP两种模式

使用Aliyun阿里云ECS云服务器及宝塔安装LAMP环境并搭建WordPress博客

LAMP架构搭建以及基于LAMP架构的主流论坛和博客搭建过程详解

使用Aliyun阿里云ECS云服务器及宝塔安装LAMP环境并搭建WordPress博客