[Linux series] Centos 7 installation of PHP

Keywords: PHP Nginx yum RPM

objective

For the following Laravel deployment, this article starts to install PHP.

Set PHP source

Check if the Centos source has PHP.

yum list php*

Take a closer look at the PHP version.

yum info php.x86_64

It can be seen from the above figure that the PHP source version is too low and needs a higher version.

Set up a higher version of the PHP source.

rpm -ivh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -ivh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum list php* #Update the source and view the current PHP source

Now php72 version is available, install.

yum install -y php72w-fpm  php72w-fpm php72w-cli.x86_64 php72w-common.x86_64 php72w.x86_64 php72w-dba.x86_64 php72w-devel.x86_64 php72w-embedded.x86_64 php72w-enchant.x86_64 php72w-gd.x86_64 php72w-imap.x86_64 php72w-interbase.x86_64 php72w-intl.x86_64 php72w-ldap.x86_64 php72w-mbstring.x86_64 php72w-mysqlnd.x86_64  php72w-odbc.x86_64 php72w-opcache.x86_64 php72w-pdo.x86_64 php72w-pdo_dblib.x86_64 php72w-soap.x86_64 php72w-xml.x86_64 php72w-xmlrpc.x86_64 php72w-mbstring.x86_64 php72w-mcrypt.x86_64 php-posix

After the installation is successful, check php

php -v

Let's create a new website.

service php-fpm start # Start php
systemctl enable php-fpm # Set boot entry
ps -ef | grep php # Check whether it starts normally

Set SELinux

vi /etc/selinux/config
SELINUX=permissive

Restart the virtual machine, do not set SELinux, nginx access PHP FPM will have permission issues.

mkdir -p /var/www/Test
cd /var/www/Test   
vi index.php

index.php

<?php
    phpinfo();
?>

nginx site config configuration

cd /etc/nginx/conf.d
vi devtest.plat.goods
server {
   listen       80;
   server_name  devtest.plat.goods;
   root "/var/www/Test";

   index index.html index.htm index.php;

   location ~ (.+\.php)(.*)$ {

        fastcgi_split_path_info ^(.+\.php)(.+)$;
        fastcgi_pass unix:/var/run/php-fpm/php7-fpm.sock;   #Communicating with unix socket
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;

        fastcgi_intercept_errors off;
        fastcgi_buffer_size 16k;
        fastcgi_buffers 4 16k;
        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
   }
}

Configure PHP FPM

vi /etc/php-fpm.d/www.conf

listen = /var/run/php-fpm/php7-fpm.sock 
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

service php-fpm restart 
service nginx reload
service nginx status

When a physical host accesses a virtual machine site, you need to configure the hosts of the physical machine
C:\Windows\System32\drivers\etc\hosts
192.168.10.18 devtest.plat.goods

Visit http://devtest.plat.goods/index.php

Posted by novicephp on Fri, 22 Nov 2019 08:27:10 -0800