centos7.3实现基于源码编译安装LAMP的wordpress应用

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
日志服务 SLS,月写入数据量 50GB 1个月
简介:

WordPress应用

   是一款基于PHP开发的博客发布平台。用户可以在支持PHP和MySql的系统上,轻松地搭建WordPress博客系统,并在上面发布自己的博客文章。

   关于LAMP,之前的文章中已经有过很多的介绍,感兴趣的朋友可以去查看我之前的文章。

   今天我们直接介绍,如何直接源码编译安装LAMP,并且在配置好环境的系统上部署WordPress应用。

环境准备

  • 软件环境

首先我们需要准备安装 LAMP所需要的一些软件环境。可以到相关的网站上去下载源码包。

[root@localhost src]#ls
apr-1.6.2.tar.gz       httpd-2.4.27.tar.bz2                php-7.1.10.tar.xz
apr-util-1.6.0.tar.gz  mariadb-10.2.8-linux-x86_64.tar.gz  wordpress-4.8-zh_CN.tar.gz

  • 安装开发包组

因为我们这个实验是需要通过大量的编译来安装相关的软件,所以需要对实验环境提前安装开发包组。
执行 yum groupinstall "development tools"就可以安装开发包组。

  • 硬件环境

实验过程中,为了尽可能地模仿实际生产环境,我们使用两台虚拟机来进行实验。一台虚拟机负责安装 Apache+PHP+WordPress,另一台虚拟机安装MariaDB,用来提供数据库服务。

源码编译安装HTTP-2.4

在之前的文章中,我们曾经介绍过如何在CentOS 6 上编译安装HTTPD 2.4,所以这里我们也是只列出关键步骤,不做详细解释。

  • 解压源码文件

# 源码文件的存放路径
[root@localhost src]#pwd
/usr/local/src
[root@localhost src]#tar xvf apr-1.6.2.tar.gz 
[root@localhost src]#tar xvf apr-util-1.6.0.tar.gz 
[root@localhost src]#tar xvf httpd-2.4.27.tar.bz2 
  • 将apr和apr-util复制到http目录下

这样做的目的是编译httpd的时候直接指定apr和apr-util的路径就可以。


[root@localhost src]#cp -r apr-1.6.2  httpd-2.4.27/srclib/apr
[root@localhost src]#cp -r apr-util-1.6.0  httpd-2.4.27/srclib/apr-util
  • 安装所需要的额外的软件包


[root@localhost src]#yum install openssl-devel expat-devel pcre-devel
  • 编译HTTPD

# 进入到http 源码目录下
[root@localhost src]#cd httpd-2.4.27/ 

# 配置Httpd编译选项
[root@localhost httpd-2.4.27]#./configure \
> --prefix=/app/httpd24 \
> --sysconfdir=/etc/httpd24 \
> --enable-so \
> --enable-ssl \
> --enable-rewrite \
> --with-zlib \
> --with-pcre \
> --with-included-apr \
> --enable-modules=most \
> --enable-mpms-shared=all \
> --with-mpm=prefork

# 进行安装
[root@localhost httpd-2.4.27]#make -j 2 && make install 
  • 将命令选项添加到环境变量

/etc/profile.d/目录下,新建一个lamp.sh 的shell脚本文件,然后将安装好的httpd路径添加到环境变量中。


# 安装好的程序添加到环境变量中
[root@localhost profile.d]#echo 'PATH=/app/httpd24/bin/:$PATH' > lamp.sh 

# 使环境变量生效  
[root@localhost profile.d]# .  lamp.sh


# 启动httpd 服务
[root@localhost profile.d]#apachectl start  

二进制安装MariaDB

  • 解压二进制文件

切换到第二台主机上,将mariadb的二进制源码文件下载下来。
回到 /usr/local/src/路径下,解压mariadb到 /usr/local/ 目录下,并创建mysql 软连接

# 解压mysql 到指定路径
[root@localhost local]#tar xvf mariadb-10.2.8-linux-x86_64.tar.gz  -C /usr/local/

# 创建软连接 
[root@localhost local]#ln -s mariadb-10.2.8-linux-x86_64/ mysql

  • 创建用户,并指定MySQL数据库文件存储路径


# 创建 用户,并创建用户的家目录  同时指定数据库文件的存储路径
[root@localhost local]#useradd -r -m -d /app/mysqldb -s /sbin/nologin mysql 

  • 创建数据库文件

进入到刚刚创建的mysql 路径,利用mysql自带的脚本文件,创建数据库


[root@localhost mysql]#scripts/mysql_install_db --datadir=/app/mysqldb --user=mysql

  • 创建mysql的配置文件,并修改文件内容


# 创建mysql 的配置文件路径
[root@localhost mysql]#mkdir /etc/mysql

# 根据官方提供的mysql的配置文件模板来进行配置
[root@localhost mysql]#cp support-files/my-large.cnf  /etc/mysql/my.cnf

配置文件创建成功之后,需要配置文件内容进行修改 ,而且要注意,不能写错,一旦出错,mysql就启动不了了,如下图所示。

mysql配置

  • 创建mysql的启动脚本并添加到开机启动

与配置文件一样,可以直接根据安装文件提供的脚本,复制过来。


# 直接参考 mysql.server 这个脚本
[root@localhost mysql]#cp support-files/mysql.server  /etc/init.d/mysqld

# 将mysql 服务添加到开机启动 
[root@localhost mysql]#chkconfig --add mysqld

此时如果启动mysqld 服务的话,会提示出错,也是mysql的日志文件还没有创建。可以根据提示信息创建日志文件。

  • 创建mysql的日志文件


# 创建日志文件路径
[root@localhost mysql]#mkdir /var/log/mariadb

# 修改日志文件路径的权限,以便mysql数据库能够创建日志文件
[root@localhost mysql]#chown mysql /var/log/mariadb/  

# 启动mysql 服务
[root@localhost mysql]#service mysqld start

  • 添加mysql的环境变量

同样的,也是在/etc/profile.d/路径下创建一个lamp.sh文件,将mysql的变量添加进去。


# 因为我们的mysql是安装在另外一台主机上的,所以这里环境变量内容,没有httpd的。
[root@localhost profile.d]#echo 'PATH=/usr/local/mysql/bin/:$PATH' > lamp.sh 

# 使环境变量生效  
[root@localhost profile.d]# .  lamp.sh

  • 进行mysql的安全初始化,删除测试库,删除匿名用户

这个过程在之前介绍如何安装MariaDB的文章中已经有所介绍,所以这里就不详细介绍了,我们直接执行命令,然后进行安全初始化。

# 执行mysql 的安全初始化的脚本
[root@localhost mysql]#mysql_secure_installation 
  • 创建WordPress的应用数据库以及用户,并给用户赋权限


# 允许172网段的主机通过root用户链接mysql 
grant all on *.* to root@'172.%' identified by 'centos';


# 创建wpdb用来给wordpress使用
create database wpdb;
grant all on wpdb.* to wpuser@'172.%' identified by 'centos';
grant all on wpdb.* to wpuser@'localhost' identified by 'centos';

源码编译安装php

这里有一些地方需要注意,编译安装PHP的时候,PHP-5.X 和PHP-7.X 版本不一样,编译选项也有一些不一致。

切换回之前安装HTTPD 的主机,切换到源码路径下。

  • 安装缺少的包,解压PHP源文件



# 加压PHP源码包
[root@localhost src]# tar xvf php-7.1.10.tar.xz

# 安装编译PHP源码时所需要的包  
[root@localhost src]# yum install libxml2-devel bzip2-devel libmcrypt-devel 
  • 配置PHP的编译选项,并进行安装


# 这里有一点要注意在PHP 5.x 的版本中是不存在 --enable-mysqlnd  这个选项的,相反,使用了mysql路径来指定

[root@localhost php-7.1.10]#./configure \
> --prefix=/app/php \
> --enable-mysqlnd \
> --with-mysqli=mysqlnd \
> --with-openssl \
> --with-pdo-mysql=mysqlnd \
> --enable-mbstring \
> --with-freetype-dir \
> --with-jpeg-dir \
> --with-png-dir \
> --with-zlib \
> --with-libxml-dir=/usr \
> --enable-xml \
> --enable-sockets \
> --with-apxs2=/app/httpd24/bin/apxs \
> --with-mcrypt \
> --with-config-file-path=/etc \
> --with-config-file-scan-dir=/etc/php.d \
> --enable-maintainer-zts \
> --disable-fileinfo


# 进行编译安装
[root@localhost php-7.1.10]#make -j 2 && make install 
  • 准备PHP的配置文件

在解压的目录下面,有一php配置文件的模板。 我们可以直接参考。

php配置参考


# 直接参考PHP的配置文件
[root@localhost php-7.1.10]#cp php.ini-production /etc/php.ini

  • 给Httpd配置文件添加支持PHP的MIME类型

在之前安装的HTTPD的配置文件中,添加 MIME类型,同时修改主页,支持PHP。
同时修改默认注解的支持类型,使其支持PHP文件。

PHP的MIME配置

测试PHP程序与数据库的链接

PHP程序配置结束之后,重新启动httpd服务。同时在httpd主页所在的目录下添加一个index.php文件。

# 因为我们是手动安装httpd的服务,所以主页目录位于我们指定的httpd安装路径下。

[root@localhost htdocs]#pwd
/app/httpd24/htdocs

# 下面这段代码用来测试PHP是否能够成功链接数据库
[root@localhost htdocs]#cat index.php 
<?php
$mysqli=new mysqli("172.18.2.77","root","centos");
if(mysqli_connect_errno()){
echo "连接数据库失败!";
$mysqli=null;
exit;
}
echo "连接数据库成功!";
$mysqli->close();
phpinfo();
?>

链接成功的界面如下图所示。

php 链接数据库

配置WordPress

  • 解压WordPress源码到HTTPD网站目录下

将WordPress源码解压到HTTPD网站目录/app/httpd24/htdocs/


[root@localhost src]#tar xvf wordpress-4.8-zh_CN.tar.gz  -C /app/httpd24/htdocs/

  • 修改wordpress的配置文件中mysql的相关设置

参考WordPress官方提供的配置文件,创建一个配置文件,并修其中对mysql数据库的相关配置。


# 参考官方的配置文件,创建一个新的配置文件
[root@localhost wordpress]#cp wp-config-sample.php  wp-config.php   

同时修改这个配置文件中,关于数据库的配置。

wordpress -mysql

  • 初始化wordPress

通过浏览器访问 http://webserv/wordpress/,其中webserv指的就是安装httpd服务的那台主机的ip,这样就可以进行WordPress的初始化配置。

WordPress初始化配置

配置成功之后,可以看到之前创建的数据库中会多出几张表,这些表格就是wordpress所需要的表。


MariaDB [wpdb]> show tables;
+-----------------------+
| Tables_in_wpdb        |
+-----------------------+
| wp_commentmeta        |
| wp_comments           |
| wp_links              |
| wp_options            |
| wp_postmeta           |
| wp_posts              |
| wp_term_relationships |
| wp_term_taxonomy      |
| wp_termmeta           |
| wp_terms              |
| wp_usermeta           |
| wp_users              |
+-----------------------+
12 rows in set (0.00 sec)

初始化成功之后,再访问http://webserv/wordpress/就可以查看主机的博客主页了。

wordpress-index

经过上面的步骤我们成功地从无到有安装了LAMP+WordPress,在实际生产中,WordPress也有可能是其他地PHP应用。也有可能是Linux+Nginx+MariaDB+Python的组合形式,所以实际生产中还是需要根据实际情况做出自己的选择。

同时,在实际生产者中,每次都耗费这么长的时间去安装LAMP应用还是挺不可取的。所以最好将安装过程写成一个安装脚本,那样的话,获取会事半功倍。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
8天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置服务等,并与使用 RPM 包安装进行了对比,帮助读者根据需求选择合适的方法。编译源码安装虽然复杂,但提供了更高的定制性和灵活性。
60 2
|
10天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤
【10月更文挑战第7天】本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据自身需求选择合适的方法。
19 3
|
14天前
|
安全 Linux 编译器
Centos 7.9如何使用源码编译安装curl最新版本
通过上述步骤,您就能在CentOS 7.9上成功地从源代码编译并安装curl的最新版本。这种方法不仅提供了灵活性,允许您定制编译选项,还确保了软件的最新功能和安全更新得到应用。
26 1
|
2月前
|
关系型数据库 MySQL Linux
Linux(CentOS7)搭建LAMP服务环境
本文介绍了在Linux (CentOS 7) 上搭建LAMP服务环境的详细步骤,包括安装Apache HTTPd、解决编译时依赖问题、配置Apache服务、安装PHP以及处理PHP与Apache集成时遇到的问题。同时,还涉及了防火墙设置和SELinux权限调整,确保Web服务能够正常运行。
67 2
|
2月前
|
应用服务中间件 Linux nginx
在CentOS上使用源码包安装Nginx、以及手动启动Nginx的步骤过程
这篇文章介绍了在CentOS系统上使用Nginx源码包进行安装和配置的详细步骤,包括源码包的获取、解压、配置、编译、安装、启动验证以及注意事项。
259 0
在CentOS上使用源码包安装Nginx、以及手动启动Nginx的步骤过程
|
2月前
|
关系型数据库 MySQL Linux
【一键解锁神秘力量!】CentOS 7 通过编译源码方式安装 MySQL 数据库 —— 从零到英雄的数据库安装实战秘籍!
【8月更文挑战第9天】随着业务增长,对数据库的需求日益提高。在 CentOS 7 中,通过编译源码安装 MySQL 可提供更高定制性和灵活性。本文详细介绍从准备环境、下载源码、配置编译参数到安装 MySQL 的全过程,并对比 RPM 包安装方法,帮助读者根据需求选择合适方案。实践时需注意备份数据、选择合适版本、确保安全性和调优性能等要点。
183 1
|
2月前
|
应用服务中间件 Linux 网络安全
如何在 CentOS 6.5 上使用 Unicorn 和 Nginx 部署 Rails 应用
如何在 CentOS 6.5 上使用 Unicorn 和 Nginx 部署 Rails 应用
38 0
|
4月前
|
关系型数据库 MySQL Linux
centos linux mysql 5.5脚本全自动源码包 编译安装
centos linux mysql 5.5脚本全自动源码包 编译安装
54 0
|
5月前
|
Linux 数据安全/隐私保护 Docker
源码管理新征程:CentOS 7上GitLab安装全程解析
源码管理新征程:CentOS 7上GitLab安装全程解析
72 0
源码管理新征程:CentOS 7上GitLab安装全程解析
|
5月前
|
Shell
CentOS6.5自动化安装LAMP脚本
CentOS6.5自动化安装LAMP脚本