簡體   English   中英

如何在AWS EC2 Linux上將HTML文件作為PHP處理?

[英]How do I process HTML files as PHP on AWS EC2 Linux?

我正在嘗試轉到AWS EC2,但遇到了一個棘手的問題。 我花了整整一天的時間嘗試可以在Stack Overflow和其他地方找到的所有可能的解決方案,但無濟於事。

我想將.htm文件處理為PHP文件。 以.php結尾的文件可以很好地處理,但是我無法將.htm文件作為PHP處理。

如果我在.htaccess中使用此“ AddHandler”語法,則不會發生任何事情:

AddHandler application/x-httpd-php .htm

“ x-httpd-php”實際上可以是任何東西。 沒關系 即使這樣也無濟於事:

AddHandler application/its-a-fish .htm

另一方面,使用此“ AddType”語法,總是使文件由瀏覽器下載 ,而不是解析為代碼:

AddType application/x-httpd-php .htm

同樣,“ application /”后面的內容也沒有關系。 所有這些導致文件被下載而不是被處理:

AddType application/its-a-fish .htm
AddType application/x-http-php7 .htm
AddType application/x-http-php73 .htm

下載文件后,Response標頭中的Content-Type就是.htaccess中“ AddType”之后的內容,例如:

Content-Type: application/x-http-php73

因此,也許我只是找不到運行PHP的“應用程序”標識符?

我已經嘗試了大約10個小時內(尤其是在這些線程中)可以找到的每個代碼示例,但是沒有任何效果:

服務器未將.html解析為PHP

將HTML文件解析為PHP

http://kb.cloudblue.com/en/115773

我懷疑它可以在所有以前的服務器上運行而不是在AWS上運行的原因是因為PHP在AWS(而不是Apache Handler)上以FastCGI的身份運行,但是我不知道如何使其與FastCGI一起運行。

以下是我目前已安裝的相關軟件包:

[root@ip-172-31-30-111 etc]# rpm -qa | egrep 'http|php'
libnghttp2-1.31.1-1.amzn2.0.2.x86_64
httpd-tools-2.4.39-1.amzn2.0.1.x86_64
mod_http2-1.14.1-1.amzn2.x86_64
php-pdo-7.3.6-1.amzn2.0.1.x86_64
generic-logos-httpd-18.0.0-4.amzn2.noarch
httpd-filesystem-2.4.39-1.amzn2.0.1.noarch
httpd-2.4.39-1.amzn2.0.1.x86_64
php-json-7.3.6-1.amzn2.0.1.x86_64
php-mysqlnd-7.3.6-1.amzn2.0.1.x86_64
php-cli-7.3.6-1.amzn2.0.1.x86_64
php-common-7.3.6-1.amzn2.0.1.x86_64
php-fpm-7.3.6-1.amzn2.0.1.x86_64

終於弄明白了,主要是由於這篇文章: https : //talk.plesk.com/threads/cant-get-php-versions-to-serve-html-as-php.342045/page-2#post- 854770

以下是在AWS EC2 Linux上專門要做的事情:

  1. 將這些行添加到.htaccess,更改“文件”部分,以指定要作為PHP處理的擴展名:

     <IfModule mod_proxy_fcgi.c> <Files ~ (\\.htm$)> SetHandler proxy:unix:/run/php-fpm/www.sock|fcgi://127.0.0.1:9000 </Files> </IfModule> 
  2. 更改/etc/php-fpm.d/www.confsecurity.limit_extensions設置,以允許您在.htaccess中添加的擴展名(加上.php):

     security.limit_extensions = .php .htm 
  3. 重新啟動php-fpm服務(重新啟動httpd不會強制重新讀取www.conf):

     service php-fpm restart 

如果您沒有執行#2而執行了#1,則會出現“拒絕訪問”錯誤。 步驟2是解決此問題的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM