Home > Backend Development > PHP8 > Teach you step by step how to set up a php8 environment (with solutions to common problems)

Teach you step by step how to set up a php8 environment (with solutions to common problems)

藏色散人
Release: 2023-02-17 12:44:01
forward
5720 people have browsed it

This article is provided by the php8 tutorial column to give you a detailed introduction on how to build a php8 environment step by step. I hope it will be helpful to everyone.

1. Download

1. Download https://www.php.net/distributions/php-8.0.0.tar.gz locally and upload the file to /usr/local /src/

2. wget -P /usr/local/src/ https://www.php.net/distributions/php-8.0.0.tar.gz

2. Unzip, compile, install

1, decompress

> cd /usr/local/src/
> tar xzf php-8.0.0.tar.gz
> cd php-8.0.0
Copy after login

2, configure compilation parameters, refer to https://www.php.net/manual/zh... to choose the options you need

./configure --prefix=/usr/local/php8 --with-config-file-path=/usr/local/php8/etc --with-fpm-user=www --with-fpm-group=www --with-curl --with-openssl --with-mysqli --with-pdo-mysql --with-iconv --with-mhash --with-zlib  --enable-mbstring  --enable-gd   --enable-gd-jis-conv --enable-sockets --enable-fpm --enable- --enable-xml  --enable-pdo  --enable-cli --enable-pcntl --enable-soap --enable-opcache --enable-fileinfo --disable-rpath --enable-mysqlnd --with-zip --enable-simplexml --with-libxml --with-sqlite3 --with-pdo-sqlite --enable-phar --enable-tokenizer --enable-cgi
Copy after login

Problem 1:

configure: error: Package requirements (libxml-2.0 >= 2.9.0) were not met:
Package 'libxml-2.0', required by 'virtual:world', not found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables LIBXML_CFLAGS
and LIBXML_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
Copy after login

Problem 1 solved:

> yum install libxml2-devel
Copy after login

Problem 2:

configure: error: Package requirements (sqlite3 > 3.7.4) were not met:
Copy after login

Problem 2 solved:

> yum install sqlite-devel
Copy after login

Problem 3:

configure: error: Package requirements (libcurl >= 7.29.0) were not met:
Copy after login

Problem 3 solved:

> yum install libcurl-devel
Copy after login

Problem 4:

configure: error: Package requirements (libpng) were not met:
Copy after login

Problem 4 solved:

> yum install libpng libpng-devel
Copy after login

Problem 5:

configure: error: Package requirements (oniguruma) were not met:
Copy after login

Solution to problem 5:

> cd /usr/local/src/
> wget http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus/x86_64/RPMS.classic/liboniguruma5-6.9.6-alt1.x86_64.rpm -O liboniguruma5-6.9.6-alt1.x86_64.rpm
> rpm -ivh liboniguruma5-6.9.6-alt1.x86_64.rpm
> wget http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus/x86_64/RPMS.classic/liboniguruma-devel-6.9.6-alt1.x86_64.rpm -O liboniguruma-devel-6.9.6-alt1.x86_64.rpm 
> rpm liboniguruma-devel-6.9.6-alt1.x86_64.rpmcli
Copy after login

Problem 6:

configure: error: Package requirements (libzip >= 0.11 libzip != 1.3.1 libzip != 1.7.0) were not met:
Copy after login

Solution to problem 6:

> yum install libzip libzip-devel
Copy after login

Configuring compilation parameters successfully

+--------------------------------------------------------------------+
| License:                                                           |
| This software is subject to the PHP License, available in this     |
| distribution in the file LICENSE. By continuing this installation  |
| process, you are bound by the terms of this license agreement.     |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point.                            |
+--------------------------------------------------------------------+
Thank you for using PHP.
Copy after login

3. Compile source code

> make -j2 # This compilation relies on the number of system CPU cores, which will improve performance to a certain extent. Generally, the number of cores should not exceed half.

4. Installation

make install
Copy after login

Installation successful

[root@54skyer php-8.0.0]# make install
Installing shared extensions:     /usr/local/php8/lib/php/extensions/no-debug-non-zts-20200930/
Installing PHP CLI binary:        /usr/local/php8/bin/
Installing PHP CLI man page:      /usr/local/php8/php/man/man1/
Installing PHP FPM binary:        /usr/local/php8/sbin/
Installing PHP FPM defconfig:     /usr/local/php8/etc/
Installing PHP FPM man page:      /usr/local/php8/php/man/man8/
Installing PHP FPM status page:   /usr/local/php8/php/php/fpm/
Installing phpdbg binary:         /usr/local/php8/bin/
Installing phpdbg man page:       /usr/local/php8/php/man/man1/
Installing PHP CGI binary:        /usr/local/php8/bin/
Installing PHP CGI man page:      /usr/local/php8/php/man/man1/
Installing build environment:     /usr/local/php8/lib/php/build/
Installing header files:          /usr/local/php8/include/php/
Installing helper programs:       /usr/local/php8/bin/
  program: phpize
  program: php-config
Installing man pages:             /usr/local/php8/php/man/man1/
  page: phpize.1
  page: php-config.1
/usr/local/src/php-8.0.0/build/shtool install -c ext/phar/phar.phar /usr/local/php8/bin/phar.phar
ln -s -f phar.phar /usr/local/php8/bin/phar
Installing PDO headers:           /usr/local/php8/include/php/ext/pdo/
Copy after login

5. Add environment variables

> vim /etc/profile # 在文件末尾加入
# PATH=$PATH:/usr/local/php8/bin/
# export PATH
# :wq 保存并退出
> source /etc/profile # 立刻生效配置
> php -v # 获得如下信息

php -v
PHP 8.0.0 (cli) (built: Dec 15 2020 02:46:59) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
Copy after login

6. Obtain default configuration

// 复制php.ini到编译配置参数指定的目录。php.ini在解压的源码目录里
> cp /usr/local/src/php-8.0.0/php.ini-production /usr/local/php8/etc/php.ini
// 复制一份php-fpm的配置模版文件到同级目录 方便备份和修改
> cp /usr/local/php8/etc/php-fpm.conf.default /usr/local/php8/etc/php-fpm.conf
// 复制一份php-fpm的扩展配置模板文件到同级目录 方便备份和修改
> cp /usr/local/php8/etc/php-fpm.d/www.conf.default /usr/local/php8/etc/php-fpm.d/www.conf
// 复制开启自起脚本到系统启动自动加载脚本目录。fpm/init.d.php-fpm在解压的源码目录里
> cp /usr/local/src/php-8.0.0/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
Copy after login

7. Start automatically after booting

The setting command can be executed

> chmod +x /etc/init.d/php-fpm # 添加可执行权限
Copy after login

Check the self-starting script

> service php-fpm start # 检验服务启动
> service php-fpm stop # 检验服务关闭
// 均正常提示
> chkconfig php-fpm on # 设置开机自动执行php-fpm开机自启动脚本
> reboot # 重启,ssh重连
# 重启后
[root@54skyer ~]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1097/nginx: master  
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1061/sshd           
tcp        0      0 0.0.0.0:16379           0.0.0.0:*               LISTEN      1090/redis-server 0 
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      1083/php-fpm: maste
Copy after login

7. Additional instructions

Some instructions about the configuration file

php-fpm.conf is unique to PHP-FPM Configuration file

php.ini is a necessary configuration file in all php modes

The difference between the two is that php-fpm.conf is the configuration file of the PHP-FPM process manager, php. ini is the configuration file of the PHP parser

Some PHP versions also have the /fpm.d/www.conf configuration file in the configuration file path

This is configured by php-fpm.conf File extension file, you can open the php-fpm.conf file to view

; include=fpm.d/*.conf
Copy after login

We can use php-fpm.conf to configure the slow log

We can enable the slow log function.

slowlog = /usr/local/var/log/php-fpm.log.slow
request_slowlog_timeout = 5s
Copy after login

The above is the detailed content of Teach you step by step how to set up a php8 environment (with solutions to common problems). For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:segmentfault.com
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template