源代码编译构建LAMP(详细安装apache,MySQL,php)

本文详细介绍了如何通过源代码编译构建LAMP(Linux, Apache, MySQL, PHP)平台。首先讲解了LAMP平台的概念、优势及构建顺序。接着,分别详细阐述了Apache、MySQL和PHP的源码编译安装步骤,包括配置、编译、安装和相关服务的启动。此外,还提到了MySQL的权限设置和PHP的配置,以及安装MySQL管理工具phpMyAdmin的过程。
摘要由CSDN通过智能技术生成

源代码编译构建LAMP

1.什么是LAMP平台

LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整台系统和相关软件,能够提供动态web站点服务及其应用开发环境

LAMP是一个缩写词,具体包括Linux操作系统,Apache网站服务器,MySQL数据库服务器,PHP(或perl,Python)网页编程语言

LAMP的优势:成本低廉;可定制、易于开发;方便易用、安全和稳定

2.LAMP平台构建顺序

在构建LAMP平台时,各组件的安装顺序依次为Linux,Apache,MySQL,PHP

其中Apache和MySQL的安装并没有严格的顺序要求,而PHP环境的安装一般放到最后,负责沟通web服务器和数据库系统以协同工作

3.源代码编译安装的优点

具有较大的自由度,功能可定制
可及时获得最新的软件版本
普遍适用于大多数Linux版本,便于一直使用

4.源代码安装apache

apache简介
apache起源
    源于A Patchy Server,著名的开源web服务软件
    1955年时,发布Apache服务程序的1.0版本
    由Apache软件基金会(ASF)负责维护(该基金会还包括了tomcat、kafka)
    最新的名称为“Apache HTTP Server”
apache主要特点
    开放源代码,跨平台(由apr软件包支持)应用
    支持多种网页编程语言
    模块化设计,运行稳定,良好的安全性
apache编译过程
    注意:如果之前使用yum安装过,需要先卸载
yum -y remore httpd

1.将三个源码文件添加到/opt目录下

[root@server opt]# ls
apr-1.6.2.tar.gz  apr-util-1.6.0.tar.gz  httpd-2.4.29.tar.bz2

2.解压apr跨平台组件包和httpd源码包到当前目录下;并将跨平台组件包移动到源码包srclib目录下

[root@server opt]# tar zxf apr-1.6.2.tar.gz
[root@server opt]# tar zxf apr-util-1.6.0.tar.gz
[root@server opt]# tar jxf httpd-2.4.29.tar.bz2
[root@server opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@server opt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util

3.安装编译器和其他工具

[root@server opt]# yum -y install \
> gcc \
> gcc-c++ \
> make \                ##gcc、gcc-c++、make为编译工具
> pcre-devel \        ##支持正则表达式的工具
> expat-devel \      ##使网站能解析xml标记语言的工具
> perl                     ##perl语言工具

4.configure配置

[root@server opt]# cd httpd-2.4.29/
[root@server httpd-2.4.29]# ./configure \
> --prefix=/usr/local/httpd \		##指定路径
> --enable-so \					##开启核心功能模块(Web服务)
> --enable-rewrite \			        ##开启重写功能,如防盗链保护
> --enable-charset-lite \			##字符集设定
> --enable-cgi           ##开启通用网关接口,它定义了web服务器运行时外部程序的规范

5.make编译和make install安装

[root@server httpd-2.4.29]# make 	##编译,将源码转换成计算机可以识别的二进制文件
[root@server httpd-2.4.29]# make install	##安装

6.配置启动脚本

[root@server bin]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd	 ##将启动脚本复制到/etc/init.d/初始化脚本文件中,并重命名为httpd
[root@server bin]# cd /etc/init.d/
[root@server init.d]# ls
functions  httpd  netconsole  network  README
[root@server init.d]# vim httpd 
#!/bin/sh	  ##在行首插入下两行内容(前面就是有#的),并保存退出
#chkconfig: 35 85 21 	##3(字符界面)和5(图形化界面)级别自动运行  第85个启动 第21个关闭
#description: Apache is a World Wide Web server  ##描述信息,可不加
#
#...省略内容

[root@server init.d]# chkconfig --add httpd    ##将httpd加入到service管理器

7.编辑配置文件

[root@server ~]# vim /usr/local/httpd/conf/httpd.conf 
...省略内容
Listen 20.0.0.30:80   ##设置ipv4监听地址和端口
#Listen 80                 ##将ipv6格式的监听端口注释掉
#
ServerName www.test.com:80   ##设置域名地址
...省略内容

8.设置配置文件的软链接和httpd命令的软链接

[root@server bin]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf  
                       ##设置配置文件的软链接,便于修改(原文件位置太长了)
[root@server bin]# httpd -t          ##未设置命令的软链接时
bash: httpd: 未找到命令...
[root@server bin]# ls /usr/local/httpd/bin/
ab            apxs       envvars-std   htdigest   logresolve
apachectl     checkgid   fcgistarter   htpasswd   rotatelogs
apr-1-config  dbmmanage  htcacheclean  httpd
apu-1-config  envvars    htdbm         httxt2dbm
[root@server bin]# ln -s /usr/local/httpd/bin/* /usr/local/bin/    ##设置httpd命令的软链接
[root@server bin]# httpd -t    ##这时可以使用httpd命令了(httpd -t:检查配置文件语法)
Syntax OK
[root@server bin]# apachectl -t
Syntax OK

9.开启apache服务

[root@server bin]# iptables -F      ##清空防火墙规则
[root@server bin]# setenforce 0   ##关闭核心防护
[root@server bin]# service httpd start   ##利用service启动apache服务
[root@server bin]# netstat -napt |grep 80  ##查看httpd 80端口,开启成功
tcp        0      0 14.0.0.30:80            0.0.0.0:*               LISTEN      44819/httpd 

10.在浏览器中输入服务器地址验证。

5.源码编译安装mysql

1.准备安装环境

[root@server ~]# yum -y install \
> ncurses \
> ncurses-devel \		##字符终端下屏幕控制的基本库
> bison \
> cmake					##跨平台编译安装工具
[root@server opt]# tar zxf mysql-boost-5.7.20.tar.gz

2.cmake配置

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \		#指定将mysql数据库安装到某目录下
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \	#指定套接字文件的存储路径,数据库连接的文件
-DSYSCONFDIR=/etc \			#指定初始化参数文件目录
-DSYSTEMD_PID_DIR=/usr/local/mysql \	#数据安装路径 
-DDEFAULT_CHARSET=utf8  \		#指定默认使用的字符集编码,如 utf8。
-DDEFAULT_COLLATION=utf8_general_ci \	#指定默认使用的字符集校对规则,utf8_general_ci 是适用于 UTF-8 字符集的通用规则。
-DWITH_INNOBASE_STORAGE_ENGINE=1 \		#安装INNOBASE存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \		#安装ARCHIVE存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \		#安装ARCHIVE存储引擎 
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \	#安装FEDERATED存储引擎
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1

3.make && make install 编译并且安装

4.建立调整配置文件

vi /etc/my.cnf
[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

5.设置环境变量

echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
source /etc/profile

6.添加用户mysql,专门用来管理进程(程序型用户,禁止登录shell)

[root@server ~]# useradd -s /sbin/nologin mysql	  ##添加用户mysql,禁止用户登录系统
[root@server ~]# id mysql
uid=1001(mysql) gid=1001(mysql) groups=1001(mysql)
[root@server ~]# chown -R mysql.mysql /usr/local/mysql	##设置属主和数组

7.初始化数据库

cd /usr/local/mysql/

bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

8.启动,设置密码

cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl enable mysqld
systemctl start mysqld
systemctl status mysqld
netstat -anpt | grep 3306

mysqladmin -u root -p password "abc123" //刚开始没密码是空的直接回车,然后输入密码abc123,在此确认abc123,这是在root账户下运行的

mysql -u root -p     ##这个命令敲下,提示要输入密码,这个就是刚才设置的密码abc123

6.编译安装PHP

1.配置安装环境

yum -y install \
libjpeg \
libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 \
libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel

2.编译安装

cd /opt
tar xjvf php-7.1.10.tar.bz2
cd php-7.1.10
./configure \
--prefix=/usr/local/php \			#指定将 PHP 程序安装到哪个目录下
--with-mysql-sock=/usr/local/mysql/mysql.sock \		#指定mysql的mysql.sock位置
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip
make && make install

3.将php.ini-development开发样板,复制到生产环境中去

cp php.ini-development /usr/local/php/lib/php.ini
vi /usr/local/php/lib/php.ini
mysqli.default_socket = /usr/local/mysql/mysql.sock
date.timezone = Asia/Shanghai
/usr/local/php/bin/php -m //验证安装的模块

vi /etc/httpd.conf 			####在合适位置新增

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

DirectoryIndex index.php index.html

rm -f /usr/local/httpd/htdocs/index.html
vi /usr/local/httpd/htdocs/index.php

<?php
phpinfo();
?>

systemctl restart httpd


http://192.168.32.21/

4.mysql授权

mysqladmin -uroot -p password 'abc123'   
这个地方回车后,输入是初始密码,我们这边安装的初始密码是空的。回车即可
--------下面测试数据库工作是否正常-----
mysql -u root -p

CREATE DATABASE myadm;
GRANT all ON myadm.* TO 'myadm'@'%' IDENTIFIED BY 'admin123';
GRANT all ON myadm.* TO 'myadm'@'localhost' IDENTIFIED BY 'admin123';
flush privileges;

vi /usr/local/httpd/htdocs/index.php

<?php
$link=mysqli_connect('20.0.0.30','myadm','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>

########http://20.0.0.30/测试下###

5.安装MySQL管理工具

---以下安装phpMyadmin------
cd /opt
unzip phpMyAdmin-4.7.6-all-languages.zip -d /opt/
mv phpMyAdmin-4.7.6-all-languages /usr/local/httpd/htdocs/myadm
cd /usr/local/httpd/htdocs/myadm
cp config.sample.inc.php config.inc.php

vi config.inc.php

$cfg['Servers'][$i]['host'] = '127.0.0.1'; //把localhost 改成IP 31行

http://20.0.0.30/myadm
使用root 以及前面为root配置的密码登录管理系统。可以对数据库进行管理操作了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值