Home >Backend Development >PHP Tutorial >Compile and install php7.2 on CentOS

Compile and install php7.2 on CentOS

不言
不言Original
2018-06-02 16:03:141664browse

This article mainly introduces the compilation and installation of php7.2 on CentOS. It has certain reference value. Now I share it with everyone. Friends in need can refer to it

Introduction:

I have heard for a long time that the speed and performance of php7 are faster than any version of the php5 series. How good is the specific performance? It is recommended to try it first. If you are upgrading or installing a new one, you first need to consider whether there is compatibility between php7 and the program. If the program is developed based on php5, then you need to consider whether php7 is suitable for your current production environment. Today I will do it and install it. in production.

Install the php dependency package first, otherwise various errors will appear during the compilation and installation of php7. After the installation is completed, you can enter the next step.

Install the extension package and update the system kernel:

yum install epel-release -yyum update

Install php dependent components (including Nginx dependencies):

yum -y install wget vim pcre pcre-devel openssl openssl-devel libicu-devel gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses ncurses-devel curl curl-devel krb5-devel libidn libidn-devel openldap openldap-devel nss_ldap jemalloc-devel cmake boost-devel bison automake libevent libevent-devel gd gd-devel libtool* libmcrypt libmcrypt-devel mcrypt mhash libxslt libxslt-devel readline readline-devel gmp gmp-devel libcurl libcurl-devel openjpeg-devel

Create users and groups, and download and decompress the php installation package:

cd /tmp
groupadd www
useradd -g www wwwwget http://am1.php.net/distributions/php-7.2.1.tar.gztar xvf php-7.2.1.tar.gz
cd php-7.2.1

Set variables and start source code compilation:

cp -frp /usr/lib64/libldap* /usr/lib/
./configure --prefix=/usr/local/php \--with-config-file-path=/usr/local/php/etc \--enable-fpm \--with-fpm-user=www \--with-fpm-group=www \--enable-mysqlnd \--with-mysqli=mysqlnd \--with-pdo-mysql=mysqlnd \--enable-mysqlnd-compression-support \--with-iconv-dir \--with-freetype-dir \--with-jpeg-dir \--with-png-dir \--with-zlib \--with-libxml-dir \--enable-xml \--disable-rpath \--enable-bcmath \--enable-shmop \--enable-sysvsem \--enable-inline-optimization \--with-curl \--enable-mbregex \--enable-mbstring \--enable-intl \--with-mcrypt \--with-libmbfl \--enable-ftp \--with-gd \--enable-gd-jis-conv \--enable-gd-native-ttf \--with-openssl \--with-mhash \--enable-pcntl \--enable-sockets \--with-xmlrpc \--enable-zip \--enable-soap \--with-gettext \--disable-fileinfo \--enable-opcache \--with-pear \--enable-maintainer-zts \--with-ldap=shared \--without-gdbm

If no error is reported, execute One-step installation. If an error occurs during the compilation process, install the dependent package according to the error report. This problem usually does not occur.

Note: –enable-gd-jis-conv This parameter will cause Zabbix Chinese characters to be garbled. It is recommended to cancel it.

Start the installation:

make -j 4 && make install

Configure the php.ini file after completing the installation:

cp php.ini-development /usr/local/php/etc/php.inicp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.confcp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

Modify php. ini related parameters:

vim /usr/local/php/etc/php.ini
expose_php = Off
short_open_tag = ON
max_execution_time = 300max_input_time = 300memory_limit = 128M
post_max_size = 32Mdate.timezone = Asia/Shanghai
mbstring.func_overload=2extension = "/usr/local/php/lib/php/extensions/no-debug-zts-20170718/ldap.so"#OPcache 缓存
[opcache]
zend_extension=/usr/local/php/lib/php/extensions/no-debug-zts-20170718/opcache.so
opcache.memory_consumption=128opcache.interned_strings_buffer=8opcache.max_accelerated_files=4000opcache.revalidate_freq=60opcache.fast_shutdown=1opcache.enable_cli=1#设置php安全函数
disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru


#配置www.conf
listen = /var/run/www/php-cgi.sock
listen.owner = www
listen.group = www
listen.mode = 0660listen.allowed_clients = 127.0.0.1pm = dynamic
listen.backlog = -1pm.max_children = 180pm.start_servers = 50pm.min_spare_servers = 50pm.max_spare_servers = 180request_terminate_timeout = 120request_slowlog_timeout = 50slowlog = var/log/slow.log

Configure www.conf

listen = /var/run/www/php-cgi.sock
listen.owner = www
listen.group = www
listen.mode = 0660listen.allowed_clients = 127.0.0.1pm = dynamic
listen.backlog = -1pm.max_children = 180pm.start_servers = 50pm.min_spare_servers = 50pm.max_spare_servers = 180request_terminate_timeout = 120request_slowlog_timeout = 50slowlog = var/log/slow.log

Create php-cgi.sock storage directory

mkdir /var/run/www/chown -R www:www /var/run/www

Configure php-fpm.conf

vim /usr/local/php/etc/php-fpm.conf

取下以下注释并填写完整路径:

pid = /usr/local/php/var/run/php-fpm.pid

至此php7已经安装完成。

说明:禁用php函数,如果程序需要这些函数,可以取消禁止,新手建议忽略此步骤。

创建system系统单元文件php-fpm启动脚本:

vim /usr/lib/systemd/system/php-fpm.service

添加如下变量内容:

[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target

[Service]
Type=simple
PIDFile=/usr/local/php/var/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target

启动php-fpm服务并加入开机自启动:

systemctl enable php-fpm.service
systemctl restart php-fpm.service

The above is the detailed content of Compile and install php7.2 on CentOS. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn