PHP PHP與Apache的模組配合說明

2021-09-07 16:28:31 字數 1578 閱讀 5608

1.當php需要在apache伺服器下執行時

一般來說,它可以mod_php5模組的形式整合, 此時mod_php5模組的作用是接收apache傳遞過來的php檔案請求,並處理這些請求, 然後將處理後的結果返回給apache。

載入方式有兩種:apache啟動時的載入,或者執行的時候動態裝載

2.apache的執行過程

apache的執行分為啟動階段和執行階段。 在啟動階段,apache為了獲得系統資源最大的使用許可權,將以特權使用者root(*nix系統)

並且整個過程處於乙個單程序單執行緒的環境中。 這個階段包括配置檔案解析(如http.conf檔案)、模組載入(如mod_php,mod_perl)和系統資源初始化(例如日誌檔案、共享記憶體段、資料庫連線等)等工作。在執行階段,apache主要工作是處理使用者的服務請求。 在這個階段,apache放棄特權使用者級別,使用普通許可權,這主要是基於安全性的考慮,防止由於**的缺陷引起的安全漏洞。

通過hook機制,將mod_php5的自定義函式注入請求處理迴圈中,參與php的處理

3.apache2的mod_php5模組說明

apache中的module結構體,定義了很多成員

php中的mod_php5模組,使用這個結構體定義,並賦值。其中有乙個php_dir_cmds的成員,是個陣列裡面包括了幾個php的指令,例如:php_value,php_admin_value等

apache定義的結構體:

typedef struct

module_struct module;

struct

module_struct

php中對結構體的賦值:

ap_module_declare_data module php5_module =;

const command_rec php_dir_cmds =

};

我的練習:

1.c語言陣列

int a=;//整型陣列

char *b=;//字串陣列

printf("%d %s \n",a[2],b[0]);

2.typedef:給型別起乙個別名

int

main();

//給型別起個別名

typedef struct

stu stu;

//1.定義結構體

stu student;

student.age=10

; student.name="

taoshihan";

printf(

"%s \n

",student.name);

}

3.幾個預定義巨集:

printf("%d\n",__line__);//返回當前行數

printf("%s\n",__file__);//返回當前原始檔名稱

4.const:禁止修改變數的值,常量

Apache中載入PHP,PHP中載入MySQL

apache安裝 php安裝 mysql安裝 1.開啟c software zdyhj apache24 conf httpd.conf,在loadmodule處加入 在apache中以module的方式載入php php7 module指php的版本號 loadmodule php7 module...

php PHP與Mysql的連線

展示效果 繁寫 echo this is a test echo asdfasdfadsf mysql server name localhost 資料庫伺服器名稱 mysql username root 連線資料庫使用者名稱 mysql password 連線資料庫密碼 mysql databas...

Apache2新增mod rewrite模組

loadmodule rewrite module modules mod rewrite.so 可是昨天裝了apache2最新版卻出了意外,去掉了這行,rewrite還沒開啟 用了乙個下午,百思不得其解.終於發現httpd.conf裡有這麼一段 possible values for the op...