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://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 正常連…