search
Homephp教程php手册[Installing PHP] How to compile and install PHP7 under openSUSE42.1

First of all, I recommend an article php 7 Release Date Arrived: Will Developers Adopt PHP 7? - PHP Classes blog. It talks about whether I will use PHP7. Personally, I will use it without hesitation, but the production environment is not my decision, so I can only update the PHP version in my own development environment. So, what about you?

First of all, I recommend an article php 7 Release Date Arrived: Will Developers Adopt PHP 7? - PHP Classes blog.

It talks about whether I will use PHP7. Personally, I will use it without hesitation, but I don’t have the final say in the production environment, so I can only update the PHP version in my own development environment. . So, what about you?

The author is using the openSUSE42.1 distribution of Linux. There is no installation package for PHP7 in Yast, so I can only compile and install it manually. As a PHP developer, I really hope to learn how to compile and install PHP7. I have tried it several times before, but every time I install it, I have to go online to find various information. So, after the successful installation this time, I want to go through my own installation process. And record the problems encountered so that you can refer to them later and share them with those who need them.

Download the source code and unzip it

Getting to the point, to compile and install PHP7, you must first download the source code of PHP7. You can clone it on github or download it from the PHP official website. After downloading, extract it to the /usr/local/src directory and rename the directory to php7. Enter the directory.

Configure compilation parameters

Generate configuration file

./buildconf

Configuration

./<span style="color: #000000;">configure \
</span>--PRefix=/usr/local/<span style="color: #000000;">php7 \
</span>--exec-prefix=/usr/local/<span style="color: #000000;">php7 \
</span>--bindir=/usr/local/php7/<span style="color: #000000;">bin \
</span>--sbindir=/usr/local/php7/<span style="color: #000000;">sbin \
</span>--includedir=/usr/local/php7/<span style="color: #000000;">include \
</span>--libdir=/usr/local/php7/lib/<span style="color: #000000;">php \
</span>--mandir=/usr/local/php7/php/<span style="color: #0000ff;">man</span><span style="color: #000000;"> \
</span>--with-config-<span style="color: #0000ff;">file</span>-path=/usr/local/php7/<span style="color: #000000;">etc \
</span>--with-MySQL-sock=/var/run/mysql/<span style="color: #000000;">mysql.sock \
</span>--with-mcrypt=/usr/<span style="color: #000000;">include \
</span>--with-<span style="color: #000000;">mhash \
</span>--with-<span style="color: #000000;">openssl \
</span>--with-mysqli=<span style="color: #000000;">shared,mysqlnd \
</span>--with-pdo-mysql=<span style="color: #000000;">shared,mysqlnd \
</span>--with-<span style="color: #000000;">gd \
</span>--with-<span style="color: #000000;">iconv \
</span>--with-<span style="color: #000000;">zlib \
</span>--enable-<span style="color: #0000ff;">zip</span><span style="color: #000000;"> \
</span>--enable-inline-<span style="color: #000000;">optimization \
</span>--disable-<span style="color: #000000;">debug \
</span>--disable-<span style="color: #000000;">rpath \
</span>--enable-<span style="color: #000000;">shared \
</span>--enable-<span style="color: #000000;">xml \
</span>--enable-<span style="color: #000000;">bcmath \
</span>--enable-<span style="color: #000000;">shmop \
</span>--enable-<span style="color: #000000;">sysvsem \
</span>--enable-<span style="color: #000000;">mbregex \
</span>--enable-<span style="color: #000000;">mbstring \
</span>--enable-<span style="color: #0000ff;">ftp</span><span style="color: #000000;"> \
</span>--enable-gd-native-<span style="color: #000000;">ttf \
</span>--enable-<span style="color: #000000;">pcntl \
</span>--enable-<span style="color: #000000;">sockets \
</span>--with-<span style="color: #000000;">xmlrpc \
</span>--enable-<span style="color: #000000;">soap \
</span>--without-<span style="color: #000000;">pear \
</span>--with-<span style="color: #000000;">gettext \
</span>--enable-<span style="color: #000000;">session \
</span>--with-<span style="color: #000000;">curl \
</span>--with-jpeg-<span style="color: #0000ff;">dir</span><span style="color: #000000;"> \
</span>--with-freetype-<span style="color: #0000ff;">dir</span><span style="color: #000000;"> \
</span>--enable-<span style="color: #000000;">opcache \
</span>--enable-<span style="color: #000000;">fpm \
</span>--disable-<span style="color: #000000;">cgi \
</span>--with-fpm-user=<span style="color: #000000;">nginx \
</span>--with-fpm-group=<span style="color: #000000;">nginx \
</span>--without-<span style="color: #000000;">gdbm \
</span>--disable-fileinfo

Parameter description

prefix root directory of PHP7 installation

with-config-file-path PHP7 configuration file directory

The result after executing the above configuration command is as shown below:

When executing the above command, you will encounter some prompts about missing dependencies. The dependency problems I encountered are listed below:

Error:

configure: error: xml2-config not found. Please check your libxml2 installation.

Solution:

zypper <span style="color: #0000ff;">install</span> libxml2-devel

Error:

configure: WARNING: unrecognized options: --with-mysql

Solution:

取消这个选项,这个选项是不存在的

Error:

configure: error: jpeglib.h not found.

Solution:

zypper <span style="color: #0000ff;">install</span> libjpeg-devel

Error:

configure: error: mcrypt.h not found. Please reinstall libmcrypt.

Solution:

zypper <span style="color: #0000ff;">install</span> libmcrypt-devel

Error:

checking <span style="color: #0000ff;">for</span><span style="color: #000000;"> recode support... yes
configure: error: Can not </span><span style="color: #0000ff;">find</span> recode.h anywhere under /usr /usr/local /usr /opt.

Solution:

zypper <span style="color: #0000ff;">install</span> librecode-devel

In general, when configuring, if you encounter something that is not available, open Yast and search for it. If it exists, install it, and then recompile to see what else is needed. If you can’t find it in Yast, then search online on Google .

Compile and install PHP7

<span style="color: #0000ff;">make</span> && <span style="color: #0000ff;">make</span> <span style="color: #0000ff;">install</span>

Among them, you can choose make test after make. It's just an optional step. I don't know if there will be any problems if you don't execute it, but I haven't encountered it yet.

View the PHP7 directory after successful installation

After successful compilation and installation, check the PHP7 installation directory `ls /usr/local/php7`:

Set up PHP7 configuration file

<span style="color: #0000ff;">cp</span> /usr/local/src/php7/php.ini-production /usr/local/php7/etc/<span style="color: #000000;">php.ini
</span><span style="color: #0000ff;">cp</span> /usr/local/src/sapi/fpm/init.d.php-fpm /etc/init.d/php-<span style="color: #000000;">fpm
</span><span style="color: #0000ff;">cp</span> /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-<span style="color: #000000;">fpm.conf
</span><span style="color: #0000ff;">cp</span> /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf

Set environment variables

Add

to the last line of the /etc/profile file
export PATH=/usr/local/php7/bin:/usr/local/php7/sbin:$PATH


Then execute source /etc/profile

Set the PHP log directory and php-fpm process file (php-fpm.sock) directory

<span style="color: #0000ff;">mkdir</span> -p /var/log/php-fpm/ && <span style="color: #0000ff;">mkdir</span> -p /var/run/php-fpm && cd /var/run/ && <span style="color: #0000ff;">chown</span> -R nginx:nginx php-fpm

Set PHP to start at boot

<span style="color: #0000ff;">chmod</span> +x /etc/init.d/php-<span style="color: #000000;">fpm
chkconfig php</span>-fpm on

You can use the chkconfig command to view the list of startup services.

Start PHP service

service php-fpm start

Check whether PHP is started successfully through ps aux | grep 'php'

At this point, PHP7 has been installed successfully, and you can start using PHP7!


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

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.