PHP 學習紀錄(一):PHP簡介、網站基本概念、環境建置
Bilibili有需多公開課可以學習,我所選擇的是 黑馬程序員 的 PHP教程
以下為我的學習紀錄與重點整理
一、PHP簡介
1.什麼是PHP
PHP定義:一種運行在服務器端的 HTML 腳本/編程語言
簡單、面向對象、解釋型、安全、性能高、獨立架構、可移植的動態腳本語言
2.靜態網站與動態網站的區別
(1)靜態網站(WEB1.0時代)
網站發布後,無論是否有用戶訪問, 每個靜態網頁的內容都保存在服務器上,每個網頁都是一個獨立文件
內容穩定,容易被搜尋引擎檢索
沒有數據庫支持,維護工作量大
交互性差,功能方面有較大限制
(2)動態網站(WEB2.0時代)
交互性高,網頁根據用戶要求和選擇改變和響應,瀏覽器作為客戶端成為動態交流的橋樑
自動更新,無須手動更新HTML文檔,會自動生成頁面大大減少工作量
因時因人而變,不同時間、不同用戶訪問同一個網址會出現不同頁面
二、網站基本概念
1.服務器概念
服務器(Server),又作伺服器。
服務器:能夠提供服務的機器,取決於機器上所安裝的軟體(服務軟體)
響應請求並進行處理,應具備承擔服務並保障服務的能力
服務器構成包括處理器、硬碟、內存、系統與通用計算機架構類似
根據服務類型不同,分為文件服務器、數據庫服務器、應用程序服務器、WEB服務器等
2.IP概念
IP(Internet Protocol):網路之間的互聯協議,為計算機網路相互連接而設計的協議
IP地址具有唯一性,每台電腦(網卡)都有一個唯一的IP位址
3.域名
域名(Domain Name) :由點分隔的名字(例如、www.google.com)組成的Internet上某一台計算機或計算機組的名稱
用於在數據庫傳輸時標示計算機的電子方位
一個域名的目的是便於記憶和溝通一組服務器的地址
4.DNS
DNS 域名系統(Domain Name System):作為網路上域名和IP地址相互映射的分布式數據庫
能讓用戶更方便訪問互聯網而不用記住被機器讀取的IP數串。
通過主機名,最終得到主機名之對應IP地址的過程叫做域名解析
以下為範例:
( 用戶輸入域名 localhost => DNS(localhost 127.0.0.1) => 服務器電腦 )
5.端口
端口 (Port) :設備與外界通訊交流的出口。
分為虛擬端口、物理端口。
虛擬端口指計算機內部或交換路由器內的端口。
以下為範例:
( 用戶輸入域名 localhost:端口 => DNS(localhost 127.0.0.1) => 服務器電腦 => 服務軟體(透過端口) )
三、web程序訪問流程
瀏覽器發起訪問 => DNS域名解析 => 服務器電腦 => 服務軟體(透過端口)
1.靜態網站訪問
※圖片擷取自黑馬程序員影片
2.動態網站訪問
相比靜態網站多出了:服務器端解析、資料庫
※圖片擷取自黑馬程序員影片
四、安裝Apache之httpd.exe介紹
- 安裝Apache
- Apache目錄結構說明
- Httpd.exe詳細應用
1.安裝Apache
由於我的作業系統是Windows
至 Apache官網 下載符合Windows運行的版本
解壓縮至自己想放置的目錄
我安裝在以下路徑:E:\server\apache\Apache24
並用記事本開啟conf目錄中的httpd.conf
將路徑修改為安裝的目錄Define SRVROOT "E:\server\apache\Apache24"
2.Apache目錄結構說明
以下為apache目錄
bin、cgi-bin:windows下的一些可執行文件
- ab.exe壓力測試
- ApacheMonitor.exe右下圖標控制
- httpd.exe Apache主程式
conf:配置文件目錄
- httpd.conf 主配置文件
- extra目錄則包含子配置文件
htdocs:Apache默認的主機位址(網站根目錄)
modules:Apache的所有功能都是模塊化的
3.Httpd.exe詳細應用
(1)服務器進程:運行之後才能夠工作
(2)查看Apache功能及配置是否錯誤:http或httpd.exe(文件所在目錄)
開啟cmd並切換到apache的bin目錄即可運行httpd.exe
※左圖為cmd指令,右圖為服務器進程
使用 ctrl+c 即可關閉
(3)查看使用模塊
輸入命令httpd.exe -M
static為靜態加載:Apache加載即可直接使用
shared為動態加載:使用到的時候才會加載
(4)驗證配置文件是否有效
輸入命令httpd -t
只要識別到 Syntax OK 就代表可以正常使用
(5)安裝apache
使用系統管理員開啟cmd
輸入 httpd.exe -k install
若發生錯誤只要去下載缺少的VC即可
(6)運行apache
輸入 httpd.exe -k start 開始運行
輸入 httpd.exe -k stop 停止運行
五、配置默認站點
- 讓Apache確定服務器訪問的位置:網站文件夾所在位置
- 方便用戶使用名字訪問對應的網站:給對應文件夾取一個別名
- 凡是涉及到Apache配置文件的修改,需要重啟Apache才能生效
- 實現DNS域名解析:通常默認站點為本地 DNS :host文件
1.讓Apache確定服務器訪問的位置
配置網站文件夾所在位置
使用記事本開啟conf目錄的httpd.conf文件
DocumentRoot "${SRVROOT}/htdocs"
也就是預先設置的路徑為根目錄中的htdocs目錄
2.方便用戶使用名字訪問對應的網站
給對應文件夾取一個別名
在httpd.conf文件中查找ServerNa
這裡其實可以不用設置端口(將:80去掉)
因為端口可以使用listen監聽端口
3.凡是涉及到Apache配置文件的修改,需要重啟Apache才能生效
使用 httpd.exe -k restart 重啟即可
4.實現DNS域名解析:
通常默認站點為本地 DNS :host文件
host文件在此目錄:C:\Windows\System32\drivers\etc
如果沒有權限修改,可以使用系統管理員開啟記事本,再用開啟舊檔的方式開啟host文件(開啟類型設置為所有檔案)
將"127.0.0.1 localhost"加入host文件中
設置完成後開啟cmd並運行apache即可看到It works訊息頁面
六、安裝PHP
- 安裝與配置 PHP 語言
- PHP的目錄結構說明
- Php.exe的應用
1.安裝與配置 PHP 語言
由於我的作業系統是Windows
至 PHP官網 下載符合Windows運行的版本
※PHP底層是C語言的實現,版本號的VC代表編譯環境
解壓縮至自己想放置的目錄,並修改目錄的名稱為php7
我放在以下路徑:E:\server\php7
2.PHP的目錄結構說明
dev:一些設備的驅動
ext:擴展包:PHP很多功能透過加載擴展包實現
php.exe:核心解析文件
php.ini:配置文件(將後綴development去除)
※配置php時區:開啟php.ini
移除timezone的註釋並添加台灣時間
date.timezone = "Asia/Taipei"
3.Php.exe的應用
在web目錄創建一個 index.php
並添加以下代碼進行測試:
<?php //輸出 echo "hello world"; ?>
接著使用cmd運行php.exe -f E:/server/web/index.php
可以看到已經解析成功了
七、PHP 加載 Apache
- 修改web文件目錄
- 找到php與apache的關聯文件
- 在apache的httpd.conf LoadModule PHP模塊
- 分配任務給PHP模塊
1.修改web文件目錄
在server目錄創建一個web文件夾
並修改apache的httpd.conf文件
將Document修改為web文件夾的路徑
DocumentRoot "E:\server\web"
<Directory "E:\server\web">
2.找到php與apache的關聯文件
在php7目錄中可以找到與apache的關聯文件
3.在apache的httpd.conf LoadModule PHP模塊
在server目錄創建一個web文件夾
並修改apache的httpd.conf文件
添加以下內容:
LoadModule php7_module E:/server/php7/php7apache2_4.dll
4.分配任務給PHP模塊
在apache的httpd.conf文件
添加以下內容:
#分配工作給PHP:所有以.php為後綴的文件都交給php.exe去處理 AddType application/x-httpd-php .php
4.加載php配置文件
在apache的httpd.conf文件
添加以下內容:
#加載php配置文件 PHPInidir "E:/server/php7
以上步驟完成後運行apache並在瀏覽器開啟localhost/index.php
就可以看到已經成功解析了
接著測試能否查看php信息,將index.php修改以下內容:
<?php //php信息 phpinfo(); ?>
也可以正確顯示了
八、Mysql
- 下載mysql
- 設置系統環境變數
- 配置mysql
- 安裝mysql
- 初始化mysql
- 運行mysql
- 創建超級使用者與密碼
- 訪問mysql
1.下載mysql
至MySQL官網下載
2.設置系統環境變數
在開始功能表對本機點選右鍵、內容開啟系統頁面
點選進階系統設定、環境變數
並將mysql目錄位置添加至使用者變數的path路徑中
3.配置mysql
將下載的檔案解壓縮至C槽,並在其中創建<my.ini>配置文件
加入以下內容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
[mysqld] #設置mysql的安裝目錄 basedir =C:/mysql-8.0.11-winx64 #設置mysql數據庫的數據的存放目錄 datadir =C:/mysql-8.0.11-winx64/data #設置默認使用的端口 port =3306 #允許最大連接數 max_connections =200 #允許連接失敗的次數。這是為了防止有人試圖攻擊數據庫 max_connect_errors =10 #服務端使用的字符集 character- set -server =utf8mb4 #數據庫字符集對應一些排序等規則使用的字符集 collation-server =utf8mb4_general_ci #創建新表時將使用的默認存儲引擎 default -storage-engine =INNODB #默認使用“mysql_native_password”插件作為認證加密方式 # MySQL8.0默認認證加密方式為caching_sha2_password default_authentication_plugin =mysql_native_password [mysql] #設置mysql客戶端默認字符集 default -character- set =utf8mb4 [client] default -character- set =utf8mb4 port =3306 |
在bin目錄的路徑列啟動cmd
4.初始化mysql?
1
|
mysqld --initialize-insecure --user:mysql --console |
5.安裝mysql
1
|
mysqld --install mysql |
6.啟動mysql
1
|
net start mysql |
7.啟創建超級使用者與密碼
1
|
alter user 'root' @ 'localhost' identified by 'test123456' ; |
8.訪問mysql(密碼為test123456):
1
|
mysql -u root -p |
九、安裝虛擬主機
- 虛擬主機分類
- 加載httpd-vhosts.conf
- 配置虛擬主機文件
- 增加基於域名的虛擬主機標籤
- 配置虛擬主機重要信息
- 權限配置
- 配置hosts文件
1.虛擬主機分類
IP虛擬主機、域名虛擬主機
2.加載httpd-vhosts.conf
開啟 apache/conf 的 httpd.conf
將虛擬機的註釋去掉
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
3.配置虛擬主機文件
開啟 apache/conf/extra/httpd-vhosts.conf 文件
將預設的虛擬機標籤刪除
(1)增加基於域名的虛擬主機標籤
(2)配置虛擬主機重要信息
DocumentRoot 站點位置:放網頁的文件夾位置
ServerName 主機名稱:本地開發隨意取名,對外提供服務則應為真實的域名
(3)權限配置
權限是針對文件夾的,通常至少會設置網站的跟目錄,實際上可以設置N個
Directory:針對指定目錄
Require:訪問權限
Directoryindex:用戶未指定訪問腳本時默認提供的文件
最後配置如下:
1
|
#<VirtualHost *:80> #</VirtualHost> |
4.配置hosts文件
host文件在此目錄:C:\Windows\System32\drivers\etc
如果沒有權限修改,可以使用系統管理員開啟記事本,再用開啟舊檔的方式開啟host文件(開啟類型設置為所有檔案)
將"127.0.0.1 www.ivankao.com"加入host文件中
最後restart Apache後用瀏覽器即可確認成功結果
留言列表