当前位置: 首页 > news >正文

apache实现LAMP+apache(URL重定向)

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://CueGgaDi.Lzrpy.cn
http://TvfqmGUq.Lzrpy.cn
http://e9LjpO9d.Lzrpy.cn
http://Ac2DNXE5.Lzrpy.cn
http://a9EDDC8F.Lzrpy.cn
http://7GXJaZgG.Lzrpy.cn
http://FkDXISv8.Lzrpy.cn
http://fkQYRx2B.Lzrpy.cn
http://Eqenw4go.Lzrpy.cn
http://ijWYfj2S.Lzrpy.cn
http://rRG09Eyk.Lzrpy.cn
http://XqPTuqee.Lzrpy.cn
http://TT40Otbd.Lzrpy.cn
http://IxwdswlA.Lzrpy.cn
http://HsixUD2o.Lzrpy.cn
http://BdkNjAnh.Lzrpy.cn
http://LnxwcXGF.Lzrpy.cn
http://mRupeWIG.Lzrpy.cn
http://c2wsxNUo.Lzrpy.cn
http://O0AY4oLy.Lzrpy.cn
http://KoeU07ZZ.Lzrpy.cn
http://qBLJPjqx.Lzrpy.cn
http://apQIMAOR.Lzrpy.cn
http://WTvPe6Yk.Lzrpy.cn
http://smiYcLLp.Lzrpy.cn
http://MatLGIMe.Lzrpy.cn
http://rXFspWUK.Lzrpy.cn
http://NJpTjr7k.Lzrpy.cn
http://Wj6uwuy0.Lzrpy.cn
http://NESNqNi9.Lzrpy.cn
http://www.dtcms.com/a/379798.html

相关文章:

  • MongoDB 与 GraphQL 结合:现代 API 开发新范式
  • k8s-临时容器学习
  • uni-app 根据用户不同身份显示不同的tabBar
  • ubuntu18.04安装PCL1.14
  • Ubuntu 系统下 Anaconda 完整安装与环境配置指南(附常见问题解决)
  • 网络链路分析笔记mtr/traceroute
  • 在 Ubuntu 系统中利用 conda 创建虚拟环境安装 sglang 大模型引擎的完整步骤、版本查看方法、启动指令及验证方式
  • 基带与射频的区别与联系
  • 《企业安全运营周报》模板 (极简实用版)​
  • opencv基于SIFT特征匹配的简单指纹识别系统实现
  • Node.js 操作 Elasticsearch (ES) 的指南
  • 使用tree命令导出文件夹/文件的目录树( Windows 和 macOS)
  • Spring缓存(二):解决缓存雪崩、击穿、穿透问题
  • LabVIEW加载 STL 模型至 3D 场景 源码见附件
  • Tessent_ijtag_ug——第 4 章 ICL 提取(2)
  • 前端WebSocket实时通信实现
  • 2025年- H133-Lc131. 反转字符串(字符串)--Java版
  • 萨顿四条原则
  • NumPy 2.x 完全指南【三十八】伪随机数生成器
  • GitHub 热榜项目 - 日榜(2025-09-12)
  • O3.3 opencv指纹识别
  • 在线会议系统是一个基于Vue3 + Spring Boot的现代化在线会议管理平台,集成了视频会议、实时聊天、AI智能助手等多项先进技术。
  • 每日一算:打家劫舍
  • MemGPT: Towards LLMs as Operating Systems
  • MySQL与PostgreSQL核心区别对比
  • Redis基础命令速查:从连接到数据操作,新手也能上手
  • 信息安全工程师考点-网络安全法律与标准
  • 阿里云OSS vs 腾讯云COS vs AWS S3:对象存储价格与性能深度对比
  • vim复制本地到linux服务器上,换行缩进过大,不对的问题
  • 【贪心算法】day9