日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

探探自动配对PHP_CentOS7 - 安装Apache HTTP Server和PHP

發(fā)布時間:2023/12/2 php 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 探探自动配对PHP_CentOS7 - 安装Apache HTTP Server和PHP 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

安裝Apache HTTP Server和PHP

你可能聽說過LAMP的縮寫,它代表Linux,Apache,MySQL和PHP。 它指的是用于提供網(wǎng)站和Web應(yīng)用程序的流行技術(shù)配對。 本文教您如何安裝Apache HTTP Server(簡稱Apache)并將其配置為與PHP一起使用以提供動態(tài)Web內(nèi)容.

Apache是20多年前首次發(fā)布的,它是最早的Web服務(wù)器之一,它仍然是最受歡迎的服務(wù)器之一。 它在LAMP堆棧中的任務(wù)是通過響應(yīng)他們對Web資源的請求來與用戶交互。 也許它的一個賣點是它的設(shè)計允許其功能通過模塊擴展。 mod_ssl中存在許多模塊,它們?yōu)閙od_rewrite添加了HTTPS支持,允許您動態(tài)修改請求URL.

PHP是一種用于創(chuàng)建動態(tài)Web內(nèi)容的腳本語言。 它在幕后工作,腳本的輸出通常由Apache提供以滿足請求。 PHP通常作為模塊(mod_php)安裝,將語言的解釋器嵌入到Apache的處理中,但是現(xiàn)在,將PHP作為獨立進程運行是首選。 這是我們將在本文中采用的方法.

準備

此配方需要具有有效網(wǎng)絡(luò)連接的CentOS系統(tǒng)。 它假定系統(tǒng)配置了IP地址192.168.56.100。 通過使用root帳戶登錄或使用sudo,還需要管理權(quán)限。

請注意,官方CentOS存儲庫安裝PHP 5.4。 如果要安裝較新版本,Remi存儲庫提供5.5,5.6和7.0。 要安裝其中一個5.x版本,請打開/etc/yum.repos.d/remi.repo文件,找到[remi-php55]或[remi-php56]部分中的enabled選項并將其值設(shè)置為1 。對于7.0,更新/etc/yum.repos.d/remi-php70.repo中的enabled選項.

注意

PHP 6發(fā)生了什么? 這是一個漫長的故事......開發(fā)PHP的志愿者團隊正在開發(fā)第6版,但該計劃面臨許多障礙,最終被擱置。 為了防止最新版本和任何關(guān)于PHP 6的博客帖子之間出現(xiàn)混淆,我們決定將其版本號提升到7.簡而言之,PHP 6確實存在但從未達到適當?shù)陌l(fā)布狀態(tài)且大部分都很酷 計劃為6的功能使其成為PHP 5.3,5.4和7.0.

怎么做

請按照以下步驟安裝Apache HTTP Server和PHP:

  • 安裝httpd和php-fpm軟件包:
yum install httpd php-fpm
  • 使用文本編輯器打開Apache的配置文件:
vi /etc/httpd/conf/httpd.conf
  • 找到ServerName選項。 刪除出現(xiàn)在行開頭的#以取消注釋,然后更改選項的值以反映服務(wù)器的主機名或IP地址:
ServerName 192.168.56.100:80
  • 找到DirectoryIndex選項并將index.php添加到列表中:
DirectoryIndex index.html index.php
  • At the end of the file, add the following configuration:
ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/var/www/html/$1
  • 將更改保存到配置并關(guān)閉文件。
  • 驗證是否已啟用mod_proxy(列為proxy_module)和mod_proxy_fcgi(proxy_fcgi_module)擴展模塊:
httpd -M | grep proxy
  • 兩個模塊都應(yīng)出現(xiàn)在輸出中。
  • 啟動Apache和PHP的FPM服務(wù),并使它們在系統(tǒng)重新啟動時自動啟動:
systemctl start httpd.service php-fpm.servicesystemctl enable httpd.service php-fpm.service
  • 在系統(tǒng)的防火墻中打開端口80以允許HTTP請求通過:
firewall-cmd --zone=public --permanent --add-service=httpfirewall-cmd --reload

工作原理

有幾種方法可以將PHP與Apache的HTTP服務(wù)器集成,以生成動態(tài)Web內(nèi)容。 從歷史上看,使用Apache的mod_php模塊是可行的方法,但現(xiàn)在首選的方法是將PHP作為一個單獨的進程運行,Web服務(wù)器使用FastCGI協(xié)議進行通信。 因此,我們?yōu)锳pache HTTP Server安裝了httpd包,為PHP解釋器及其進程管理器安裝了php-fpm包:

yum install httpd php-fpm

PHP FastCGI進程管理器(FPM)包含在5.3版本的核心PHP發(fā)行版中。 將PHP與Apache分離可以鼓勵更具可擴展性的體系結(jié)構(gòu),并且使用持久性PHP進程可以減少CPU開銷,因為不必為每個請求生成新的解釋器.

Apache的主要配置文件是/etc/httpd/conf/httpd.conf,其中我們更新了ServerName選項以反映我們服務(wù)器的主機名或IP地址。 雖然此步驟并非嚴格必要,但如果我們不設(shè)置該選項,則服務(wù)器會將警告消息寫入其日志文件。 此外,服務(wù)器能夠識別自身也很有用:

ServerName 192.168.56.100:80

接下來,我們通過將index.php添加到其值列表來更新DirectoryIndex選項。 當用戶請求解析為目錄的資源時,服務(wù)器將在該目錄中查找與DirectoryIndex列表中的某個名稱匹配的文件。 如果找到,Apache將返回該文件以滿足請求。 此行為允許訪問者使用諸如www.example.com之類的URL訪問網(wǎng)站的主頁,而不是www.example.com/index.html:

DirectoryIndex index.html index.php

列出文件的順序非常重要。 例如,如果目錄中存在index.html和index.php,那么將返回index.html,因為它在選項列表中的index.php之前列出.

然后我們導(dǎo)航到文件末尾以添加以下代理配置。 如果ProxyPassMatch的正則表達式與傳入請求匹配,則服務(wù)器將檢索給定的URL并返回該內(nèi)容:

ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/var/www/html/$1

正則表達式使用描述如何匹配文本的特殊符號編寫。 大多數(shù)字符在字面上是匹配的,但有些字符具有特殊含義:

  • .: 這符合任何角色。 模式不。 匹配文本芽,bug,包子,總線等.
  • +: 這與前一個元素匹配一次或多次。 模式fe + t匹配fet,feet和fetet等,但不匹配ft.
  • *: 這可選地任意次數(shù)匹配前面的元素。 模式fe * t匹配ft,fet,feet,fetet等.
  • ?: 這可選地匹配前一個元素一次。 圖案顏色與顏色和顏色相匹配.
  • ^: 這會將匹配錨定到行的開頭。 模式^ abc僅匹配abcif abc出現(xiàn)在文本的開頭(^在[]中使用時具有特殊意義).
  • $: 這將匹配錨定到行尾。 如果xyz出現(xiàn)在行的末尾,則模式xyz $僅匹配xyz.
  • [ ]: 這匹配括號內(nèi)給出的任何字符。 模式co [lr]與冷和繩索相匹配。 當[]中的第一個字符是^時,列表被否定; co [^ lr] d匹配男女同校但不冷或繩索.
  • ( ): 這會將元素分組并捕獲匹配項。 模式跳轉(zhuǎn)(編輯)? 匹配跳躍和跳躍.

如果你想要任何這些特殊字符在字面上匹配,那么你應(yīng)該使用前導(dǎo)反斜杠來逃避它們,例如foo .html將匹配foo.html而不是fooahtml,foobhtml等等.

特殊數(shù)字變量(如$ 1和$ 2)包含任何捕獲的匹配項的值。 它們的填充順序是括號捕獲匹配的順序,因此(foo)。(html)將$ 1設(shè)置為foo,將$ 2設(shè)置為html.

有了這個理解,你現(xiàn)在應(yīng)該能夠破譯正則表達式^ /(。* .php)$捕獲以擴展名.php結(jié)尾的請求資源的路徑和文件名。 $ 1變量代表捕獲的路徑,因此對/about/staff.php的請求將代理為fcgi://127.0.0.1:9000 / var / www / html / about /staff.php其中PHP的Fast-CGI監(jiān)聽器是 在端口9000上偵聽本地接口.

Apache的功能通常通過模塊擴展,作為一種安全措施,在IfModule塊中包裝特定于模塊的配置選項是一種很好的做法。 這些塊的打開包含模塊的名稱,并顯示在尖括號<>中。 塊的關(guān)閉顯示為 IfModule>,就像關(guān)閉HTML元素一樣.

服務(wù)器從中提供文件的目錄由選項DocumentRoot設(shè)置。 默認值為/ var / www / html,因此我們放置在其中或其中的子目錄中的任何文件都是可訪問的。 作為一個例子來說明這一點,分發(fā)包括一個示例index.html文件,我們可以用它來驗證服務(wù)器是否正確運行; 將/usr/share/httpd/noindex/index.html文件復(fù)制到/ var / www / html:

cp /usr/share/httpd/noindex/index.html /var/www/html

然后,打開瀏覽器并導(dǎo)航到系統(tǒng)的域或IP地址。 您應(yīng)該看到歡迎頁面:

您可以將Apache的默認索引頁復(fù)制到Web目錄,以測試服務(wù)器是否已啟動并正在運行

對于PHP,您需要將一個PHP文件放在Fast-CGI服務(wù)可以讀取的位置。 代理URL是fcgi://127.0.0.1:9000 / var / www / html / $ 1,因此我們可以將我們的PHP文件放在/ var / www / html中.

使用以下內(nèi)容創(chuàng)建info.php文件:

<?php phpinfo();

現(xiàn)在保存文件,然后導(dǎo)航到瀏覽器中的頁面。 您應(yīng)該看到PHP的phpinfo()函數(shù)的輸出,它提供了有關(guān)如何配置PHP以及哪些模塊可用的詳細信息:

PHP報告有關(guān)其環(huán)境和請求的信息

注意

出于安全考慮,建議您刪除welcome index.html文件(如果您將其復(fù)制過來),并在驗證一切正常后刪除info.php腳本。 它們提供的信息可以為惡意用戶提供有關(guān)您的Web服務(wù)器設(shè)置的更多信息,而不是您希望擁有的信息.

See also

Refer to the following resources for more information on working with Apache and PHP:

  • Apache HTTP Server Project (http://httpd.apache.org/)
  • The PHP home page (http://php.net/)
  • Apache mod_proxy_fcgi documentation (http://httpd.apache.org/docs/current/mod/mod_proxy_fcgi.html)
  • Httpd Wiki: PHP-FPM (http://wiki.apache.org/httpd/PHP-FPM)
  • RFC-2616: HTTP/1.1 (http://www.rfc-base.org/txt/rfc-2616.txt)
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的探探自动配对PHP_CentOS7 - 安装Apache HTTP Server和PHP的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。