源码编译安装LAMP架构操作命令-LAMP安装论坛(Apache、Mysql、PHP源码安装部署)

LAMP架构和源码编译安装

一、LAMP的概述

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

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

二、LAMP各组件作用

Linux(平台):作为LAMP架构的基础,提供用于支撑Web站点的操作系统,能够与其他三个组件提供更好的稳定性,兼容性(AMP组件也支持Windows、 UNIX等平台)。

Apache(前台):作为LAMP架构的前端,是一款功能强大,稳定性好的Web服务器程序,该服务器直接而向用户提供网站访问,发送网页,图片等文件内容。

MySQL(后台):作为LAMP架构的后端,是一款流行的开源关系数据库系统。在企业网站、业务系统等应用中,各种账户信息、产品信息,客户资料、业务数据等都可以存储到MySQL数据库,其他程序可以通过SQL语句来查询,更改这些信息。

PHP/Perl/Python(中间连接):作为三种开发动态网页的编程语言,负责解释动态网页文件,负责沟通Web服务器和数据库系统以协同工作,并提供web应用程序的开发和运行环境。其中PHP是一种被广-泛应用的开放源代码的多用途脚本语言,它可以嵌入到HTML中,尤其适合于web应用开发。

在构建LAMP平台时,各组件的安装顺序依次为Linux、Apache、MySQL、PHP。 其中Apache和MySQL的安装并没有严格的顺序,PHP环境的安装一般放到最后安装,负责沟通Web服务器和数据库系统以协同工作。

三、源码编译安装

3.1、编译安装Apache httpd服务

3.1.1、关闭防火墙,将安装Apache所需要软件包传到/opt目录下

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

httpd-2.4.29.tar.gz
apr-1.6.2.tar.gz
apr-util-1.6.0.tar.gz
#apr组件包用于支持Apache.上层应用跨平台,提供底层接口库,能有效的降低并发连接数、降低进程和减少访问堵塞

3.1.2、安装环境依赖包

yum -y install \
gcc \                                 #C语言的编译器
gcc-c++ \                             #C++的编译器
make \                                #源代码编译器(源代码转换成二进制文件)
pcre \                                #pcre是一个Perl函数库,包括perl兼容的正则表达式库
pcre-devel \                          #perl的接口开发包
expat-devel \                         #用于支持网站解析HTML、XML文件
perl                                  #perl语言编译器

yum- Yinstall gcc gcc-c++ make pcre pcre-devel expat-devel perl

3.1.3、配置软件模块

解压软件包
cd /opt/
tar zxvf apr-1.6.2.tar.gz
tar zXVf apr-util-1.6.0.tar.gz
tar jxvf httpd-2.4.29. tar.bz2

mv apr-1.6.2 /opt/httpd-2. 4.29/srclib/
mv apr-util-1.6.0 /opt/httpd-2. 4.29/ srcl ib/ apr-util

进行配置过程
cd /opt/httpd-2.4.29/
. /configure \
--prefix=/usr/local/httpd \          #指定将httpd 服务程序的安装路径
--enable-so\                         #启用动态加载模块支持,使httpd具备进--步扩展功能的能力
--enable- rewrite \                  #启用网页地址重写功能,用于网站优化、防盗链及目录迁移维护
--enable-charset-lite \              #启动字符集支持,以便支持使用各种字符集编码的页面
--enable-cgi                         #启用CGI(通用网关接口)脚本程序支持,便于网站的外部扩展应用访问能力
. /configure --prefix=/usr/local/httpd --enable-so --enable- rewrite --enable-charset-lite --enable-cgi

3.1.4、编译及安装

make             #make -j2表示开2核同时进行编译
make install     #不进行安装/usr/local/httpd这个目录不会生成

3.1.5、优化配置文件路径,并把httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别

ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /ysr/1ocal/httpd/bin/* /usr/local/bin/

3.1.6、添加httpd系统服务

方法一:
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd             #用于service服务管理
chmod +x /etc/init.d/httpd 
vi /etc/init.d/httpd
#!/bin/bash                                   #在第一行前插入新行,添加此三行内容
#chkconfig: 35 85 21                    #35级别自动运行第85个启动 21 个关闭
井description: Apache is a World Wide Web server
chkconfig --add httpd                       #将httpd服务加入到service管理器
systemctl start httpd. service 

service httpd start

方法二:
vim /1ib/ systemd/ system/httpd. service
[Unit]
Description=The Apache HTTP Server                           #描述
After=network. target                                        #描述服务类别
[Service]
Type= forking                                                #后台运行方式
P1DFile=/usr/local/httpd/ logs/httpd. pid                   #PID文件位置
ExecStart=/usr/local/bin/ apachectl $OPTIONS               #启动服务
ExecReload=/bin/kill -HUP $MAINPID                           #根据PID重载配置
[Install]
WantedBy=multi-user. target
systemctl start httpd. service
systemctl enable httpd. service

3.1.7、修改httpd服务配置文件

修改配置文件之前,最好做个备份
vim /etc/httpd.conf
--52行--修改
Listen 192.198.80.10:80
--197行--取消注释,修改
Serve rName WWw.cxy.com: 80
--221行--默认首页存放路径
DocumentRoot "/usr/local/httpd/htdocs”
--255行--默认首页文件名设置
Di rectoryIndex index. html

httpd -t或apachectl -t                    #检查配置文件的配置项是否有误
cat /usr/local /httpd/htdocs/ index. h tml
systemctl restart httpd. service .

3.1.8、浏览器访问验证

netstat -anpt| grep 80
echo "192.168.80.10 www. kgc. com" >> /etc/hosts
http: I /192.168.80.10
http: I /www.cxy.com

3.2、安装Apache httpd实验操作

3.2.1、给虚拟机内存和cpu大一些,这样安装会快点

在这里插入图片描述

3.2.2、首先关闭防火墙和安全防护,不然后面执行命令可能会报错。

然后将软件包直接拉到虚拟机中/opt目录下
在这里插入图片描述

3.2.3、搭建本地yum源和安装环境依赖包

在这里插入图片描述

3.2.4、解压软件包(有点多就不一 一贴图了)。移动软件包位置,可以改下软件包名字,方便操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2.5、配置软件模块–prefix(安装指定目录)=/usr/local/httpd,指定到/usr/local/httpd目录下

在这里插入图片描述

3.2.6、进行编译及安装

在这里插入图片描述
在这里插入图片描述

3.2.7、创建软链接

在这里插入图片描述

在这里插入图片描述

3.2.8、添加httpd系统服务

先把脚本执行文件复制备份
配置脚本执行文件,在前三行插入配置
将httpd服务加入到系统当中,重启httpd服务
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2.9、修改httpd服务配置文件

先进行备份
在这里插入图片描述
更改监听地址
在这里插入图片描述

打开访问域名
在这里插入图片描述
查看语法有没有错误,查看重启服务会不会报错
在这里插入图片描述

3.2.10、然后进入虚拟机里去访问IP,显示 it works!就告诉你已经成功了

在这里插入图片描述
因为在配置文件中写的就是it works!
在这里插入图片描述
进入/etc/hosts配置文件中,输入ip地址和域名,实现使用域名访问
在这里插入图片描述
在这里插入图片描述

3.3、编译安装mysqld服务

3.3.1、将安装mysql所需软件包传到/opt目录下

mysql-5.7.17.tar.gZ
boost_1_59_ 0.tar.gz                         #支持c++的运行库

3.3.2、安装环境依赖包

yum -y install \
gcc
gCc-c++ \
ncurses \                        #字符终端下图形互动功能的动态库
ncurses-devel \                  #ncurses开发包
bison \                          #语法分析器
cmake                            #mysql需要用cmake编译安装

yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake

3.3.3、配置软件模块

tar zxvf mysql-5.7.17.tar.gz
tar zXvf boost_1_59_ 0.tar.gz

cd /opt
mv boost_1_59_0 /usr/local/boost         #重命名

cd /opt/mysq1-5.7.17/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \          #指定mysql的安装路径
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \    #指定mysql进程监听套接字文件(数据库连接文件)的存储路径
-DSYSCONFDIR=/etc\                                 #指定配置文件的存储路径
-DSYSTEMD_PID_DIR=/usr/local/mysql \               #指定进程文件的存储路径
-DDEFAULT_CHARSET=utf8 \                           #指定默认使用的字符集编码,如utf8
-DDEFAULT_COLLATION=utf8_general_ci \              #指定默认使用的字符集校对规则
-DWITH EXTRA CHARSETS=all \                        #指定支持其他字符集编码
-DWITH_INNOBASE STORAGE ENGINE=1 \                 #安装INNOBASE存储引擎
-DWITH_ARCHIVE STORAGE ENGINE=1 \                  #安装ARCHIVE存储引擎
-DWITH BLACKHOLE STORAGE ENGINE=1 \                #安装BLACKH0LE存储引擎
-DWITH PERFSCHEMA STORAGE ENGINE=1 \               #安装FEDERATED存储引擎
-DMYSQL_DATADIR=/usr/local/mysql/data \            #指定数据库文件的存储路径
-DWITH_BOOST=/usr/local/boost \ #指定boost的路径,若使用mysql-boost集成包安装则-DWITH_ B0OST=boost
-DWITH_SYSTEMD=1                                   #生成便于systemctl管理的文件

存储引擎选项:

MYISAMMERGEMEMORY, 和CSV引擎是默认编译到服务器中,并不需要明确地安装。

静态编译一个存储引擎到服务器,使用-DWITH_engine_STORAGE_ENGINE= 1

可用的存储引擎值有: ARCHIVE,BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support) ,和PERFSCHEMA (Per formance Schema)

注意:如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧

3.3.4、编译及安装

make && make install

3.3.5、创建mysq1用户

useradd -M -s /sbin/nologin mysql

3.3.6、修改mysql配置文件

vim /etc/my.cnf              #删除原配置项,再重新添加下面内容
[client]                     #客户端设置
port = 3306
socket = /usr/local/mysql/mysql.sock


[mysq1]                      #服务端设置
port = 3306
socket = /usr/local/mysq1/mysql.sock
auto-rehash                  #开启自动补全功能


[mysqld]                                    #服务全局设置
user = mysql                                #设置管理用户
basedir=/usr/local/mysql                    #指定数据库的安装目录
datadir=/usr/local/mysql/data               #指定数据库文件的存储路径
port = 3306                                 #指定端口
character-set-server=utf8                   #设置服务器字符集编码格式为utf8
pid-file = /usr/1ocal/mysql/mysqld.pid      #指定pid进程文件路径
socket=/usr/ local /mysql / mysql. sock     #指定数据库连接文件
bind-address = 0.0.0.0                      #设置监听地址,0.0.0.0代表允许所有,如允许多个IP需空格隔开
skip-name-resolve                           #禁用DNS解析
max_connections=2048                        #设置mysq1的最大连接数
de fault-storage-engine= INNODB             #指定默认存储引擎
max_ allowed packet=16M                     #设置数据库接收的数据包大小的最大值
server-id = 1                               #指定服务ID号

sql_mode=NO_ENGINE_UBSTITUTION, 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


sql_mode常用值如下:
NO_ENGINE_SUBSTITUTION 
如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常

STRICT_TRANS_TABLES
在该模式下,如果一一个值不能插入到一一个事务表中,则中断当前的操作,对非事务表不做限制

NO_AUTO_CREATE USER
禁止:GRANT创建密码为空的用户

NO_AUTO_VALUE_ON_ZERO
mysql中的自增长列可以从0开始。默认情况下自增长列是从1开始的,如果你插入值为0的数据会报错

NO_ZERO_IN_DATE
不允许日期和月份为零

NO_ZERO_DATE
mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告

ERROR_FOR_DIVISION_BY_ZERO
在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。默认情况下数据被零除时MySQL返回NULL

PIPES_AS_CONCAT
"||”视为字符串的连接操作符而非或运算符,这和Oracle数据库是一样的,也和字符串的拼接函数Concat相类似

ANSI_QUOTES
启用ANSI QUOTES后,不能用双引号来引用字符串,因为它被解释为识别符

3.3.7、更改mysql安装目录和配置文件的属主属组

chown -R mysql:mysql /usr/local/mysq1/
chown mysql:mysql /etc/my.cnf

3.3.8、设置路径环境变量

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

3.3.9、初始化数据库

cd /usr/local/mysql/bin/
. /mysqld \
--initialize-insecure \              #生成初始化密码为空
--user=mysq1 \                       #指定管理用户
--basedir=/usr/local/mysql \         #指定数据库的安装目录
--datadir=/usr/local/mysql/data      #指定数据库文件的存储路径

3.3.10、添加mysqld系统服务

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service/usr/lib/systemd/system/
#用于systemct1服务管理
systemctl daemon-reload                 #刷新识别
systemctl start mysqld.service          #开启服务
systemctl enable mysqld                 #开机自启动
netstat -anpt | grep 3306               #查看端口

3.3.11、修改mysql的登录密码

mysqladmin -u root -p password "abc123"      #给root账号设置密码为abc123,提示输入的是原始密码(为空)

3.3.12、授权远程登录

mysql -u root -p
grant all privileges on *.* to 'root'@'%' identified by 'abc123';
#授予root用户可以在所有终端远程登录,使用的密码是abc123,并对所有数据库和所有表有操作权限
show databases;                 #查看当前已有的数据库

3.4、安装mysql实验操作

3.4.1、将压缩文件直接拉到opt目录下

在这里插入图片描述

3.4.2、安装环境依赖包

在这里插入图片描述

3.4.3、配置模块

解压文件包
在这里插入图片描述
将boost文件移动到/usr/local/boost目录下
在这里插入图片描述
进入mycql目录下执行编译操作

在这里插入图片描述

3.4.4编译及安装

在这里插入图片描述
编译安装好了后在/usr/local目录下有个mysql的目录产生
在这里插入图片描述

3.4.5、创建用户

在这里插入图片描述

3.4.6、修改mysql配置文件

进入/etc/my.cnf配置文件,将里面原来的所有的配置删掉,把修改的配置文件输入进去
在这里插入图片描述

3.4.7、更改mysql安装目录和配置文件的属主属组

在这里插入图片描述

3.4.8、设置路径环境变量

进入/etc/profile配置文件中添加路径变量
在这里插入图片描述
可以看到这两个目录都已经添加到变量中
在这里插入图片描述

3.4.9、初始化数据库

在bin目录下有个mysqld文件,去执行这个文件初始化
在这里插入图片描述

3.4.10、添加mysqld系统服务

mysqld的文件复制到usr/lib/systemd/system/的目录下,刷新一下,开启服务,设置开机自启动,查看端口是不是执行成功
在这里插入图片描述

3.4.11、修改mysql登录密码

在这里插入图片描述

3.4.12、授权远程登录

在这里插入图片描述
使用show databases;可以查看数据库
在这里插入图片描述
授权所有权限将库中的所有表给所有组的root用户,然后设置密码“abc123”,注意要使用;结尾
在这里插入图片描述

3.5、编译安装PHP解析环境

3.5.1、将安装PHP所需软件包传到/opt目录下

php-7.1.10.tar.bz2

3.5.2、安装GD库和GD库关联程序,用来处理和生成图片

yum -y install \
gd \
libjpeg libjpeg-devel \
1 ibpng 1 ibpng-devel \
freetype freetype-devel \
l ibxml2 libxml2 -devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel

3.5.3、配置软件模块

cd /opt
tar jxvf php-7.1.10.tar.bz2
cd /opt/php-7.1.10/
. / configure\
--prefix=/usr/1ocal/php7 \                       #指定将PHP 程序的安装路径
--with-apxs2=/usr/local/httpd/bin/apxs \         #指定Apachehttpd服务提供的apxs模块支持程序的文件位置
--with-mysql-sock=/usr/local/mysq1/mysq1.sock \  #指定mysql数据库连接文件的存储路径
--with-config-file-path=/usr/local/php7          #设置PHP的配置文件php.ini 将要存放的位置
--with-mysqli \                                  #添加MySQL扩展支持
#mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定
--with-zlib \                                    #支持zlib功能,提供数据压缩
--with-curl \                                    #开启curl扩展功能,实现HTTP的Get 下载和Post请求的方法
--with-gd \                                      #激活gd库的支持
--with-jpeg-dir \                                #激活jpeg的支持
--with-png-dir \                                 #激活png的支持
--with-freetype-dir \
--with-openssl \
--enable-mbstring \                              #启用多字节字符串功能,以便支持中文等代码
--enable-xml \                                   #开启扩展性标记语言模块
--enable-session \                               #会话
--enable-ftp \                                   #文本传输协议
--enable-pdo \                                   #函数库
--enable-tokenizer \                             #令牌解释器
--enable-zip                                     #ZIP压缩格式

3.5.4、编译及安装

make && make install

3.5.5、复制模版文件作为PHP的主配置文件,并进行修改

cp /opt/php-7.1.10/php.ini-development /usr/local/php7/php.ini
#在测试环境时使用php.ini-development文件,而在生产环境时使用php.ini-production文件
vim /usr/local/php7/php.ini
--1170行--修改
mysqli.default_socket = /usr/local/mysql/mysql.sock
--939行--取消注释,修改
date.timezone = Asia/Shanghai

3.5.6、优化把PHP的可执行程序文件放入路径环境变量的目录中便于系统识别

ln -s /usr/local/php7/bin/* /usr/local/bin/
php -m                                     #查看PHP加载了哪些模块

3.5.7、修改httpd服务的配置文件,让apache支持PHP

vim /etc/httpd.conf
--393行--插入以下内容
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps 
--255行--修改首页文件名设置
DirectoryIndex index.html index.php

---检查支持php7的模块是否存在------
LoadModule php7_module        modules/libphp7.so

3.5.8、验证PHP 测试页

rm -rf /usr/local/httpd/htdocs/index.html
vim /usr/1ocal/httpd/htdocs/index.php
<?php
phpinfo();
?>

systemctl restart httpd. service 

浏览器访问
http: //192.168.111.40

3.6、安装PHP实验操作

3.6.1、将PHP软件包安装在opt目录下

在这里插入图片描述

3.6.2、解压软件包,安装GD库文件

在这里插入图片描述
在这里插入图片描述

3.6.3、配置软件模块

在/opt/php目录下有个configure配置文件,执行文件,将配置文件输入进去
在这里插入图片描述

3.6.4、编译及安装

在这里插入图片描述

3.6.5、复制模板文件,并修改

在php-7.1.10目录下有2个模板文件随便复制一个到/usr/local/php7/目录下做主配置文件,配置文件名称为php.ini
在这里插入图片描述
修改指定mysql数据库链接文件
在这里插入图片描述
设置时区(亚洲上海)
在这里插入图片描述

3.6.6、优化路径

在这里插入图片描述

3.6.7、修改httpd服务配置文件

在393行下插入2条配置命令
在这里插入图片描述
检查php模块是否生成,如果生成说明安装成功,如果没有需要重装
在这里插入图片描述
在256行下文件后面再添加一个文件
在这里插入图片描述
在/usr/local/httpd目录下的htdocs目录下有个index.html文件,我们不用他,将它文件名改下,我们重新创建一个文件名,在里面写入相关程序

3.6.8、登录PHP 测试页

在这里插入图片描述
在这里插入图片描述
配置好后重启服务
在这里插入图片描述
然后我们去访问,php就配好了,里面配置文件都有
在这里插入图片描述
在这里插入图片描述

3.7、安装论坛

3.7.1、创建数据库,并进行授权

mysql -u root -p                          #授权登录

CREATE DATABASE bbs;                      #创建-一个数据库

GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
#把bbs数据库里面所有表的权限授予给bbsuser,并设置密码admin123

flush privileges;                         #刷新数据库

show databases;                           #查看数据库

3.7.2、解压论坛压缩包

unzip /opt/Discuz_X3.4_SC_UTF8.zip -d /opt/dis
cd /opt/dis/dir_SC_UTF8/
cp -r upload/ /usr/local/httpd/htdocs/bbs               #上传站点更新包

3.7.3、更改论坛目录的属主

ps aux                                    #查看发现论坛进程的用户名是daemon
cd /usr/local/httpd/htdocs/bbs
chown -R daemon ./config
chown -R daemon ./data 
chown -R daemon ./uc_client
chown -R daemon ./uc_server/data

3.7.4、浏览器访问验证

论坛页面访问

http:/ /192.168.80.10/bbs

数据库服务器: localhost (本地架设就用localhost,如何不是在在本机上就要填写IP地址和端口号)
数据库名字: bbs
数据库用户名: bbsuser
数据库密码: admin123
管理员账号:admin
管理员密码:admin123

3.7.5、论坛后台登录管理员页面

http://192.168.111.40/bbs/admin.php

论坛安装操作命令

3.8.1、授权,创建数据库

授权登录
在这里插入图片描述
创建数据库
在这里插入图片描述
授权所有权限bbs库中所有表给bbsusers(名称随便设)@给%(代表所有主机),然后给它设置一个密码“admin123“

在这里插入图片描述
然后刷新一下权限退出
在这里插入图片描述

3.8.2、安装论坛安装包,解压

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将upload目录复制到/usr/local/httpd/htdocs目录下改名为bbs
在这里插入图片描述

3.8.3、进入浏览器访问测试

原来访问IP是php页面
在这里插入图片描述
现在我们在IP后加个bbs进入了安装界面
在这里插入图片描述
这里看点击我同意进入安装可以看到./config./data./uc_client./uc_server都没有权限,我们去给它权限
在这里插入图片描述
在这里插入图片描述
重新刷新一下,下一步,选择全新安装
在这里插入图片描述
安装数据库,更改库名,设置数据库用户名,设置数据库密码和设置管理员密码,下一步
在这里插入图片描述
安装好后进行访问
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值