热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

本文由编程笔记#小编为大家整理,主要介绍了Web服务器群集——源码部署搭建LAMP平台上线wordpress博客上线相关的知识,希望对你有一定的参考价值。
本文由编程笔记#小编为大家整理,主要介绍了Web服务器群集——源码部署搭建LAMP平台上线wordpress博客上线相关的知识,希望对你有一定的参考价值。








源码部署搭建LAMP平台上线wordpress博客上线


  • 一、初识LAMP
    • 1.1 LAMP的组成
    • 1.2 LAMP的作用
    • 1.3 LAMP的架构图

  • 二、实验前的准备
  • 三、Apache编译安装
    • 3.1 解压Apache源码包
    • 3.2 下载Apache依赖包及安装
      • 3.2.1 解决Apr依赖
      • 3.2.2 解决Apr-util依赖
      • 3.2.3 解决Pcre依赖

    • 3.3 安装Apache
    • 3.4 确认Apache安装结果
    • 3.5 优化执行路径
    • 3.6 为Apache修改域名
    • 3.7 添加httpd系统服务
    • 3.8 开启Apache服务并访问主页
    • 3.9 附1:httpd命令的其他参数
    • 3.10 附2:主要目录和文件

  • 四、MySQL编译安装
    • 4.1 安装编译环境
    • 4.2 添加MySQL用户和组
    • 4.3 MySQL安装
    • 4.4 改变数据库的属主
    • 4.5 建立MySQL配置文件my.cnf
    • 4.6 初始化数据库
    • 4.7 为MySQL优化启动路径
    • 4.8 开启数据库服务
    • 4.9 登陆数据库服务
    • 4.10 检查数据库状态及库

  • 五、php编译安装
    • 5.1 源码安装php部署配置
    • 5.2 生成配置文件
    • 5.3 添加Apache支持
    • 5.4 重启Apache服务
    • 5.5 创建测试界面

  • 部署wordpress博客



一、初识LAMP

1.1 LAMP的组成

在这里插入图片描述


  • L:很显然L代表Linux系统,但此L需注意系统的版本号,如Centos6.9或Centos7.3;
  • A:表示apache,在传统行业中,多数采用Apache服务器,因此也很有必要了解学习Apache;
  • M:表示数据库,多数采用mysql或mariadb,作为专业的数据库工程师需经多年的历练;
  • P:表示php、python、perl等等编程语言。

1.2 LAMP的作用

LAMP架构是协同工作的一整套系统和相关软件,可提供动态Web站点服务及其应用开发环境。具体包括Linux操作系统、Apache网站服务器、MySQL数据库服务器、PHP(或Perl、Python)网页编程语言。


1.3 LAMP的架构图

Linux+apache+mariadb+PHP组合的架构,架构图如下:
在这里插入图片描述
根据上图中访问数据流可知,处理一次动态页面请求,服务器主要经历:Apache处理请求——通过CGI接口访问PHP的的应用程序——PHP应用程序调用PHP解释器执行PHP代码——PHP程序访问调用数据库——最后给客户做反馈。

故在LAMP的环境机构中,apache、mariadb和php的主要功能分别如下
在这里插入图片描述


二、实验前的准备

1)虚拟机CentOS7

[root@611 ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

在这里插入图片描述

2)关闭防火墙

[root@611 ~]# systemctl stop firewalld
[root@611 ~]# systemctl disable firewalld

3)关闭selinux

[root@611 ~]# sed -ri 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

4)准备编译环境

[root@611 ~]# yum -y install make gcc gcc-c++ openssl openssl-devel expat-devel

三、Apache编译安装

3.1 解压Apache源码包

注意路径

[root@611 ~]# tar -xvzf httpd-2.4.38.tar.gz -C /usr/src

3.2 下载Apache依赖包及安装

安装完成后均可使用echo $?检查


3.2.1 解决Apr依赖

[root@611 ~]# wget http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz
[root@611 ~]# tar -xvzf apr-1.4.5.tar.gz -C /usr/src/
[root@611 ~]# cd /usr/src/apr-1.4.5/
[root@611 apr-1.4.5]# ./configure --prefix=/usr/local/apr #进行配置并指明安装路径
[root@611 apr-1.4.5]# make && make install #安装

3.2.2 解决Apr-util依赖

[root@611 ~]# wget http://archive.apache.org/dist/apr/apr-util-1.3.12.tar.gz
[root@611 ~]# tar -xvzf apr-util-1.3.12.tar.gz -C /usr/src/
[root@611 ~]# cd /usr/src/apr-util-1.3.12/ #进入解压后的路径
[root@611 apr-util-1.3.12]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/ #进行配置并指明安装路径
[root@611 apr-util-1.3.12]# make && make install #安装

3.2.3 解决Pcre依赖

执行./configure 可能会出现权限不够

执行如下命令:chmod +x configure

[root@611 ~]# wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.10/pcre-8.10.zip
[root@611 ~]# unzip pcre-8.10.zip #解压
[root@611 ~]# mv pcre-8.10 /usr/src/ #移动文件至/usr/src
[root@611 ~]# cd /usr/src/pcre-8.10/ #进入解压后的路径
[root@611 pcre-8.10]# ./configure --prefix=/usr/local/pcre #进行配置并指明安装路径
[root@611 pcre-8.10]# make && make install #安装

3.3 安装Apache

[root@611 ~]# cd /usr/src/httpd-2.4.38/ #进入解压后的路径
[root@611 httpd-2.4.38]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-list --enable-cgi --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre #进行配置并指明安装路径
[root@611 httpd-2.4.38]# make && make install #安装

上述配置命令中,各选项的含义如下


  • prefix:指定将httpd服务程序安装到哪个目录下,如/usr/local/httpd
  • enable-so:启用动态加载模块支持,使httpd具备进一步扩展功能的能力
  • enable-rewrite:启用网页地址重写功能,用于网站优化及目录迁移维护
  • enable-charset-list:启用字符集支持,以便支持使用各种字符集编码的网页
  • enable-cgi:启用CGI脚本程序支持,便于扩展网站的应用访问能力

3.4 确认Apache安装结果

[root@611 ~]# ls /usr/local/httpd/

在这里插入图片描述


3.5 优化执行路径

在这里插入图片描述

[root@611 ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin #将bin下所有内容配置环境变量

本行意为在任何路径下都能执行启动Apache命令


3.6 为Apache修改域名

[root@611 ~]# vim /usr/local/httpd/conf/httpd.conf
...
ServerName www.pakho.com:80 #将默认的域名修改公司域名
...

3.7 添加httpd系统服务

[root@611 ~]# vim /usr/lib/systemd/system/httpd.service #写一个centos7的方式的启动脚本
[Unit]
Description=The Apache HTTP Server
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/httpd/logs/httpd.pid
ExecStart=/usr/local/httpd/bin/apachectl $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RetartSec=42s
[Install]
WantedBy=graphical.target

3.8 开启Apache服务并访问主页

[root@611 ~]# systemctl start httpd

在这里插入图片描述
浏览器访问192.168.100.10提示 It works编译安装完成
在这里插入图片描述


3.9 附1:httpd命令的其他参数

[root@611 ~]# apachectl -h

在这里插入图片描述


3.10 附2:主要目录和文件


  • 服务目录:/usr/local/httpd/
  • 主配置文件:/usr/local/httpd/conf/httpd.conf
  • 网页目录:/usr/local/httpd/htdocs/
  • 服务脚本:/usr/local/httpd/bin/apachectl
  • 执行程序:/usr/local/httpd/bin/httpd
  • 访问日志: /usr/local/httpd/log/access_log
  • 错误日志: /usr/local/httpd/log/error_log

四、MySQL编译安装

4.1 安装编译环境

[root@611 ~]# rpm -qa mysql-server mysql #检查MySQL软件安装情况
[root@611 ~]# yum -y install ncurses-devel
[root@611 ~]# tar -xvzf cmake-2.8.6.tar.gz -C /usr/src/
[root@611 ~]# cd /usr/src/cmake-2.8.6/
[root@611 cmake-2.8.6]# ./configure
[root@611 cmake-2.8.6]# gmake && gmake install

4.2 添加MySQL用户和组

[root@611 ~]# groupadd mysql #准备mysql组
[root@611 ~]# useradd -M -s/sbin/nologin mysql -g mysql #创建一个用户属于mysql组不允许登陆系统

4.3 MySQL安装

[root@611 ~]# tar -xvzf mysql-5.6.36.tar.gz -C /usr/src/
[root@611 ~]# cd /usr/src/mysql-5.6.36/
[root@611 mysql-5.6.36]# pwd
/usr/src/mysql-5.6.36
[root@611 mysql-5.6.36]# cmake \\
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \\
> -DSYSCONFDIR=/etc \\
> -DDEFAULT_CHARSET=utf8 \\
> -DDEFAULT_COLLATION=utf8_general_ci \\
> -DWITH_EXTRA_CHARSETS=all
[root@611 mysql-5.6.36]# make && make install

4.4 改变数据库的属主

[root@611 ~]# chown -R mysql:mysql /usr/local/mysql #改变数据库的属主 属组,对数据库进行权限设置

4.5 建立MySQL配置文件my.cnf

[root@611 mysql]# mv /etc/my.cnf ~ # 移动样例文件至家目录
[root@611 ~]# cp /usr/src/mysql-5.6.36/support-files/my-default.cnf /etc/my.cnf

4.6 初始化数据库

[root@611 ~]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/

4.7 为MySQL优化启动路径

[root@611 mysql]# ln -s /usr/local/mysql/bin/* /usr/local/sbin #设置环境变量
[root@611 mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
#这样就可以使用systemctl start mysql来启动数据库否则得使用/usr/local/mysql/bin/mysqld
[root@611 mysql]# chmod +x /etc/init.d/mysqld
[root@611 mysql]# chkconfig --add mysqld #添加mysql服务
[root@611 mysql]# chkconfig mysqld on #开机自动启动mysql服务

4.8 开启数据库服务

[root@611 mysql]# systemctl start mysqld

4.9 登陆数据库服务

在这里插入图片描述


4.10 检查数据库状态及库

mysql> show databases;

在这里插入图片描述

[root@611 mysql]# systemctl status mysqld

在这里插入图片描述


五、php编译安装

5.1 源码安装php部署配置

[root@611 ~]# yum -y install zlib-devel libxml2-devel xz-devle #安装依赖包
[root@611 ~]# tar -xvzf php-5.5.38.tar.gz -C /usr/src/
[root@611 ~]# cd /usr/src/php-5.5.38/
[root@611 php-5.5.38]# ./configure --prefix=/usr/local/php5 \\ #表示php的安装
> --with-apxs2=/usr/local/httpd/bin/apxs \\ #注入模块,将php与apache结合
> --with-mysql=/usr/local/mysql \\ #表示 php与mysql连接,也表示一个接口
> --with-mysqli=/usr/local/mysql/bin/mysql_config \\
> --with-config-file-path=/usr/local/php5 \\ #这里表示php配置文件存放位置
> --enable-mbstring #启用多字符集的一个模块
[root@611 php-5.5.38]# make && make install
[root@611 php-5.5.38]# cp php.ini-development /usr/local/php5/

5.2 生成配置文件

[root@611 php-5.5.38]# cd /usr/local/php5/
[root@611 php5]# mv php.ini-development php.ini

5.3 添加Apache支持

[root@611 php5]# vim /usr/local/httpd/conf/httpd.conf
#添加如下内容
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
<IfModule mime_module>
Addtype application/x-httpd-php .php
</IfModule>

5.4 重启Apache服务

[root&#64;611 php5]# systemctl restart httpd.service

5.5 创建测试界面

[root&#64;611 php5]# vim /usr/local/httpd/htdocs/index.php
<?php
phpinfo(); #查看php版本信息
?>

http://192.168.100.10/

测试完成
在这里插入图片描述


部署wordpress博客

[root&#64;611 ~]# mysql -u root -p&#39;WANGyuCHEN0403&#39;
mysql> create database wordpress;
mysql> grant all privileges on wordpress.* to &#39;he&#39;&#64;&#39;localhost&#39; identified by &#39;123&#39;;
mysql> flush privileges;
[root&#64;611 ~]# cd /usr/local/httpd/htdocs/
[root&#64;611 htdocs]# rm -rf *
[root&#64;611 htdocs]# mv /root/wordpress-4.9.4-zh_CN.tar.gz .
[root&#64;611 htdocs]# tar -xvzf wordpress-4.9.4-zh_CN.tar.gz
[root&#64;611 htdocs]# rm -rf wordpress-4.9.4-zh_CN.tar.gz
[root&#64;611 htdocs]# mv wordpress/* .

http://192.168.100.10

已成功登录
在这里插入图片描述输入我们创建的数据库用户
在这里插入图片描述根据提示创建一个php文件
在这里插入图片描述

[root&#64;611 htdocs]# vim wp-config.php
#根据提示复制提示内容

在这里插入图片描述在这里插入图片描述
实验成功

在这里插入图片描述






推荐阅读
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
author-avatar
洪爷不是我
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有