源码编译构建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就可以了
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
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.前提
-
如果您以前使用操作系统本机程序包管理系统(如Yum或APT)安装了MySQL,则使用本机二进制 文件安装时可能会遇到问题。确保您之前的MySQL安装已完全删除(使用您的包管理系统),并且 还删除了任何其他文件,例如旧版本的数据文件。您也应该检查配置文件,如/etc/my.cnf 或/etc/mysql目录,并删除它们。
-
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
#激活额外MPM配置文件
Include conf/extra/httpd-mpm.conf
增加后面的内容
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
#增加默认首页index.php
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
#重启服务
[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/
可以通过浏览器访问成功:
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
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管理界面
输入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