1.apache实现LAMP

LAMP是指一组通常一起使用来运行动态网站的自由软件名称首字母的缩写

a.L是指Linux操作系统

b,.A是指Apache,用来提供Web服务

c.M指MySQL,用来提供数据库服务

d.P指PHP,是动态网站的一种开发语言

1.1php运行方式说明

php是脚本语言,可用命令行执行,开发动态网站需Web服务器(如Apache,Nginx)配合php解析,Web服务器仅能处理静态资源,动态脚本需php处理器解析后,将结果回传给服务器再发给服务器

apache解析php有两种方式:

模块加载(mod_php),php以模块集成到Apache,性能好但是伸缩性差

FastCGI方式,通过协议让服务器与外部FastCGI进程(如php解释器)通信,伸缩性好但有通信开销

CGI是Web服务器与外部程序的接口协议,FastCGI是其改进版,性能更优,php-fpm则是管理php-FastCGI进程的工具

1.2以php-fpm形式配置php

1.2.1安装php包

[root@apache ~]# yum install php-fpm php httpd -y

1.2.2重启php和httpd

[root@apache ~]# systemctl restart php-fpm
[root@apache ~]# systemctl restart httpd

1.2.3编辑文件

[root@apache ~]# vim /var/www/html/index.php
<?phpphpinfo();
?>

1.2.4测试

1.2.5配置文件说明

a.php.conf文件说明
[root@apache ~]# grep -Ev "^.*#|^$"  /etc/httpd/conf.d/php.conf
<Files ".user.ini">  #禁止访问.user.ini文件Require all denied
</Files>
AddType text/html .php  #设置 PHP 文件的 MIME 类型
DirectoryIndex index.php   #默认索引文件
<IfModule !mod_php.c>   #如果未加载 mod_php,则使用 PHP-FPMSetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1  #将http授权头传递给php-fpm<FilesMatch \.(php|phar)$>  #将所有 .php和 .phar文件交给 PHP-FPM 处理SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"   #通过FastCGI协议与PHP-FPM通信</FilesMatch>
</IfModule>
<IfModule  mod_php.c>  #如果加载了 mod_php,则使用内置mod_php解析相关文件<FilesMatch \.(php|phar)$>SetHandler application/x-httpd-php</FilesMatch>php_value session.save_handler "files"php_value session.save_path    "/var/lib/php/session"php_value soap.wsdl_cache_dir  "/var/lib/php/wsdlcache"
</IfModule>
b.php-fpm配置说明
[root@apache ~]#  grep -Ev "^.*;|^$"  /etc/php-fpm.conf
#引入/etc/php-fpm.d/目录下所有.conf后缀的配置文件
include=/etc/php-fpm.d/*.conf
[global]
#指定PHP-FPM进程的PID文件路径
pid = /run/php-fpm/php-fpm.pid
#指定错误日志文件路径
error_log = /var/log/php-fpm/error.log
#设置是否以守护进程
daemonize = yes

1.3配置LAMP(配置文件包已资源绑定)

1.3.1安装与php和mysql相关的软件包

a.php-pecl-zip:php的zip扩展,用于处理zip压缩文件
[root@apache ~]# yum list all | grep php | grep zip
php-pecl-zip.x86_64                                  1.19.2-6.el9                       @rhel9-AppStream
b.php-gd:php的GD库扩展,用于处理图像
[root@apache ~]# yum list all | grep php | grep gd
php-gd.x86_64                                        8.0.20-3.el9                       @rhel9-AppStream
c.php-mysqlnd是php连接MySQL的驱动
[root@apache ~]# yum list all | grep mysql | grep php 
php-mysqlnd.x86_64                                   8.0.20-3.el9                       @rhel9-AppStream
d.安装
[root@apache ~]# yum install php-pecl-zip php-gd php-pecl-zip mysql-server -y

1.3.2将nextcloud通过xftp上传并解压缩

a.nextcloud通过xftp上传

b.解压缩
[root@apache ~]# tar -xvf nextcloud-29.0.16.tar.bz2 -C /var/www/html/

1.3.3设置所属者:所属组

[root@apache ~]# chown -R apache:apache /var/www/html/nextcloud*

1.3.4启动MySQL并修改密码创建nextcloud库

a.启动MySQL
[root@apache ~]# systemctl start mysqld
b.修改密码
[root@apache ~]# mysqldadmin -uroot -p password '123'
c.登录并创建nextcloud库
[root@apache ~]# mysql -uroot -p123
mysql> create database nc     #创建nc为nextcloud的库

1.3.5测试

在浏览器登录http://192.168.75.184/nextcloud/,并点击存储数据库输入数据库用户root,密码123,使用的数据库为nc,登录用户本地主机,点击安装即可

成功结果图:

2.URL重定向

URL重定向是指将客户端请求从一个URL地址转移到另外一个LRL地址的web服务器技术,这两个URL地址可以是同一个域名下的不同资源,也可以是不同的域名

URL重定向分类:

301:永久重定向,服务器向客户端发送指令,告诉客户端当前请求的URL被永久的重定向到其它的URL,客户端下次请求该资源应该使用新的URL

302:临时重定向,服务器向客户端发送指令,告诉客户端当前请求的URL被临时重定向到其它的URL,客户端下次请求该资源还可以继续使用原来的URL

2.1重定向案例

2.1.1使用redirect重定向

a.编辑配置文件
[root@apache ~]# vim /etc/httpd/conf.d/ip.conf 
<Directory /virtualhost>Allowoverride none   #禁止使用.htaccess文件覆盖当前配置Require all granted   #允许所有客户端访问该目录下的资源
</Directory>
<VirtualHost 192.168.75.184:80>DocumentRoot /virtualhost/ip/184ServerName 192.168.75.184#HTTP到HTTPS的重定向:#将所有访问该IP的HTTP请求(/代表根路径及所有子路径)#重定向到对应的HTTPS地址(默认使用302临时重定向)redirect / https://192.168.75.184
</VirtualHost>
<VirtualHost 192.168.75.185:80>DocumentRoot /virtualhost/ip/185ServerName 192.168.75.185#HTTP到HTTPS的永久重定向:#301表示永久重定向(搜索引擎会更新索引指向新地址)#将所有访问该IP的HTTP请求重定向到对应的HTTPS地址redirect 301 / https://192.168.75.185
</VirtualHost>
b.检测并重启
[root@apache ~]# httpd -t
Syntax OK
[root@apache ~]# systemctl restart httpd
c.添加IP
[root@apache ~]# ip a a 192.168.75.184/24 dev eth0 
[root@apache ~]# ip a a 192.168.75.185/24 dev eth0 
d.检测并重启
[root@apache ~]# httpd -t
Syntax OK
[root@apache ~]# systemctl restart httpd
e.测试
[root@apache ~]# curl 192.168.75.186
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="https://192.168.75.190">here</a>.</p>
</body></html>
[root@apache ~]# curl 192.168.75.187
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="https://192.168.75.190">here</a>.</p>
</body></html>

2.1.2使用rewrite重定向

a.编辑配置文件
[root@apache ~]# vim /etc/httpd/cond.f/port.conf
<Directory /virtualhost>Allowoverride noneRequire all granted
</Directory>
rewriteengine on
<VirtualHost 192.168.75.184:80>DocumentRoot /virtualhost/port/80ServerName 192.168.75.184RewriteRule ^(/.*)$ http://192.168.183/$1 [R=302]  #定义重定向
</VirtualHost>Listen 10000
<VirtualHost 192.168.75.185:10000>DocumentRoot /virtualhost/port/10000ServerName 192.168.75.185
</VirtualHost>
b.检测并重启
[root@apache ~]# httpd -t
Syntax OK
[root@apache ~]# systemctl restart httpd
c.测试
[root@apache ~]# curl  192.168.75.183/test/
alias-test
[root@apache ~]# curl  192.168.75.183/hahaha/
<h1>sorry!</h1>your page not found
[root@apache ~]# curl  192.168.75.184/test
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="http://192.168.75.183//test">here</a>.</p>
</body></html>
[root@apache ~]# curl -L  192.168.75.185/test
alias-test
[root@apache ~]# curl -L  192.168.75.185/hahaha
<h1>sorry!</h1>your page not found

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/98117.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/98117.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/98117.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SAConv可切换空洞卷积

SAConv可切换空洞卷积 带来的改进机制时可切换的空洞卷积 是一种创新型卷积网络 专门为增强物体检测和分割任务&#xff0c;中特征提取去设计 SAC核心时相同的输入儿子应用到不同空洞率去进行卷积&#xff0c;设计特别开关函数融合这些不同卷积的成果 该方法可让网络更灵活的适…

基于Matlab的雾霾天气和夜间车牌识别系统

在复杂天气和低光照环境下&#xff0c;车牌识别系统的准确率和稳定性显著下降&#xff0c;严重影响交通管理与智能监控的可靠性。本文针对雾霾天气和夜间环境下车牌图像特征模糊、对比度低、噪声干扰严重的问题&#xff0c;提出了一种融合图像增强与模板匹配的车牌识别方法。系…

华为云/本地化部署K8S-查看容器日志

华为云日志查看 目前工作的大部分情况下&#xff0c;通过华为云LTS云日志服务就可以满足日常需求。 不过上线时过来支援的开发老哥更习惯于从容器里查看日志&#xff0c;也一并记录下以备不时之需。 1.登录服务节点服务器 点击左侧三个横线&#xff0c;选择 应用服务-云容器引擎…

【MySQL 死锁:从 “业务卡顿“ 到 “根因定位“ 的实战指南】

MySQL 死锁&#xff1a;从 “业务卡顿” 到 “根因定位” 的实战指南 后端开发必看&#xff1a;MySQL死锁排查与预防全攻略线上系统突然报出Deadlock found when trying to get lock; try restarting transaction&#xff0c;用户操作卡顿甚至超时&#xff0c;排查时却对着一堆…

从虚拟化基石到云原生架构的降维打击:用dd/mkfs玩转namespace隔离,解锁Docker/K8S资源密码,看透物理机到云服务器的进化之路

本篇摘要 本文围绕虚拟化与容器化技术展开&#xff0c;涵盖架构演进、Docker/K8S优势与挑战、namespace隔离实操&#xff08;如主机名/PID隔离&#xff09;、磁盘操作&#xff08;dd/mkfs/df/mount&#xff09;等&#xff0c;对比虚拟机与容器差异&#xff0c;阐明技术原理与架…

自动化测试的概念

文章目录自动化测试能够取代人工测试吗&#xff1f;回归测试自动化分类自动化测试金字塔为啥单元测试的性价比这么高呢&#xff1f;那为啥UI自动化测试的性价比没有组件测试的高呢&#xff1f;web自动化测试举例引入自动化测试的准备工作自动化测试的简单示例自动化测试能够取代…

OSPF故障排查实战:如何通过一条命令精准定位网络掩码不匹配问题

掌握display ospf error命令的解读技巧&#xff0c;快速解决OSPF邻接关系建立失败难题。一、问题背景与场景引入 在网络运维工作中&#xff0c;OSPF&#xff08;开放最短路径优先&#xff09;协议作为主流的内部网关协议&#xff0c;其稳定运行至关重要。然而&#xff0c;在实际…

Redis----如何引入分布式锁

一、概述首先引入分布式锁指的是应用程序引入&#xff0c;不是Redis本身引入&#xff0c;Redis作为中间件可以作为分布式锁的一个典型实现方案&#xff0c;同时也有一些其他的实现方案。分布式锁指的是一个/组程序&#xff0c;使用Redis实现的话就是通过添加一个特殊的Key-Valu…

prometheus-2.42.0.linux-amd64.tar.gz 安装配置展示

一、prometheus 1.1解压文件 # tar -xzvf prometheus-2.42.0.linux-amd64.tar.gz -C ~/apps/ prometheus-2.42.0.linux-amd64/ prometheus-2.42.0.linux-amd64/NOTICE prometheus-2.42.0.linux-amd64/consoles/ prometheus-2.42.0.linux-amd64/consoles/index.html.example p…

Linux 标准输入 标准输出 标准错误

目录一. 简介二. 常见用法2.1 输出重定向2.2 错误重定向2.3 同时重定向标准输出 错误2.4 输入重定向2.5 特殊设备三. 这样设计的好处3.1 区分正常信息和错误信息3.2 方便调用方脚本处理3.3 与管道结合时更清晰四. 案例4.1 if判断4.2 ls查询一. 简介 ⏹在 Linux/Unix 中&#…

零基础新手小白快速了解掌握服务集群与自动化运维(二)Linux Journalctl命令、Journalctl日志持久化存储

Linux提供了一个强大的日志系统&#xff0c;它可以跟踪和记录系统的各种活动。在这个系统中&#xff0c;journalctl是一个非常重要的工具&#xff0c;用于查询和操作由systemd进程管理的日志。 本文将深入探讨journalctl命令&#xff0c;介绍其基本使用、高级选项及示例等内容…

【学习】【js】栈数据结构

栈 栈是一种遵从后进先出&#xff08;LIFO&#xff09;原则的有序集合。新添加或待删除的元素都保存在栈的同一端&#xff0c;称作栈顶&#xff0c;另一端就叫栈底。在栈里&#xff0c;新元素都靠近栈顶&#xff0c;旧元素都接近栈底。 基于数组的栈 时间复杂度O(n),占用较多的…

【Linux】基本指令 · 下

alias 指令起别名为什么 ls -l 指令等价于 ll 指令呢&#xff1f;指令就是可执行程序&#xff0c;和我们自己写的代码编译好的程序&#xff0c;没有本质区别&#xff01; 指令在系统的某一个位置存在&#xff01; 执行指令前&#xff0c;现在系统中查找对应的指令指令在根目录下…

计算机视觉(opencv)实战二十二——指纹图像中提取特征点,计算两两指纹之间的相似度

指纹识别原理与代码实现详解指纹识别是一种常见的生物特征识别技术&#xff0c;广泛应用于门禁系统、手机解锁、考勤打卡、身份认证等场景。其核心思想是&#xff1a;从指纹图像中提取特征点&#xff0c;计算两幅指纹之间的相似度&#xff0c;并根据相似度判断是否为同一人。本…

Linux基础之部署mysql数据库

文章目录一、环境准备二、源码解压与依赖三、CMake 编译配置四、配置 MySQL权限管理修改配置文件 /etc/my.cnf五、环境变量设置六、数据库初始化七、服务管理八、账号密码管理一、环境准备 yum -y install gcc gcc-c ncurses ncurses-devel bison cmakegcc / gcc-c&#xff1a…

代码审计-PHP专题原生开发文件上传删除包含文件操作监控Zend源码解密1day分析

快速分析脆弱&#xff1a;1、看文件路径2、看代码里面的变量&#xff08;可控&#xff09;3、看变量前后的过滤文件安全挖掘点&#xff1a;1、脚本文件名2、应用功能点3、操作关键字文件上传&#xff0c;文件下载(读取)&#xff0c;文件包含&#xff0c;文件删除等emlog-文件上…

零基础搭建 Hexo 博客:从本地到 GitHub Pages 全流程指南

零基础搭建 Hexo 博客&#xff1a;从本地到 GitHub Pages 全流程指南 Hexo 是一个快速、简洁且高效的博客框架&#xff0c;支持使用 Markdown 来编写文章&#xff0c;并能快速生成静态网页&#xff0c;非常适合想要搭建个人博客的同学。本文将带你从零开始&#xff0c;本地搭建…

Git 简介

Git 是目前全球最流行的分布式版本控制系统&#xff08;Distributed Version Control System, DVCS&#xff09;&#xff0c;核心作用是追踪文件修改历史、支持多人协同开发&#xff0c;并能高效管理代码&#xff08;或任何文本类文件&#xff09;的版本迭代。它由 Linux 内核创…

后端Web实战-Spring原理

目录 1. 配置优先级 2. Bean管理 2.1 获取Bean 2.2 Bean作用域 面试题&#xff1a;Lazy是如何解决循环依赖问题的&#xff1f; 2.3 第三方Bean 3. SpringBoot原理 3.1 起步依赖 3.2 自动配置 3.2.1 概述 3.2.2 自动配置的原理及常见方案 3.2.2.1 概述 3.2.2.2 方案…

在 Qoder 等 AI 二创 IDE 里用 VS Code Remote-SSH 的“曲线连接”实战

目标&#xff1a;让你在 Qoder 等在线/AI 辅助 IDE 中&#xff0c;也能像本地 VS Code 一样通过 Remote-SSH 连接到自己的远程服务器进行开发。 前提&#xff1a;只在你拥有或被授权的服务器上使用&#xff0c;遵守所用平台的条款与限制。两句话说清楚 先用本地 VS Code 正常连…