教你建立虛擬主機並運行php專案(phpstudy + wamp)
PHP環境與虛擬主機的建立(phpstudy wamp)
本文涉及兩款php的整合環境
- phpstudy
- wampserver
這兩款都含mysql apache php,phpstudy的功能比wamp要強大,而且十分簡單容易上手。
phpstudy易用性是因為它幫我們封裝了很多繁瑣易出錯的操作,但是如果直接使用它 我們並不了解其背後的實現方式,所以先學習wamp可以讓我們熟悉一下原理。
一、wamp建立網站
1.1 了解預設網站程式
#安裝完成後,托盤圖示是正常的綠色。
我的程式是安裝在了D:\wamp64
,發現正常後直接訪問頁面localhost
,預設的連接埠是80,可以忽略
得到正常的回應,這個頁面是來自D:\wamp64\www\index.php
,也就是wamp安裝目錄下的www資料夾存放著預設的網站程式。
1.2 建立新的虛擬主機
此時我們需要先了解幾個檔案。
- hosts,檔案位置:
C:\Windows\System32\drivers\etc
作用就是將一些常用的網址網域名稱與其對應的IP位址建立一個關聯“資料庫”,當使用者在瀏覽器中輸入一個需要登入的網址時,系統會先自動從Hosts檔案中尋找對應的IP位址,一旦找到,系統會立即開啟對應網頁,如果沒有找到,則係統會再將網址提交DNS網域解析伺服器進行IP位址的解析。
-
httpd.conf
,檔案位置:D:\wamp64\bin\apache\apache2.4.17\conf
#這個檔案是apache 的設定文件,一般不需要改動的。
-
httpd-vhosts.conf
,檔案位置:D:\wamp64\bin\apache\apache2.4.17\conf\extra
這個文件是虛擬主機文件,要建立新的網站時都需要在該文件中配置才生效。
下面我有一個需求:
一台電腦只跑一個程式我覺得太浪費,而且我本機的80埠被佔用,我想開一個網站用test.com:81
來進行訪問
一)、按照hosts檔案的作用,當我訪問test.com:81的時候我需要它直接跳轉而不去進行dns網域解析
所以,依照固定格式在hosts檔案中加入一行
# 当访问www.test.com时 , 我们告诉电脑直接解析到本机127.0.0.1 不用去dns域名解析。# :81属于端口号 不需要添加到这里127.0.0.1 www.test.com
二)、上一步只告訴電腦解析到本地,但我們還沒有對應的虛擬主機
所以需要在httpd-vhosts.conf
中設定一個新的虛擬主機。
<virtualhost> DocumentRoot "网站程序目录" ServerName 绑定的域名 ServerAlias 绑定的域名别名 <directory> Options FollowSymLinks ExecCGI AllowOverride All Order allow,deny Allow from all Require all granted </directory> </virtualhost>
另外VirtuaHost *:連接埠號碼
這裡填寫完後並不會生效,原因是我們沒有允許apache啟用虛擬主機,現在去啟用,在httpd.conf
檔案中
#最後設定一下,wamp的apache服務的預設連接埠:
成功獲得回應。
二、Phpstudy創建網站
看完了wamp後真是感覺非常的繁瑣,接下來用phpstudy試試。
需求不變,還是建立一個網站www.test.com:81
,
1.1 效果示範
一)、直接啟動apache
二)、建立網站
##
根目录选择项目的根目录
三)、查看效果
这就完成了…
1.2 配置文件查看
使用过wamp后我们知道,配置一个虚拟主机需要改三个文件,下面看一下phpstudy的操作。
一)、hosts
由于做wamp的时候已经手动添加过了,所以这个文件看不出来两者的差异。
二)、httpd.conf和vhost.conf
在wamp中,我们将多个虚拟主机的配置项都放在了一个文件中。
在phpstudy里,将每个网站的配置项单独抽离出个自己的文件并放到了一个文件夹中。
httpd-vhosts.conf详解
首先看下面的配置:
<virtualhost> ServerAdmin webmaster@dummy-host.example.com DocumentRoot "D:/xampp/htdocs/wherein" ServerName www.shop_dev.com ErrorLog "logs/wherein.com-error.log" CustomLog "logs/wherein.com-access.log" common <directory> Options FollowSymLinks IncludesNOEXEC Indexes DirectoryIndex index.html index.htm index.php AllowOverride all Order Deny,Allow Allow from all Require all granted </directory> </virtualhost>
ServerAdmin指令:
语法: ServerAdmin email-address|URL
用来设置服务器返回给客户端的错误信息中包含的管理员邮件地址。便于用户在收到错误信息后能及时与管理员取得联系。
ServerName指令:
语法:ServerName [scheme://] FQDN [:port]
用来设置服务器用于辨识自己的主机名和端口号。主要用于创建重定向URL。
DocumentRoot指令:
语法:DocumentRoot directory-path
用来设置httpd提供服务的目录。即你所在项目入口处的文件夹。
ErrorLog指令:
语法: ErrorLog file-path
来设置当服务器遇到错误时记录错误日志的文件。如果file-path不是以/开头的绝对路径,那么将会被认为是一个相对于ServerRoot的相对路径。
CustomLog指令:
语法: ErrorLog file-path common
设置日志文件,并指明日志文件所用的格式(通常通过格式的名字)。
为主目录或虚拟目录设置权限。
特性:
Options FollowSymLinks IncludesNOEXEC Indexes
命 令 | 说 明 |
---|---|
Indexes | 允许目录浏览当客户仅指定要访问的目录,但没有指定要访问目录下的哪个文件,而且目录下不存在默认文档时,Apache以超文本形式返回目录中的文件和子目录列表(虚拟目录不会出现在目录列表中) |
MultiViews | 允许内容协商的多重视图MultiViews其实是Apache的一个智能特性。当客户访问目录 中一个不存在的对象时,如访问“http://192.168.66.6/data/a”,则Apache会查找这个目录下所有a.*文件。由于 data目录下存在a.gif文件,因此Apache会将a.gif文件返回给客户,而不是返回出错信息 |
All | All包含了除MultiViews之外的所有特性,如果没有Options语句,默认为All |
ExecCGI | 允许在该目录下执行CGI脚本 |
FollowSymLinks | 可以在该目录中使用符号连接 |
Includes | 允许服务器端包含功能 |
IncludesNoExec | 允许服务器端包含功能,但禁用执行CGI脚本 |
一旦定义允许目录浏览,就会将Web站点的文件夹和文件名结构暴露给黑客。目录浏览还会允许黑客浏览文件并掌握服务器配置信息,所以指定该权限往往带来安全性上的隐患。除非有充足的理由要使用目录浏览,否则应该禁用它。
DirectoryIndex index.html index.htm index.php
设置访问目录后进入的默认文件
AllowOverride all
定义位于每个目录下.htaccess(访问控制)文件中的指令类型。none为禁止使用.htaccess文件
Order Deny,Allow
Allow from all
设置缺省的访问权限与Allow和Deny语句的处理顺序
allow, deny:缺省禁止所有客户机的访问,且Allow语句在Deny语句之前被匹配。如果某条件既匹配Deny语句又匹配Allow语句,则Deny语句会起作用(因为Deny语句覆盖了Allow语句)。
deny, allow:缺省允许所有客户机的访问,且Deny语句在Allow语句之前被匹配。如果某条件既匹配Deny语句又匹配Allow语句,则Allow语句会起作用(因为Allow语句覆盖了Deny语句)。
eg.
Order deny ,allow Deny from baidu.com Deny from 192.168.66.6除了来自baidu.com域和ip地址为192.168.66.6的客户机外,允许所有客户机访问 Order deny ,allow Allow from 192.168.66.6 Deny from 192.168.66.1既匹配Deny语句又匹配Allow语句,由于allow语句覆盖了deny语句,所以是允许所有客户机访问 Order allow ,deny Allow from 192.168.66.6 Deny from 192.168.66.1既匹配Deny语句又匹配Allow语句,由于deny语句覆盖了allow语句,所以是禁止所有客户机访问
推荐学习:《PHP视频教程》
以上是教你建立虛擬主機並運行php專案(phpstudy + wamp)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

CakePHP 是 PHP 的開源框架。它旨在使應用程式的開發、部署和維護變得更加容易。 CakePHP 基於類似 MVC 的架構,功能強大且易於掌握。模型、視圖和控制器 gu

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

CakePHP 是一個開源MVC 框架。它使應用程式的開發、部署和維護變得更加容易。 CakePHP 有許多函式庫可以減少大多數常見任務的過載。

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、
