centos7 apache 利用yum安裝多版本php

在今天的教程中,我們想展示如何在CentOS 7 linux上使用apache運行多個PHP版本。

具有多個php版本並在單個服務器上與apache同時運行它是非常實用且常見的。

也許您有一個php腳本,並想使用多個php版本進行測試。在這種情況下,本文適合您。

讓我們解釋一下如何運行多個版本。

當我們從apache請求.php頁面時,它將參考“ SetHandler application / x-httpd-php” 以瞭解應加載哪個模塊來處理php腳本。關鍵是在這裡,php受apache控制。

在我們的方案中,情況有所不同。在這裡,我們使用稱為php-fpm的獨立php進程。php-fpm是配置為響應FCGI請求的php守護程序。

1.安裝apache和倉庫

如果您已安裝apache,請跳過yum install httpd

<code># yum install httpd

# yum install epel-release

# yum install yum-utils/<code>


2.安裝多個PHP版本

<code># yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
# yum install php56
# yum install php72
# yum install php56-php-fpm
# yum install php72-php-fpm/<code>

確保兩個版本均已停止

<code># systemctl stop php56-php-fpm
# systemctl stop php72-php-fpm/<code>

3.配置SELinux

要允許selinux運行php-fpms腳本,請運行以下命令:

<code># semanage port -a -t http_port_t -p tcp 9072
# semanage port -a -t http_port_t -p tcp 9056/<code>

4-配置php-fpm

每個php-fpm版本都在9000端口上偵聽。因為我們要運行多個php版本,所以我們需要更改默認端口:

<code># sed -i 's/:9000/:9056/' /etc/opt/remi/php56/php-fpm.d/www.conf
# sed -i 's/:9000/:9072/' /etc/opt/remi/php72/php-fpm.d/www.conf/<code>

現在運行兩個php-fpms:

<code># systemctl start php72-php-fpm
# systemctl start php56-php-fpm/<code>

現在我們需要製作腳本包裝器來調用php56-cgi和php72-cgi:

<code># cat > /var/www/cgi-bin/php56.fcgi << EOF
# #!/bin/bash
# exec /bin/php56-cgi
# EOF
# cat > /var/www/cgi-bin/php72.fcgi << EOF

# #!/bin/bash
# exec /bin/php72-cgi
# EOF/<code>

設置兩個腳本為可執行

<code># sudo chmod 755 /var/www/cgi-bin/php56.fcgi
# sudo chmod 755 /var/www/cgi-bin/php72.fcgi/<code>

5.配置Apache

我們創建兩條路徑。一個用於php-fpm56,另一個用於php-fpm72

<code># cat > /etc/httpd/conf.d/php.conf << EOF
# ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
# AddHandler php56-fcgi .php
# Action php56-fcgi /cgi-bin/php56.fcgi
# Action php72-fcgi /cgi-bin/php72.fcgi
# <directory>
# DirectoryIndex index.php
# AllowOverride all
# Require all granted
# /<directory>
# <directory>
# DirectoryIndex index.php
# AllowOverride all
# Require all granted
# /<directory>
# EOF/<code>

然後在這兩個路徑上放置兩個php腳本進行測試

<code># mkdir -p /var/www/html/php56
# mkdir -p /var/www/html/php72
# echo "" > /var/www/html/php56/index.php
# echo "" > /var/www/html/php72/index.php
# echo "AddHandler php72-fcgi .php" > /var/www/html/php72/.htaccess/<code>

6.啟動服務

現在,我們啟用並啟動apache和php-fpm服務:

<code># systemctl enable httpd
# systemctl enable php56-php-fpm
# systemctl enable php72-php-fpm
# systemctl start httpd
# systemctl start php56-php-fpm
# systemctl start php72-php-fpm/<code>

7.配置防火牆

我們需要打開端口80來訪問apache。因此,請運行以下命令:

<code># firewall-cmd --permanent --add-service=http
# firewall-cmd --reload/<code>

現在訪問如下地址:

<code>HTTP ://127.0.0.1/php56 
HTTP ://127.0.0.1/php72/<code>


分享到:


相關文章: