源码编译构建LAMP

源码编译构建LAMP

Apache网站服务基础

1.安装httpd服务器

准备工作

为了避免发生端口冲突、 程序冲突等现象, 建议卸载使用 RPM 方式安装的 httpd。

[root@localhost ~]# yum remove httpd -y

安装一些依赖包

[root@localhost httpd-2.4.39]# yum install apr-util-devel pcre-devel pkgconfig -y
源码编译安装及易出现的问题

1.下载源码包

wget https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.53.tar.bz2 --no-check-certificate

2.解包

将下载获得的 httpd源码包解压并释放到/usr/src目录下,且切换到展开后的源码目录中。

[root@localhost ~]# tar jxvf httpd-2.4.53.tar.bz2 -C /usr/src/
[root@localhost ~]# cd /usr/src/httpd-2.4.53/

3.配置

[root@localhost httpd-2.4.53]# ./configure \--prefix=/usr/local/httpd \--enable-so \--enable-rewrite \--enable-charset-lite \--enable-cgi\--enable-mpms-shared=all

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

​ –prefix: 指定将 httpd 服务程序安装到哪个目录下, 如/usr/local/httpd。 –enable-so: 启用动态加载模块支持, 使 httpd 具备进一步扩展功能的能力。

​ –enable-rewrite: 启用网页地址重写功能, 用于网站优化及目录迁移维护。

​ –enable-charset-lite:启动字符集支持,以便支持使用各种字符集编码的网页。

​ –enable-cgi: 启用 CGI 脚本程序支持,便于扩展网站的应用访问能力。

​ –enable-mpms-shared=all: 启用 MPM 所有支持的模式,这样 event、 worker、 prefork 就会以 模块化的方式安装,要用哪个就在httpd.conf里配置就好了。

配置完出现下面的错误是因为gcc包没有安装使用yum install -y gcc就可以了

1652406368043.png

4.编译及安装

完成配置以后, 执行“make”命令进行编译, 将源代码转换为可执行的程序; 然后执行“make install”命 令完成最后的安装过程; 将编译完的 httpd 程序及相关目录、 文件复制到预设的安装目录(由配置时的 “–prefix”选项指定)。 其中“make”的过程可能会需要较长的时间。

[root@localhost httpd-2.4.53]# make
[root@localhost httpd-2.4.53]# make install
确认安装结果

由于指定的安装目录为/usr/local/httpd, 因此 httpd 服务的各种程序、 模块、 帮助文件等都将复制到 此目录下。

[root@localhost httpd-2.4.53]# ls -l /usr/local/httpd/
总用量 36
drwxr-xr-x.  2 root root  262 5月  12 08:27 bin
drwxr-xr-x.  2 root root  167 5月  12 08:27 build
drwxr-xr-x.  2 root root   78 5月  12 08:27 cgi-bin
drwxr-xr-x.  4 root root   84 5月  12 08:27 conf
drwxr-xr-x.  3 root root 4096 5月  12 08:27 error
drwxr-xr-x.  2 root root   24 5月  12 08:13 htdocs
drwxr-xr-x.  3 root root 8192 5月  12 08:27 icons
drwxr-xr-x.  2 root root 4096 5月  12 08:27 include
drwxr-xr-x.  2 root root    6 5月  12 08:27 logs
drwxr-xr-x.  4 root root   30 5月  12 08:27 man
drwxr-xr-x. 14 root root 8192 5月  12 08:13 manual
drwxr-xr-x.  2 root root 4096 5月  12 08:27 modules

在安装后的/usr/local/httpd 目录下, 主要子目录的用途如下。

/usr/local/httpd/bin: 存放 httpd 服务的各种执行程序文件, 包括主程序httpd、服务控制工具 apachectl 等。

/usr/local/httpd/conf: 存放 httpd 服务的各种配置文件, 包括主配置文件httpd.conf、 增强配 置子目录 extra 等。

/usr/local/httpd/htdocs: 存放网页文档, 包括默认首页文件 index.html 等。

/usr/local/httpd/logs: 存放 httpd 服务的日志文件。

/usr/local/httpd/modules: 存放 httpd 服务的各种模块文件。

/usr/local/httpd/cgi-bin: 存放各种 CGI 程序文件。

优化执行路径

通过源码编译安装的 httpd 服务, 程序路径并不在默认的搜索路径中, 为了使该服务在使用时更加方 便, 可以为相关程序添加符号链接。

[root@localhost httpd-2.4.53]# ls -l /usr/local/httpd/
总用量 36
drwxr-xr-x.  2 root root  262 5月  12 08:27 bin
drwxr-xr-x.  2 root root  167 5月  12 08:27 build
drwxr-xr-x.  2 root root   78 5月  12 08:27 cgi-bin
drwxr-xr-x.  4 root root   84 5月  12 08:27 conf
drwxr-xr-x.  3 root root 4096 5月  12 08:27 error
drwxr-xr-x.  2 root root   24 5月  12 08:13 htdocs
drwxr-xr-x.  3 root root 8192 5月  12 08:27 icons
drwxr-xr-x.  2 root root 4096 5月  12 08:27 include
drwxr-xr-x.  2 root root    6 5月  12 08:27 logs
drwxr-xr-x.  4 root root   30 5月  12 08:27 man
drwxr-xr-x. 14 root root 8192 5月  12 08:13 manual
drwxr-xr-x.  2 root root 4096 5月  12 08:27 modules
[root@localhost httpd-2.4.53]# ln -s /usr/local/httpd/bin/* /usr/local/bin/
[root@localhost httpd-2.4.53]# ls -l /usr/local/bin/httpd /usr/local/bin/apachectl
lrwxrwxrwx. 1 root root 30 5月  12 08:31 /usr/local/bin/apachectl -> /usr/local/httpd/bin/apachectl
lrwxrwxrwx. 1 root root 26 5月  12 08:31 /usr/local/bin/httpd -> /usr/local/httpd/bin/httpd

这样, 在执行相关命令时就不用输入冗长的路径了。 例如, 当执行“httpd -v”命令(用于查看程序版 本)时,即相当于执行“/usr/local/httpd/bin/httpd -v”命令。

[root@localhost ~]# httpd -v
Server version: Apache/2.4.53 (Unix)
Server built:   May 12 2022 08:25:32
[root@localhost ~]# httpd -V
Server version: Apache/2.4.53 (Unix)
Server built:   May 12 2022 08:25:32
Server's Module Magic Number: 20120211:124
Server loaded:  APR 1.4.8, APR-UTIL 1.5.2, PCRE 8.32 2012-11-30
Compiled using: APR 1.4.8, APR-UTIL 1.5.2, PCRE 8.32 2012-11-30
Architecture:   64-bit
Server MPM:     worker
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/usr/local/httpd"
 -D SUEXEC_BIN="/usr/local/httpd/bin/suexec"
 -D DEFAULT_PIDLOG="logs/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"
添加httpd服务启动脚本

在/usr/lib/systemd/system/目录下, 建立一个以.service结尾的单元(unit) 配置文件,用于控制由 systemd 管理或监控的 httpd 服务。

[root@localhost ~]# vim /usr/lib/systemd/system/httpd.service
[Unit]
Description=The Apache HTTP Server
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/httpd/logs/httpd.pid
ExecStart= /usr/local/bin/apachectl $OPTIONS
ExecReload= /bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor
preset: disabled)
Active: active (running) since Mon 2019-07-08 22:44:33 CST; 4s ago
Process: 22513 ExecStart=/usr/local/bin/apachectl $OPTIONS (code=exited,
status=0/SUCCESS)
Main PID: 22325 (httpd)
CGroup: /system.slice/httpd.service
‣ 22325 httpd --help
Jul 08 22:44:33 localhost.localdomain systemd[1]: Starting The Apache HTTP
Server...
Jul 08 22:44:33 localhost.localdomain apachectl[22513]: AH00558: httpd: Could not
reliably determine the server's fully qualif...ssage
Jul 08 22:44:33 localhost.localdomain apachectl[22513]: httpd (pid 22325) already
running
Jul 08 22:44:33 localhost.localdomain systemd[1]: Started The Apache HTTP
Server.
Hint: Some lines were ellipsized, use -l to show in full.
[root@localhost ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to
/usr/lib/systemd/system/httpd.service.

httpd服务器的基本配置

一、Web站点的部署过程

1.确定网站名称、IP地址

若要向 Internet 中发布一个 Web 站点, 需要申请一个合法的互联网 IP 地址, 并向 DNS服务提供商注 册一个完整的网站名称。本案例采用本机的/etc/hosts文件做解析

[root@localhost ~]# vim /etc/hosts
192.168.87.3 www.shengzhe.com
[root@localhost ~]# hostname www.shengzhe.com
[root@localhost ~]# hostnamectl set-hostname www.shengzhe.com
[root@localhost ~]# cat /etc/hostname
www.shengzhe.com
2.配置并启动httpd服务
配置httpd服务

编辑 httpd 服务的主配置文件 httpd.conf, 查找配置项“ServerName”, 在附近添加一行内容 “ServiceName www.shengzhe.com”,用于设置网站名称。

[root@localhost ~]# cd /usr/local/httpd/conf
[root@localhost conf]# ls
extra  httpd.conf  magic  mime.types  original
[root@localhost conf]# vim httpd.conf

ServerName www.shengzhe.com:80

检查配置文件语法

[root@localhost conf]# apachectl -t
Syntax OK
启动httpd服务
[root@localhost conf]# systemctl restart httpd.service
[root@localhost conf]# netstat -antp | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      32311/httpd 
3.部署网页文档

对于新编译安装的 httpd 服务, 网站根目录位于/usr/local/httpd/htdocs 下, 需要将 Web站点的网页 文档复制或上传到此目录下。httpd服务器默认已提供了一个名为 index.html 的测试网页(可显示字串 “It works! ”), 作为访问网站时的默认首页。

[root@localhost ~]# cd /usr/local/httpd
[root@localhost httpd]# cat /usr/local/httpd/htdocs/index.html
<html><body><h1>It works!</h1></body></html>
4.在客户机中访问Web站点

http://ip地址

5.查看Web站点的访问情况

httpd 服务器使用了两种类型的日志: 访问日志和错误日志。 这两种日志的文件名分别为 access_log 和 error_log, 均位于/usr/local/httpd/logs 目录下。 通过查看访问日志文件 access_log, 可以及时了解 Web 站点的访问情况。 访问日志中的每一行对应一 条访问记录, 记录了客户机的 IP 地址、 访问服务器的日期和时间、 请求的网页对象等信息。

[root@localhost httpd]# tail /usr/local/httpd/logs/access_log

通过查看错误日志文件error_log,可以为排查服务器运行故障提供参考依据。 错误日志文件中的每一行 对应一条错误记录, 记录了发生错误的日期和时间、 错误事件类型、错误事件的内容描述等信息

[root@localhost httpd]# tail /usr/local/httpd/logs/error_log

构建虚拟Web主机

基于域名的虚拟主机

本小节以实现两个虚拟Web主机www.kgc.com和www.kcce.com为例,使用一台httpd服务器搭建, IP 地址为192.168.87.3。 具体构建过程介绍如下。

1.为虚拟主机提供域名解析

可以搭建DNS服务器做域名解析,如果是对公网用户提供服务,需要注册域名,做实验可以使用本地 host文件做域名解析

[root@localhost htdocs]# echo "192.168.87.3 www.kgc.com" >> /etc/hosts
[root@localhost htdocs]# echo "192.168.87.3 www.kcce.com" >> /etc/hosts
2.为虚拟主机准备网页文档

为每个虚拟 Web 主机准备网站目录及网页文档。为了测试方便,分别为每个虚拟 Web主机提供包含不 同内容的首页文件。例如,在/usr/local/httpd/htdocs/ 目录下创建两个子文件夹kgccom、 kccecom, 分别作为 www.kgc.com 和 www.kcce.com 的网站根目录, 并分别编写测试网页文件。

[root@localhost conf]# cd /usr/local/httpd/htdocs/
[root@localhost htdocs]# mkdir kgccom
[root@localhost htdocs]# mkdir kccecom
[root@localhost htdocs]# echo '<h1>www.kgc.com</h1>' > kgccom/index.html
[root@localhost htdocs]# echo '<h1>www.kcce.com</h1>' > kccecom/index.html
3.添加虚拟主机配置
[root@www httpd]# vim /usr/local/httpd/conf/httpd.conf
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
[root@www extra]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
     DocumentRoot '/usr/local/httpd/htdocs/kgccom'
     ServerName www.kgc.com
     ErrorLog "logs/www.kgc.com-error_log"
     CustomLog "logs/www.kgc.com-access_log" common
     <Directory '/usr/local/httpd/htdocs/kgccom'>
         Require all granted
     </Directory>
</VirtualHost>

<VirtualHost *:80>
     DocumentRoot '/usr/local/httpd/htdocs/kccecom'
     ServerName www.kcce.com
     ErrorLog "logs/www.kcce.com-error_log"
     CustomLog "logs/www.kcce.com-access_log" common
     <Directory '/usr/local/httpd/htdocs/kccecom'>
         Require all granted
     </Directory>
</VirtualHost>
[root@www extra]# apachectl -t
Syntax OK
[root@www extra]# systemctl restart httpd.service
4.在客户机中访问虚拟web主机

www.kcg.com

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gIITheWk-1652516917853)(https://p1.xywm.ltd/2022/05/12/627ca6df3645c.png)]

www.kcce.com

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XVpOq0RT-1652516917854)(C:\Users\孟吉祥\AppData\Roaming\Typora\typora-user-images\image-20220512142015937.png)]

基于ip地址的虚拟主机

1.为虚拟主机提供域名解析
[root@localhost htdocs]# echo "192.168.87.3 www.kgc.com" >> /etc/hosts
[root@localhost htdocs]# echo "192.168.87.5 www.kcce.com" >> /etc/hosts
2.为虚拟主机准备网页文档
[root@localhost ~]# cd /usr/local/httpd/htdocs/
[root@localhost htdocs]# mkdir kgccom
[root@localhost htdocs]# mkdir kccecom
[root@localhost htdocs]# echo '<h1>www.kgc.com,helloworld</h1>' > kgccom/index.html
[root@localhost htdocs]# echo '<h1>www.kcce.com,helloworld</h1>' > kccecom/index.html
3.添加虚拟主机配置
[root@localhost htdocs]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf

<VirtualHost 192.168.87.3:80>
     DocumentRoot '/usr/local/httpd/htdocs/kgccom'
     ServerName www.kgc.com
     ErrorLog "logs/www.kgc.com-error_log"
     CustomLog "logs/www.kgc.com-access_log" common
     <Directory '/usr/local/httpd/htdocs/kgccom'>
         Require all granted
     </Directory>
</VirtualHost>
<VirtualHost 192.168.87.5:80>
     DocumentRoot '/usr/local/httpd/htdocs/kccecom'
     ServerName www.kcce.com
     ErrorLog "logs/www.kcce.com-error_log"
     CustomLog "logs/www.kcce.com-access_log" common
     <Directory '/usr/local/httpd/htdocs/kccecom'>
         Require all granted
     </Directory>
</VirtualHost>
[root@localhost htdocs]# apachectl -t
Syntax OK
[root@localhost htdocs]# systemctl restart httpd.service
4.在客户机中访问虚拟机web主机

192.168.87.3 www.kgc.com

1652336877922.png

192.168.87.5 www.kcce.com

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lkAfWQ9g-1652516917856)(https://p1.xywm.ltd/2022/05/13/627df97841927.png)]

基于端口的虚拟主机

1.为虚拟主机提供域名解析
[root@localhost htdocs]# echo "192.168.87.3 www.kgc.com" >> /etc/hosts
[root@localhost htdocs]# echo "192.168.87.3 www.kcce.com" >> /etc/hosts
2.为虚拟主机准备网页文档
[root@localhost ~]# cd /usr/local/httpd/htdocs/
[root@localhost htdocs]# mkdir kgccom
[root@localhost htdocs]# mkdir kccecom
[root@localhost htdocs]# echo '<h1>www.kgc.com,helloworld</h1>' > kgccom/index.html
[root@localhost htdocs]# echo '<h1>www.kcce.com,helloworld</h1>' > kccecom/index.html
3.添加虚拟主机配置

启动不同的侦听端口:

[root@www httpd]# vim /usr/local/httpd/conf/httpd.conf
Listen 192.168.154.142:80
Listen 192.168.154.142:8353
# Virtual hosts
Include conf/extra/httpd-vhosts.conf

配置虚拟主机

[root@localhost htdocs]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf

<VirtualHost 192.168.87.3:80>
     DocumentRoot '/usr/local/httpd/htdocs/kgccom'
     ServerName www.kgc.com
     ErrorLog "logs/www.kgc.com-error_log"
     CustomLog "logs/www.kgc.com-access_log" common
     <Directory '/usr/local/httpd/htdocs/kgccom'>
         Require all granted
     </Directory>
</VirtualHost>
<VirtualHost 192.168.87.5:80>
     DocumentRoot '/usr/local/httpd/htdocs/kccecom'
     ServerName www.kcce.com
     ErrorLog "logs/www.kcce.com-error_log"
     CustomLog "logs/www.kcce.com-access_log" common
     <Directory '/usr/local/httpd/htdocs/kccecom'>
         Require all granted
     </Directory>
</VirtualHost>
[root@localhost htdocs]# apachectl -t
Syntax OK
[root@localhost htdocs]# systemctl restart httpd.service
4.在客户机中访问虚拟机web主机

192.168.87.3:80

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-celVFdt4-1652516917857)(https://p1.xywm.ltd/2022/05/13/627e009d459bd.png)]

192.168.87.3:8353

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S63cpEEO-1652516917858)(https://p1.xywm.ltd/2022/05/13/627e00bf0dc5c.png)]

Mysql服务

二进制安装mysql8

1.前提

  1. 如果您以前使用操作系统本机程序包管理系统(如Yum或APT)安装了MySQL,则使用本机二进制 文件安装时可能会遇到问题。确保您之前的MySQL安装已完全删除(使用您的包管理系统),并且 还删除了任何其他文件,例如旧版本的数据文件。您也应该检查配置文件,如/etc/my.cnf 或/etc/mysql目录,并删除它们。

  2. MySQL依赖于libaio库。如果未在本地安装此库,则数据目录初始化和后续服务器启动步骤将失败

[root@www ~]# yum install libaio -y

2.安装过程

1.创建一个mysql用户和组

[root@www ~]# groupadd mysql
[root@www ~]# useradd -r -g mysql -s /bin/flase mysql

2.解压下载的二进制安装包

[root@www ~]# cd /usr/local
[root@www local]# tar xvf /root/mysql-8.0.15-el7-x86_64.tar.gz

3.创建一个链接目录mysql

[root@www local]# ln -s mysql-8.0.15-el7-x86_64 mysql
[root@www local]# cd mysql
[root@www mysql]# ls
bin   include  LICENSE         man     README.router  support-files
docs  lib      LICENSE.router  README  share

4.添加环境变量

export PATH=$PATH:/usr/local/mysql/bin

5.安装后设置与测试

为导入和导出操作创建安全目录,进入安装目录:

[root@www mysql]# mkdir mysql-files
[root@www mysql]# chown mysql:mysql mysql-files/
[root@www mysql]# chmod 750 mysql-files/

初始化命令

[root@www mysql]# mysqld --initialize --user=mysql
2022-05-13T07:21:16.894340Z 0 [System] [MY-013169] [Server] /usr/local/mysql-8.0.15-el7-x86_64/bin/mysqld (mysqld 8.0.15) initializing of server in progress as process 4354
2022-05-13T07:21:19.929379Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: y(f%SgSOr6tF
2022-05-13T07:21:20.863171Z 0 [System] [MY-013170] [Server] /usr/local/mysql-8.0.15-el7-x86_64/bin/mysqld (mysqld 8.0.15) initializing of server has completed

6.安全启动数据库:(要确保使用mysql用户启动)

[root@www mysql]# mysqld_safe --user=mysql &
[1] 4408
[root@www mysql]# Logging to '/usr/local/mysql/data/www.shengzhe.com.err'.
2022-05-13T07:21:38.791604Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

7.连接数据库,修改root的新密码

mysql -uroot -p
Enter password:    输入初始化密码
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.15

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> alter user 'root'@'localhost' identified by 'Com.123456';
Query OK, 0 rows affected (0.01 sec)

8.测试服务器

使用mysqladmin验证服务器是否正在运行。以下命令提供简单的测试,以检查服务器是否已启动 并响应连接:

[root@www mysql]# ln -s /usr/local/mysql/bin/mysqladmin /usr/bin
[root@www mysql]# mysqladmin version -u root -pCom.123456
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
mysqladmin  Ver 8.0.15 for el7 on x86_64 (MySQL Community Server - GPL)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version          8.0.15
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /tmp/mysql.sock
Uptime:                 10 min 11 sec

Threads: 3  Questions: 6  Slow queries: 0  Opens: 123  Flush tables: 2  Open tables: 99  Queries per second avg: 0.009

9.显示可用变量

[root@www mysql]# mysqladmin variables -uroot -pCom.123456

10.验证是否可以关闭服务器(如果可以不要敲这行命令否则后续可能会出现一些他错误)

[root@www mysql]# mysqladmin -uroot -pCom.123456 shutdown

11.使用mysqlshow查看存在哪些数据库:

[root@www ~]# mysqlshow -pCom.123456
mysqlshow: [Warning] Using a password on the command line interface can be insecure.
+--------------------+
|     Databases      |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

12.如果指定数据库名称,mysqlshow将显示数据库中的表列表:

[root@www ~]# mysqlshow mysql -pCom.123456
mysqlshow: [Warning] Using a password on the command line interface can be insecure.
Database: mysql
+------------------------------------------------------+
|                        Tables                        |
+------------------------------------------------------+
| columns_priv                                         |
| component                                            |
| db                                                   |
| default_roles                                        |
| engine_cost                                          |
| func                                                 |
| general_log                                          |
| global_grants                                        |
| gtid_executed                                        |
| help_category                                        |
| help_keyword                                         |
| help_relation                                        |
| help_topic                                           |
| innodb_index_stats                                   |
| innodb_table_stats                                   |
| password_history                                     |
| plugin                                               |
| procs_priv                                           |
| proxies_priv                                         |
| replication_asynchronous_connection_failover         |
| replication_asynchronous_connection_failover_managed |
| replication_group_configuration_version              |
| replication_group_member_actions                     |
| role_edges                                           |
| server_cost                                          |
| servers                                              |
| slave_master_info                                    |
| slave_relay_log_info                                 |
| slave_worker_info                                    |
| slow_log                                             |
| tables_priv                                          |
| time_zone                                            |
| time_zone_leap_second                                |
| time_zone_name                                       |
| time_zone_transition                                 |
| time_zone_transition_type                            |
| user                                                 |
+------------------------------------------------------+

13.使用mysql程序从mysql架构中的表中选择信息:

[root@www ~]# mysql -e "select User,Host,plugin From mysql.user" mysql -pCom.123456
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------------+-----------+-----------------------+
| User             | Host      | plugin                |
+------------------+-----------+-----------------------+
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session    | localhost | caching_sha2_password |
| mysql.sys        | localhost | caching_sha2_password |
| root             | localhost | caching_sha2_password |
+------------------+-----------+-----------------------+

14.构建主配置文件

[root@www ~]# touch /etc/my.cnf
[root@www ~]# chmod 644 /etc/my.cnf
[root@www ~]# vim /etc/my.cnf
[root@www ~]# cat /etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/tmp/mysql.sock
port=3306
log-error=/usr/local/mysql/data/www.shengzhe.com.err
user=mysql
secure_file_priv=/usr/local/mysql/mysql-files
local_infile=OFF

15.构建systemd服务单元配置文件

[root@www ~]# vim /usr/lib/systemd/system/mysqld.service
[root@www ~]# cat /usr/lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
Type=notify
# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0
# Start main service
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf $MYSQLD_OPTS
# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql
# Sets open_files_limit
LimitNOFILE = 10000
Restart=on-failure
RestartPreventExitStatus=1
# Set environment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1
PrivateTmp=false

16.配置MySQL开机启动

[root@www mysql]# systemctl daemon-reload
[root@www mysql]# systemctl enable mysqld.service
Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service
to /usr/lib/systemd/system/mysqld.service.

[root@www mysql]# systemctl start mysqld.service
[root@www mysql]# systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor
preset: disabled)
Active: active (running) since Thu 2019-07-11 16:02:02 CST; 16s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Main PID: 3019 (mysqld)
Status: "SERVER_OPERATING"
CGroup: /system.slice/mysqld.service
└─3019 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
Jul 11 16:00:36 www.shengzhe.com systemd[1]: Starting MySQL Server...
Jul 11 16:02:02 www.shengzhe.com systemd[1]: Started MySQL Server.

构建PHP运行环境

1.安装php7的YUM源

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

2.安装PHP7.2

[root@www ~]# yum install php72w php72w-cli php72w-common php72w-gd php72w-ldap
php72w-mbstring php72w-mcrypt php72w-mysql php72w-pdo php72w-opcache

3.找到安装的php模块,并复制到apache模块目录下

[root@www httpd]# find / -name '*php*.so'
/usr/lib64/httpd/modules/libphp7-zts.so
/usr/lib64/httpd/modules/libphp7.so
[root@www ~]# cp /usr/lib64/httpd/modules/libphp7-zts.so /usr/local/httpd/modules
[root@www ~]#  cp /usr/lib64/httpd/modules/libphp7.so /usr/local/httpd/modules/

4.修改Apache配置主配置文件(因为里面有加的空行,行号 不会精准只是一个大概范围)

LoadModule php7_module modules/libphp7.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

1652496468290.png

#激活额外MPM配置文件
Include conf/extra/httpd-mpm.conf

1652496547935.png

增加后面的内容
AddType application/x-compress .Z
402     AddType application/x-gzip .gz .tgz
403
404     AddType application/x-httpd-php .php
405     AddType application/x-httpd-source .phps

1652496624050.png

#增加默认首页index.php
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>

1652496799839.png

#重启服务
[root@www httpd]# systemctl restart httpd

5.创建test.php测试文件并测试

[root@www httpd]# cd /usr/local/httpd/htdocs/
[root@www htdocs]# cat test.php
<?php
phpinfo();
?>
[root@www htdocs]# curl http://192.168.154.142/test.php
[root@www htdocs]# mv test.php kgccom/

可以通过浏览器访问成功:

1652444578162.png


6.创建MySQL数据库管理员

认证机制必须是mysql_native_password;默认mysql8使用 caching_sha2_password的身份验证机 制。

mysql> create user 'dbadmin'@'%' identified with mysql_native_password by
'Com.123456';
Query OK, 0 rows affected (0.02 sec)
mysql> grant all on *.* to 'dbadmin'@'%';
Query OK, 0 rows affected (0.01 sec)
mysql> grant GRANT OPTION on *.* to 'dbadmin'@'%';
Query OK, 0 rows affected (0.01 sec)

7.修改php的配置文件

[root@www htdocs]# vim /etc/php.ini
mysqli.default_socket = /tmp/mysql.sock

1652496217743.png

8.创建数据库连接测试文件

(我这里的localhost不能使用所以使用127.0.0.1)

[root@www htdocs]# cd /usr/local/httpd/htdocs/
[root@www htdocs]# cat mysql_test.php
<?php
$link = mysqli_connect("127.0.0.1","dbadmin","Com.123456");
echo "<pre>";
var_dump($link);
?>
[root@www htdocs]# mv mysql_test.php kgccom/
[root@www htdocs]# systemctl restart httpd

测试连接是否成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RsaCHWxH-1652516917864)(https://p1.xywm.ltd/2022/05/14/627f4a7ea2c4b.png)]

LAMP架构应用实例

phpMyAdmin的源码包可以从其官方站点http://www.phpmyadmin.net 下载。

[root@www ~]# wget https://files.phpmyadmin.net/phpMyAdmin/5.2.0/phpMyAdmin-5.2.0-all-languages.zip --no-check-certificate

1.解包并复制到网站目录

[root@www ~]# unzip phpMyAdmin-5.2.0-all-languages.zip
[root@www ~]# cd /usr/local/httpd/htdocs/kgccom
[root@www kgccom]# mkdir phpMyAdmin
[root@www phpMyAdmin]# mv phpMyAdmin-5.2.0-all-languages/*

2.建立配置文件 config.inc.php

[root@www phpMyAdmin]# vim config.inc.php
[root@www phpMyAdmin]# cat config.inc.php
<?php
$cfg['blowfish_secret'] = 'com.123'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
$cfg['Servers'][i]['AllowNoPassword']=true;

3.访问phpMyAdmin的Web管理界面

1652515807768.png

输入mysql数据库管理员和密码

[root@www htdocs]# systemctl restart httpd


测试连接是否成功

[外链图片转存中...(img-RsaCHWxH-1652516917864)]

## **LAMP架构应用实例**

phpMyAdmin的源码包可以从其官方站点http://www.phpmyadmin.net 下载。

[root@www ~]# wget https://files.phpmyadmin.net/phpMyAdmin/5.2.0/phpMyAdmin-5.2.0-all-languages.zip --no-check-certificate


### **1.解包并复制到网站目录**

[root@www ~]# unzip phpMyAdmin-5.2.0-all-languages.zip
[root@www ~]# cd /usr/local/httpd/htdocs/kgccom
[root@www kgccom]# mkdir phpMyAdmin
[root@www phpMyAdmin]# mv phpMyAdmin-5.2.0-all-languages/*


### **2.建立配置文件 config.inc.php**

[root@www phpMyAdmin]# vim config.inc.php
[root@www phpMyAdmin]# cat config.inc.php

<?php $cfg['blowfish_secret'] = 'com.123'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ $cfg['Servers'][i]['AllowNoPassword']=true; ~~~ ### **3.访问phpMyAdmin的Web管理界面** [外链图片转存中...(img-gUldZmw5-1652516917865)] 输入mysql数据库管理员和密码 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pDqCBKgv-1652516917865)(https://p1.xywm.ltd/2022/05/14/627f642b11f89.png)]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值