Cách cấu hình chạy nhiều phiên bản PHP cho webserver Apache trên CentOs 7

Cài đặt gói Epel và Remi

 # yum -y install epel-release 
# yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm 

Cài đặt Webserver Apache trên CentOs 7

# yum -y install httpd

Cấu hình Webserver Apache trên CentOs 7

# vi /etc/httpd/conf/httpd.conf 
Dòng 86: Đổi địa chỉ email của bạn
ServerAdmin [email protected]
Dòng 95: Đổi thành server name của bạn
ServerName apache.centos7:80
Dòng 151 : Đổi
AllowOverride All
Dòng 164 : Thêm File Name để Server có thể access được với tên thư mục
DirectoryIndex index.html index.cgi index.php
Thêm vào cuối file config 2 dòng sau:
ServerTokens Prod
KeepAlive On

# systemctl start httpd
# systemctl enable httpd
Mở port 80 trên firewall hoặc stop firewall trên CentOs 7
# firewall-cmd --add-service=http --permanent
success
# firewall-cmd --reload
success
Tạo file html để kiểm tra webserver apache đã hoạt động hay chưa.
# vi /var/www/html/index.html
<html>
<body>
<div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;"> Test Page
</div>
</body>
</html>

Kiểm tra cấu hình webserver apache trên CentOs 7

Vì mình ssh từ laptop vào server nên phải sửa lại file host trên laptop bằng cách như sau:

192.168.48.131        apache.centos7

Cách khác là check trực tiếp tại server apache

# curl -I http://192.168.48.132
 HTTP/1.1 200 OK
Date: Mon, 18 Feb 2019 04:52:48 GMT
Server: Apache
Last-Modified: Mon, 18 Feb 2019 04:35:59 GMT
ETag: "82-58223a94f4b95"
Accept-Ranges: bytes
Content-Length: 130
Content-Type: text/html; charset=UTF-8

Cài đặt Mariadb 10.2 database server trên centOs 7

Để cài đặt phiên bản mới nhất, chúng ta có thể tạo ra gói Repo cho nó. Bằng cách tạo file và thêm như sau:


# vi /etc/yum.repos.d/mariadb.repo
[mariadb]
name = MariaDB baseurl = http://yum.mariadb.org/10.2/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
# yum install MariaDB-client MariaDB-server
# systemctl start mariadb
# systemctl enable mariadb
# mysql_secure_installation
Enter current password for root (enter for none):
Set root password? [Y/n] y
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] no
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

Cài đặt PHP5.6 cho Apache trên CentOs 7

# yum install --enablerepo=remi php56-php php56-php-mysql php56-php-bcmath php56-php-cli php56-php-common php56-php-dba php56-php-devel php56-php-embedded php56-php-enchant php56-php-gd php56-php-imap php56-php-mbstring php56-php-mcrypt php56-php-pdo php56-php-xml

Cài đặt PHP7.2 cho Apache trên CentOs 7

 # yum install --enablerepo=remi php72-php php72-php-mysql php72-php-bcmath php72-php-cli php72-php-common php72-php-dba php72-php-devel php72-php-embedded php72-php-enchant php72-php-gd php72-php-imap php72-php-mbstring php72-php-mcrypt php72-php-pdo php72-php-xml

Muốn hiển thị lệnh mặc định khi kiểm tra version PHP thì add thêm lệnh

ln -s /usr/bin/php72 /usr/bin/php

Kiểm tra xem file config php đang load ở 5.6 hay là 7.2 thì dùng lệnh

 
php --ini | grep "Loaded Configuration File"

Cài đặt và cấu hình PHP56-FPM và PHP7.2-FPM Cho Apache Server trên CentOs 7

Trước khi start dịch vụ, mọi người nên tắt SELinux trước:

# vi /etc/selinux/config
SELINUX=disabled

# reboot
# yum install --enablerepo=remi php56-php-fpm
# yum install --enablerepo=remi php72-php-fpm

Đổi port

# vi /opt/remi/php56/root/etc/php-fpm.d/www.conf
listen = 127.0.0.1:9056
# vi /etc/opt/remi/php72/php-fpm.d/www.conf
listen = 127.0.0.1:9072

Khởi động dịch vụ php-fpm của 2 version 5.6 và 7.2

# systemctl start php56-php-fpm
# systemctl enable php56-php-fpm
# systemctl start php72-php-fpm
# systemctl enable php72-php-fpm

Tạo wrapper scripts

# vi /var/www/cgi-bin/php56.fcgi
!/bin/bash
PHPRC="/opt/remi/php56/root/etc/php.ini"
PHP_FCGI_CHILDREN=4
PHP_FCGI_MAX_REQUESTS=10000000
export PHPRC
export PHP_FCGI_CHILDREN
export PHP_FCGI_MAX_REQUESTS
exec /usr/bin/php56-cgi


# vi /var/www/cgi-bin/php72.fcgi
!/bin/bash
PHPRC="/etc/opt/remi/php72/php.ini"
PHP_FCGI_CHILDREN=4
PHP_FCGI_MAX_REQUESTS=10000000
export PHPRC
export PHP_FCGI_CHILDREN
export PHP_FCGI_MAX_REQUESTS
exec /usr/bin/php72-cgi

Script phải được thực thi và sở hữu bởi user và group apache

# chmod 755 /var/www/cgi-bin/php56.fcgi
# chmod 755 /var/www/cgi-bin/php72.fcgi
# chown -R apache:apache /var/www/cgi-bin/php72.fcgi
# chown -R apache:apache /var/www/cgi-bin/php56.fcgi

Tạo Virtual host chạy php5.6 và Virtual Host chạy PHP 7.2

Trước khi tạo file Vhost, cần phải thêm “NameVirtualHost *:80” vào cuối file config

# vi /etc/httpd/conf/httpd.conf
NameVirtualHost *:80

Tạo 2 file vhost cho php5.6 và php7.2

# vi /etc/httpd/conf.d/vhost56.conf

<VirtualHost *:80>
        ServerName vhost56.apache
        ServerAlias www.vhost56.apache
       DocumentRoot /var/www/html/web56/
        ErrorLog logs/web56_log
       ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
    <Directory "/var/www/html/web56">
           Options +Indexes +FollowSymLinks +ExecCGI
           AddHandler php56-fcgi .php
            Action php56-fcgi /cgi-bin/php56.fcgi
            AllowOverride All
            Order allow,deny
           Allow from All
    </Directory>
</VirtualHost>

 
# vi /etc/httpd/conf.d/vhost72.conf
<VirtualHost *:80>
        ServerName vhost72.centos7
        ServerAlias www.vhost72.centos7
       DocumentRoot /var/www/html/web72/
        ErrorLog logs/web72_log
       ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
    <Directory "/var/www/html/web72">
           Options +Indexes +FollowSymLinks +ExecCGI
           AddHandler php72-fcgi .php
            Action php72-fcgi /cgi-bin/php72.fcgi
            AllowOverride All
            Order allow,deny
           Allow from All
    </Directory>
</VirtualHost>

Tạo thư mục và file info.php

# mkdir /var/www/html/web56/
# mkdir /var/www/html/web72/
# vi /var/www/html/web56/
<?php
phpinfo();
?>

# vi /var/www/html/web72/
<?php
phpinfo();
?>

Kết quả

Leave a Reply

Your email address will not be published. Required fields are marked *