lamp源码搭建详解及wordpress搭建

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Linux下LAMP( Linux+ Apache+My SQL/ MariaDB+PerI /PHP/ Python)是一组用来搭建动态网站的开源软件架构,本身是各自独立的软件服务,放在一起使用,拥有了越来越兼容成大的Web应用程序平台。

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结尾的文件


实验环境


image.png


实验步骤


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之前)


  • 测试:


image.png


搭建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界面安装


image.png


image.png


  • 手动创建:


[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]# 


image.png


image.png


  • 测试:


image.png


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",一般设置为64或128。
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",为最高等级。


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
PHP SEO
WordPress博客每日定时发布 每天60秒读懂世界源码
WordPress博客每日定时发布 每天60秒读懂世界源码
65 0
WordPress博客每日定时发布 每天60秒读懂世界源码
|
5月前
WordPress插件介绍页源码单页Html源码
WordPress插件介绍页源码单页Html源码
77 2
WordPress插件介绍页源码单页Html源码
樱花猫wordpress开源免费主题源码
借用制作者的原话,这个主题Sakura是在 Louie 基于 Fuzzz 的 Akina 主题修改的主题 Siren 基础上三次修改
322 0
樱花猫wordpress开源免费主题源码
|
弹性计算 关系型数据库 MySQL
基于 ECS+ CentOS,部署 LAMP环境并安装 WordPress 快速搭建个人博客
基于 ECS+ CentOS,部署 LAMP环境并安装 WordPress 快速搭建个人博客
544 0
|
关系型数据库 MySQL Linux
CentOS7.2基于LAMP搭建WordPress,并自定义Logo和名称
CentOS7.2基于LAMP搭建WordPress,并自定义Logo和名称
761 0
CentOS7.2基于LAMP搭建WordPress,并自定义Logo和名称
|
运维 关系型数据库 应用服务中间件
【运维】源码编译安装 lnmp环境+wordpress部署
【运维】源码编译安装 lnmp环境+wordpress部署
500 0
【运维】源码编译安装 lnmp环境+wordpress部署
|
关系型数据库 MySQL Linux
RedHat7.4 Yum环境下搭建LAMP实现库站分离(部署wordpress博客)
RedHat7.4 Yum环境下搭建LAMP实现库站分离(部署wordpress博客)
205 0
RedHat7.4 Yum环境下搭建LAMP实现库站分离(部署wordpress博客)
|
前端开发 关系型数据库 MySQL
Linux7通过LAMP环境构搭建WordPress论坛
WordPress是什么? WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把 WordPress当作一个内容管理系统(CMS)来使用。 WordPress是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用PHP语言和MySQL数据库开发的,用户可以在支持 PHP 和 MySQL数据库的服务器上使用自己的博客。 WordPress有许多第三方开发的免费模板,安装方式简单易用。不过要做一个自己的模板,则需要你有一定的专业知识。比如你至少要懂的标准通用标记语言下的一个应用HTML代码、CSS、PHP等相关知识
168 0
|
缓存 应用服务中间件 Linux
WordPress网站选择LNMP环境和LAMP环境哪个好?
WordPress建网站选择LNMP环境还是LAMP环境服务更好呢?现在建站常用的两大环境服务是 LNMP和LAMP,因为这两种环境易用,好上手,所以普及率一直很高。比如我们常用的宝塔面板,在初次登陆界面就会提示二选一。要想知道哪个好用,我们先来详细了解这两款环境服务。
1571 0
WordPress网站选择LNMP环境和LAMP环境哪个好?
|
弹性计算 缓存 应用服务中间件
WordPress建站选择LNMP环境还是LAMP环境?
WordPress建网站选择LNMP环境还是LAMP环境服务更好呢?现在建站常用的两大环境服务是 LNMP和LAMP,因为这两种环境易用,好上手,所以普及率一直很高。比如我们常用的宝塔面板,在初次登陆界面就会提示二选一。要想知道哪个好用,我们先来详细了解这两款环境服务。