LAMP源码安装配置实战

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: LAMP源码安装配置实战

今天继续给大家介绍Linux运维相关知识,本文主要内容是LAMP源码部署实战。
阅读本文,您需要对Linux源码安装有一定的了解,如果您对此还存在困惑,欢迎查阅我博客内的其他文章,相信您一定会有所收获!
LAMP源码安装原理
Linux 源码包软件安装操作与实战

一、LAMP安装准备
在进行LAMP架构部署之前,我们首先要准备一台干净的系统,该系统应该未安装过Apache、MySQL等软件同时,还应该安装好以下几个工具:

yum install -y gcc gcc-c++ openssl-devel cmake ncurses-devel libxml2-devel
1
其次,我们要上传LAMP的相关源码包,除了Apache、MySQL、PHP三个源码包外,我们还需要准备好三个依赖包,分别是Apache的依赖包——apr、apr-utils和pcre。在本实验中,上述安装包的版本分别是:
apr:1.5.2
apr-utils:1.5.4
apache:2.4.16
mysql:5.6.26
pcre:8.37
php:5.6.13
上述源码包需要全部上传到设备上,如下所示:

上述源码包的下载网页为:
apr、apr-utils:http://apr.apache.org/
apache:http://httpd.apache.org/
mysql:http://dev.mysql.com/downloads/mysql/
pcre:http://pcre.org/
php:http://php.net/downloads.php
注:如果链接失效,可以在百度直接搜索官网,然后再官网下载即可。

二、Apache源码安装
(一)apr和apr-utils依赖包安装
在进行Apache的源码安装部署前,我们需要首先安装Apache的依赖包——apr、apr-utils和pcre。
由于是源码安装部署,因此apr、apt-utils和pcre必须要经过预编译、编译和安装三个阶段,apr的预编译需要进入到解压后的源码包目录下,执行命令:

./configure --prefix=/usr/local/apr
1
在这里,–prefix参数指明了apr的安装目录,在本实验中,所有的软件包都会安装到/usr/local/目录下的同名目录中。使用echo $?,如果返回为0,则表示预编译成功!(只有完成预编译后才可以进行下步操作,在后面的检验效果与此相同,就不在每次检测时进行赘述了)在预编译成功后,可以执行命令:

make -j 4&& make install
1
其中make为编译,make install为安装,-j 4表示同时启用4个进程执行编译操作,会加快编译进入,后面的编译和安装的命令也大致如此。一般情况下,只要预编译成功,那么编译和安装也不会有太大的问题。
apr-utils的预编译也需要进入到解压后的源码包目录下,执行命令:

./configure --prefix=/usr/local/apr-utils --with-apr=/usr/local/apr
1
在成功进行预编译后,还是执行命令:

make -j 4&& make install
1
以完成编译和安装操作。
pcre的预编译也需要进入到解压后的源码包目录下,执行命令:

./configure --prefix=/usr/local/pcre
1
在成功进行预编译后,还是执行命令:

make -j 4&& make install
1
以完成编译和安装操作。

(二)apache源码安装
在完成Apache的依赖包安装后,我们即可进行apache的源码安装了。与Apache的依赖安装过程不同,apache的预编译过程需要有很多的命令:

./configure --prefix=/usr/local/httpd --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-utils --with-pcre=/usr/local/pcre --enable-so --enable-ssl --enable-rewrite --enable-mpms-shared=all --enable-modules=most
1
上述各参数的作用为:
–with-apr、–with-apr-util、–with-pcre:指定Apache的依赖apr、apr-util和pcre的安装位置,
–prefix:指定apache的安装位置
–enable-so、–enable-ssl、–enable-mpms-all、–enable-rewrite、–enable-modules=most表示安装apache不同的模块。
在成功进行预编译后,还是执行命令:

make -j 4&& make install
1
以完成编译和安装操作。

(三)配置apache启动脚本
由于我们是采用源码的方式安装的Apache,因此我们虽然已经安装好了apache,但是其启动命令在/usr/local/httpd/bin/目录下,启动命令为httpd,我们接下来需要配置apache的启动脚本。首先,打开/usr/local/httpd/bin/apachectl,在第二行插入以下内容:

chkconfig 2345 64 36

1
choconfig用于配置apache的开启自启顺序,2345是指当开机以2、3、4、5级别时自启动,64是指apache在网卡启动后进行启动,36是指在网卡关闭后进行关闭。当然,如果不想配置Apache的开机自启,可以不配置上述内容。
修改后的配置文件如下所示:

然后,我们把Apache的该配置文件复制到/etc/init.d下,并重命名为httpd,这样,我们就可以执行命令:

systemctl start httpd
1
或者是:

/etc/init.d/httpd start
1
来开启Apache服务了。

(四)配置Apache启动用户
此外,虽然我们此时已经可以启动Apache了,但是此时Apache的启动是以daemon用户的身份来启动的,源码安装apache不会自动创建apache用户,因此,我们还需要为Apache创建启动用户。
执行命令:

useradd -M -s /sbin/nologin apache
1
可以创建Apache的启动用户,然后打开Apache的主配置文件:/usr/local/httpd/conf/httpd.conf,找到其中的User和Group参数,将默认的daemon用户改为apache,这样,当我们再次启动Apache时,就会以刚刚我们创建的apache用户来运行了。

三、MySQL源码安装
(一)安装MySQL
在进行MySQL的源码安装之前,我们需要首先创建运行MySQL的用户,执行命令:

useradd -M -s /sbin/nologin mysql
1
与Apache不同,MySQL采用的cmake的编译和安装方式,其预编译命令如下:

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1-DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL-USER=mysql
1
上述参数作用如下:
1、DCMAKE_INSTALL_PREFIX用于指定MySQL的安装目录。
2、DDEFAULT_CHARSET用于指定默认字符集。
3、DMYSQL_UNIX_ADDR用于指定服务器与本地客户端进行通信的Unix套接字文件。
4、DDEFAULT_COLLATION用于指定默认的字符校对集。
5、DWITH_EXTRA_CHARSETS用于指定MySQL支持所有字符集。
6、DWITH_MYISAM_STORAGE_ENGINE用于指定MySQL支持MyISAM引擎。
7、DWITH_INNOBASE_STORAGE_ENGINE用于指定MySQL支持InnoDB引擎。
8、DWITH_MEMORY_STORAGE_ENGINE用于指定MySQL支持Memory引擎。
9、DWITH_READLINE用于指定MySQL支持ReadLine库。
10、DENABLED_LOCAL_INFILE用于指定MySQL允许倒入本地数据,启用本地加载数据。
11、DMYSQL_DATADIR用于指定MySQL数据库的安放路径。
12、DMYSQL-USER用于指定运行MySQL的用户。
MySQL的常见参数还有很多,如果想要了解更多参数的使用详情,可以参考以下网站:
https://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html
该网站如下:

在成功进行预编译后,还是执行命令:

make -j 4&& make install
1
以完成编译和安装操作。

(二)配置和初始化MySQL
在安装完毕MySQL后,我们还需要对MySQL进行配置。
首先,修改MySQL的配置文件属主和属组,执行命令:

chown -R mysql.mysql /usr/local/mysql
1
其次,修改MySQL主配置文件,打开/usr/local/mysql/support-files/my-default.cnf,找打其中的basedir和datadir选项,修改为我们的MySQL设置和安装路径,如下:

basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
1
2
然后,复制MySQL的配置文件和启动脚本,执行命令:

cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
1
2
最后,初始化MySQL数据库并进行安全设置,执行命令:

/usr/locl/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql
1
/usr/local/mysql/bin/mysql_secure_installation
1
这样,MySQL就安装完毕了。

四、PHP源码安装
(一)安装PHP
在完成上述操作后,我们就可以源码安装PHP了,进入到PHP的安装目录后,执行命令:

./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql/ --with-apxs2=/usr/local/httpd/bin/apxs --with-config-file-path=/usr/local/php
1
即可进行PHP的源码安装预编译了。
在预编译命令中,–prefix参数用于指定PHP的安装目录,–with-mysql用于指定MySQL的安装目录,–with-apxs2用于指定Apache的apx模块,将PHP编译为Apache的一个模块,–with-config-file-path用于指定PHP的主配置文件php.ini的安装目录。
在成功进行预编译后,还是执行命令:

make -j 4&& make install
1
以完成编译和安装操作。

(二)配置Apache支持PHP
接下来,我们还需要配置Apache支持PHP文件的解析,打开Apache的主配置文件,/usr/local/httpd/conf/httpd.conf,找到AddType字段,大概在381行左右,如下所示:

在该字段下面添加如下内容:

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
1
2
添加时,要注意点前面的空格。
添加完成后,配置文件如下所示:

这样,Apache就可以支持PHP模块了。

五、安装验证
最后,我们来验证一下刚才安装的结果,在我们刚刚配置的LAMP架构下,安装wordpress,并检验安装效果。worpress是一款免费的个人博客软件,可以直接在官网下载到,我采用的版本是4.8。下载该软件后,上传到设备中,并进行解压。
将解压后的内容复制到Apache的网站目录下,并访问该网站,结果如下所示:

点击Let’s go!配置MySQL数据的相关信息,如下所示:

此时,我们需要登录MySQL数据库,建立wordpress数据库,并按照我们的配置进行授权,命令如下:

create database wordpress;
grant all on wordpress.* to 'username'@'localhost' identified by 'password';
1
2
之后按照提示一直进行配置,配置wordpress的用户名、密码和标题信息,如下所示:

完成配置后,最终登录页面如下:

原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

文章知识点与官方知识档案匹配,可进一步学习相关知识
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_40228200/article/details/122502236

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
SQL 人工智能 数据挖掘
阿里云DMS,身边的智能化数据分析助手
生成式AI颠覆了人机交互的传统范式,赋予每个人利用AI进行低门槛数据分析的能力。Data Fabric与生成式AI的强强联合,不仅能够实现敏捷数据交付,还有效降低了数据分析门槛,让人人都能数据分析成为可能!阿里云DMS作为阿里云统一的用数平台,在2021年初就开始探索使用Data Fabric理念构建逻辑数仓来加速企业数据价值的交付,2023年推出基于大模型构建的Data Copilot,降低用数门槛,近期我们将Notebook(分析窗口)、逻辑数仓(Data Fabric)、Data Copilot(生成式AI)进行有机组合,端到端的解决用数难题,给用户带来全新的分析体验。
113059 120
阿里云DMS,身边的智能化数据分析助手
|
前端开发 .NET 数据安全/隐私保护
菜鸟入门【ASP.NET Core】15:MVC开发:ReturnUrl实现、Model后端验证 、Model前端验证
ReturnUrl实现 我们要实现returnUrl,我们需要在注册(Register)方法中接收传进的returnUrl并给它默认值null,然后将它保存在ViewData里面 然后我们定义一个内部方法来判断跳转returnUrl //内部跳转 private IActionR...
2753 0
|
存储 NoSQL MongoDB
【赵渝强老师】部署MongoDB复制集
本文介绍了如何在单个节点上搭建MongoDB复制集环境,通过监听不同端口实现多节点配置。详细步骤包括创建数据目录、编辑配置文件、启动节点、初始化复制集、查看状态以及测试主从库的读写操作。文中还提供了视频讲解和代码示例,帮助读者更好地理解和操作。
292 0
|
Java 索引
增强for循环和一般for循环的对比使用
这篇文章对比了Java中的增强for循环(for-each循环)和传统的for循环,介绍了增强for循环的优点,如简化数组或集合的遍历、提高代码的可读性和可维护性,并指出增强for循环不适用于需要修改数组或集合元素的场景。文章还提供了增强for循环的语法格式,并展示了在实际应用中如何使用增强for循环来遍历数组和数组对象。
增强for循环和一般for循环的对比使用
2023年电赛---运动目标控制与自动追踪系统(E题)OpenART mini的代码移植到OpenMV
2023年电赛---运动目标控制与自动追踪系统(E题)OpenART mini的代码移植到OpenMV
406 0
|
存储 算法 数据可视化
云上大数据分析平台:解锁数据价值,驱动智能决策新篇章
实时性与流式处理:随着实时数据分析需求的增加,云上大数据分析平台将更加注重实时性和流式处理能力的建设。通过优化计算引擎和存储架构等技术手段,平台将能够实现对数据流的高效处理和分析,为企业提供实时决策支持。通过优化计算引擎和存储架构等技术手段,平台将能够实现对数据流的高效处理和分析,为企业提供实时决策支持。
1427 8
|
缓存 JavaScript 前端开发
成功解决:npm 版本不支持node.js。【 npm v9.1.2 does not support Node.js v16.6.0.】
这篇文章介绍了如何解决npm版本与Node.js版本不兼容的问题,提供了查看当前npm和Node.js版本的步骤,以及如何根据Node.js版本选择合适的npm版本并进行升级的详细指导。
成功解决:npm 版本不支持node.js。【 npm v9.1.2 does not support Node.js v16.6.0.】
|
数据库 C# 数据安全/隐私保护
分享 | C#编写的电影售票系统(附源码+数据库)
分享 | C#编写的电影售票系统(附源码+数据库)
1375 0
分享 | C#编写的电影售票系统(附源码+数据库)
|
存储 搜索推荐 算法
Java中的数组排序技术详解
Java中的数组排序技术详解
234 0
|
算法 Java 测试技术
【算法系列篇】模拟算法-1
【算法系列篇】模拟算法(-1