Jadual Kandungan
创建php用户和用户组
编译安装php 7所需的依赖
PHP 7编译参数的配置
开始编译安装PHP 7
选做步骤:执行make test命令进行测试
查看编译成功后的PHP7安装目录
开始设置PHP7的配置文件php.ini、php-fpm.conf、www.conf和php-fpm脚本
添加php的环境变量
设置PHP日志目录和php-fpm进程文件(php-fpm.sock)目录
设置PHP开机启动以及测试配置文件是否正确
启动php服务
查看PHP7版本信息
Rumah pembangunan bahagian belakang tutorial php 详细介绍CentOS7编译安装PHP7的示例代码(图)

详细介绍CentOS7编译安装PHP7的示例代码(图)

Mar 28, 2017 pm 04:16 PM

创建php用户和用户组

首先创建一个名为php且没有登录权限的用户和一个名为php的用户组

#######新建php用户和php组[root@localhost ~]
# groupadd -r php && useradd -r -g php -s /bin/false -d /usr/local/php7 -M php
Salin selepas log masuk

编译安装php 7所需的依赖

编译安装 libmcrypt, mhash, mcrypt 二进制源码包
这里之所以编译安装libmcrypt,原因是yum安装的貌似会报错

######编译安装libmcrypt-2.5.7
[root@localhost ~]# tar zxvf libmcrypt-2.5.7.tar.gz
[root@localhost ~]# cd libmcrypt-2.5.7
[root@localhost libmcrypt-2.5.7]# ./configure --prefix=/usr/local/related/libmcrypt
[root@localhost libmcrypt-2.5.7]# make && make install
[root@localhost libmcrypt-2.5.7]# cd ~
[root@localhost ~]# rm -rf libmcrypt-2.5.7*
Salin selepas log masuk
######编译安装mhash-0.9.9.9
[root@localhost ~]# tar zxf mhash-0.9.9.9.tar.gz 
[root@localhost ~]# cd mhash-0.9.9.9
[root@localhost mhash-0.9.9.9]# ./configure --prefix=/usr/local/related/mhash
[root@localhost mhash-0.9.9.9]# make && make install
[root@localhost mhash-0.9.9.9]# cd ~
[root@localhost ~]# rm -rf mhash-0.9.9.9*
Salin selepas log masuk
######编译安装mcrypt-2.6.8
[root@localhost ~]# tar zxf mcrypt-2.6.8.tar.gz && cd mcrypt-2.6.8
[root@localhost mcrypt-2.6.8]# export LD_LIBRARY_PATH=/usr/local/related/libmcrypt/lib:/usr/local/related/mhash/lib
[root@localhost mcrypt-2.6.8]# export LDFLAGS="-L/usr/local/related/mhash/lib -I/usr/local/related/mhash/include/"
[root@localhost mcrypt-2.6.8]# export CFLAGS="-I/usr/local/related/mhash/include/"
[root@localhost mcrypt-2.6.8]# ./configure --prefix=/usr/local/related/mcrypt --with-libmcrypt-prefix=/usr/local/related/libmcrypt
[root@localhost mcrypt-2.6.8]# make && make install
[root@localhost mcrypt-2.6.8]# cd ~
[root@localhost ~]# rm -rf mcrypt-2.6.8*
Salin selepas log masuk
######其他依赖yum安装[root@localhost ~]
# yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel
Salin selepas log masuk

PHP 7编译参数的配置

注意,操作时一定要先把下面反斜杠“\”后面添加的注释文字去掉!!!

######生成配置文件
[root@localhost ~]# tar -zxf php-7.0.0.tar.gz && cd php-7.0.0
[root@localhost php-7.0.0]# ./buildconf --force
Forcing buildconf
Removing configure caches
buildconf: checking installation...
buildconf: autoconf version 2.69 (ok)
rebuilding configure
rebuilding main/php_config.h.in
######开始配置

[root@localhost php-7.0.0]# ./configure \
--prefix=/usr/local/php7 \                              [PHP7安装的根目录]
--exec-prefix=/usr/local/php7 \
--bindir=/usr/local/php7/bin \
--sbindir=/usr/local/php7/sbin \
--includedir=/usr/local/php7/include \
--libdir=/usr/local/php7/lib/php \
--mandir=/usr/local/php7/php/man \
--with-config-file-path=/usr/local/php7/etc \           [PHP7的配置目录]
--with-mysql-sock=/var/run/mysql/mysql.sock \           [PHP7的Unix socket通信文件]
--with-mcrypt=/usr/include \
--with-mhash \
--with-openssl \
--with-mysql=shared,mysqlnd \                           [PHP7依赖mysql库]              
--with-mysqli=shared,mysqlnd \                          [PHP7依赖mysql库]
--with-pdo-mysql=shared,mysqlnd \                       [PHP7依赖mysql库]
--with-gd \
--with-iconv \
--with-zlib \
--enable-zip \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-xml \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-mbregex \
--enable-mbstring \
--enable-ftp \
--enable-gd-native-ttf \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--without-pear \
--with-gettext \
--enable-session \                                      [允许php会话session]
--with-curl \                                           [允许curl扩展]
--with-jpeg-dir \
--with-freetype-dir \
--enable-opcache \                                      [使用opcache缓存]
--enable-fpm \
--enable-fastcgi \
--with-fpm-user=nginx \                                 [php-fpm的用户]
--with-fpm-group=nginx \                                [php-fpm的用户组]
--without-gdbm \
--with-mcrypt=/usr/local/related/libmcrypt \            [指定libmcrypt位置]
--disable-fileinfo
Salin selepas log masuk

执行上面的配置命令的运行结果如下:
php 7配置结果

开始编译安装PHP 7

[root@localhost php-7.0.0]# make clean && make && make install
Salin selepas log masuk

PHP 7编译安装成功
PHP 7编译安装成功

选做步骤:执行make test命令进行测试

这是一个非必需的操作步骤,执行make test命令

PHP 7 test

查看编译成功后的PHP7安装目录

由于需要和MySQL进行通信,所以需要特别查看PHP7安装后的lib扩展库目录(/usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/)。需要确保至少存在mysqli.so、pdo_mysql.so这两个动态库文件,如下图所示。

[root@localhost php-7.0.0]# ls -lrt /usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/
Salin selepas log masuk

php 7 目录

开始设置PHP7的配置文件php.ini、php-fpm.conf、www.conf和php-fpm脚本

可以用编译后的配置文件复制到PHP7的配置目录(/usr/local/php7/etc/),推荐使用 github中的配置。这个配置来自《PHP7中php.ini、php-fpm和www.conf的配置》

#######方法一:直接使用编译后未经优化处理的配置
[root@localhost php-7.0.0]# cp php.ini-production /usr/local/php7/etc/php.ini
[root@localhost php-7.0.0]# cp /root/php-7.0.0/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@localhost php-7.0.0]# cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
[root@localhost php-7.0.0]# cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf

#######方法二:使用https://github.com/lizer2014/mylnmp/tree/master/PHP文中的配置 
[root@localhost php-7.0.0]# mv ~/php.ini /usr/local/php7/etc/php.ini && mv ~/php-fpm /etc/init.d/php-fpm
[root@localhost php-7.0.0]# mv ~/php-fpm.conf /usr/local/php7/etc/php-fpm.conf && mv ~/www.conf /usr/local/php7/etc/php-fpm.d/www.conf
Salin selepas log masuk

注意:需要修改php.ini配置中的参数,extension_dir改为自己的

extension_dir = "/usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/"
Salin selepas log masuk

其中在/etc/init.d/php-fpm中在start函数的守护进程前必须有make /var/run/php-fpm命令,否则重启服务器会导致启动失败,nginx中配置也有这个问题

添加php的环境变量

[root@localhost php-7.0.0]# echo -e '\nexport PATH=/usr/local/php7/bin:/usr/local/php7/sbin:$PATH\n' >> /etc/profile && source /etc/profile
Salin selepas log masuk

设置PHP日志目录和php-fpm进程文件(php-fpm.sock)目录

其中,设置php-fpm进程目录的用户和用户组为nginx,并创建php会话session目录

#######设置PHP日志目录和php-fpm的运行进程ID文件(php-fpm.sock)目录
[root@localhost php-7.0.0]
# groupadd -r nginx && useradd -r -g nginx -s /bin/false -M nginx
[root@localhost php-7.0.0]
# mkdir -p /var/log/php-fpm/ && mkdir -p /var/run/php-fpm && cd /var/run/ && chown -R nginx:nginx php-fpm
#######修改session的目录配置
[root@localhost run]# mkdir -p /var/lib/php/session
[root@localhost run]
# chown -R nginx:nginx /var/lib/php
Salin selepas log masuk

设置PHP开机启动以及测试配置文件是否正确

######配置开机自启动,增加到主机sysV服务
[root@localhost run]# chmod +x /etc/init.d/php-fpm
[root@localhost run]# chkconfig --add php-fpm
[root@localhost run]# chkconfig php-fpm on
######测试PHP的配置文件是否正确合法
[root@localhost run]# php-fpm -t
[05-Dec-2015 17:33:03] NOTICE: configuration file /usr/local/php7/etc/php-fpm.conf test is successful
Salin selepas log masuk

启动php服务

在完成上面的操作后,就可以正式使用php服务了。启动php进程服务的命令如下:

[root@localhost init.d]# service php-fpm startStarting php-fpm  done
Salin selepas log masuk

然后可以通过命令ps -aux|grep php查看是否成功(图中的php-fpm进程数和进程用户nginx都是由www.conf中pm.start_servers和user的值分别决定的):

PHP 7 ps -aux

查看PHP7版本信息

最后,可以通过命令php -v查看当前PHP版本信息,图中可以看到当前PHP7还使用了Zend OPcache缓存,是因为在php.ini文件中添加了zend_extension=opcache.so配置。

PHP 7 version

相关文章:

Mac默认使用自己安装的php

centos6.7安装php7的详细介绍

详细介绍Linux下安装php环境并且配置Nginx支持php-fpm模块(图文)

Atas ialah kandungan terperinci 详细介绍CentOS7编译安装PHP7的示例代码(图). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

CentOS7 pelbagai versi alamat muat turun imej dan penerangan versi (termasuk versi Semuanya) CentOS7 pelbagai versi alamat muat turun imej dan penerangan versi (termasuk versi Semuanya) Feb 29, 2024 am 09:20 AM

Semasa memuatkan CentOS-7.0-1406, terdapat banyak versi pilihan Bagi pengguna biasa, mereka tidak tahu yang mana satu untuk dipilih. Berikut adalah pengenalan ringkas: (1) CentOS-xxxx-LiveCD.ios dan CentOS-xxxx- Apa. adakah perbezaan antara bin-DVD.iso? Yang pertama hanya mempunyai 700M, dan yang kedua mempunyai 3.8G. Perbezaannya bukan sahaja dalam saiz, tetapi perbezaan yang lebih penting ialah CentOS-xxxx-LiveCD.ios hanya boleh dimuatkan ke dalam memori dan dijalankan, dan tidak boleh dipasang. Hanya CentOS-xxx-bin-DVD1.iso boleh dipasang pada cakera keras. (2) CentOS-xxx-bin-DVD1.iso, Ce

Langkah-langkah untuk memasuki mod pembaikan kecemasan CentOS 7 Langkah-langkah untuk memasuki mod pembaikan kecemasan CentOS 7 Jan 13, 2024 am 09:36 AM

Buka halaman centos7 dan muncul: selamat datang ke mod kecemasan! afterloggingin, taip "journalctl -xb" untuk melihatsystemlogs, "systemctlreboot" toreboot, "systemctldefault" untuk mencuba semula kebootintodefaultmode. giverootpasswordformaintenance(??Control-D???): Penyelesaian: laksanakan r

Bagaimana untuk mengakses dan membersihkan fail sampah dalam direktori /tmp dalam CentOS 7? Bagaimana untuk mengakses dan membersihkan fail sampah dalam direktori /tmp dalam CentOS 7? Dec 27, 2023 pm 09:10 PM

Terdapat banyak sampah dalam direktori tmp dalam sistem centos7 Jika anda ingin membersihkan sampah, bagaimanakah anda harus melakukannya? Mari kita lihat tutorial terperinci di bawah. Untuk melihat senarai fail dalam direktori fail tmp, laksanakan perintah cdtmp/ untuk beralih kepada direktori fail semasa tmp, dan laksanakan arahan ll untuk melihat senarai fail dalam direktori semasa. Seperti yang ditunjukkan di bawah. Gunakan arahan rm untuk memadam fail Perlu diingatkan bahawa arahan rm memadam fail dari sistem selama-lamanya, adalah disyorkan apabila menggunakan arahan rm, sebaiknya berikan gesaan sebelum memadam fail. Gunakan arahan rm-i nama fail, tunggu pengguna mengesahkan pemadaman (y) atau langkau pemadaman (n), dan sistem akan melakukan operasi yang sepadan. Seperti yang ditunjukkan di bawah.

Bagaimana untuk menetapkan peraturan kata laluan dalam centos7 Bagaimana untuk menetapkan peraturan kata laluan dalam centos7? Bagaimana untuk menetapkan peraturan kata laluan dalam centos7 Bagaimana untuk menetapkan peraturan kata laluan dalam centos7? Jan 07, 2024 pm 01:17 PM

Tetapkan peraturan kata laluan atas sebab keselamatan Tetapkan bilangan hari selepas kata laluan tamat tempoh. Pengguna mesti menukar kata laluan dalam masa beberapa hari. Tetapan ini hanya mempengaruhi pengguna yang dibuat, bukan pengguna sedia ada. Jika menetapkan kepada pengguna sedia ada, jalankan arahan "chage -M (hari) (pengguna)". PASS_MAX_DAYS60#Masa tamat kata laluan PASS_MIN_DAYS3#Masa penukaran kata laluan awal PASS_MIN_LEN8#Panjang kata laluan minimum PASS_WARN_AGE7#Masa segera tamat kata laluan Ulangi penggunaan sekatan kata laluan [root@linuxprobe~]#vi/etc/pam.d/system-15th#nearline-auth

Bagaimana untuk memasang sambungan mbstring di bawah CENTOS7? Bagaimana untuk memasang sambungan mbstring di bawah CENTOS7? Jan 06, 2024 pm 09:59 PM

1.UncaughtError:Calltoundefinedfunctionmb_strlen(); Apabila ralat di atas berlaku, ini bermakna kami belum memasang sambungan mbstring 2. Masukkan direktori pemasangan PHP cd/temp001/php-7.1.0/ext/mbstring 3. Mulakan phpize(; /usr/local/bin /phpize atau /usr/local/php7-abel001/bin/phpize) arahan untuk memasang sambungan php 4../configure--with-php-config=/usr/local/php7-abel

Penjelasan terperinci tentang arahan fail penyahmampatan (zip) di bawah centos7 Penjelasan terperinci tentang arahan fail penyahmampatan (zip) di bawah centos7 Jan 07, 2024 pm 06:30 PM

1. Folder yang dimampatkan ialah fail zip [root@cgls]#zip-rmydata.zipmydata2 Nyahzip mydata.zip ke dalam direktori mydatabak [root@cgls]#unzipmydata.zip-dmydatabak3.mydata01 folder dan mydata02.txt dimampatkan ke dalam. mydata.zip[root@cgls]#zipmydata.zipmydata01mydata02.txt4 Terus nyahmampat fail mydata.zip [root@cgls]#unzipmydata.zip5

Bagaimana untuk mengubah suai dan menetapkan kekunci pintasan lalai CentOS7? Bagaimana untuk mengubah suai dan menetapkan kekunci pintasan lalai CentOS7? Jan 09, 2024 pm 06:14 PM

Apabila kekunci pintasan lalai bercanggah dengan kekunci perisian yang anda gunakan atau anda perlu menggunakan kekunci pintasan mengikut tabiat anda sendiri, anda perlu mengubah suai dan menetapkan kekunci pintasan lalai Bagaimana untuk mengubah suai kekunci pintasan lalai CentOS7? Mari kita lihat tutorial terperinci di bawah. 1. Mulakan sistem Centos7 dalam mesin maya dan masukkan desktop 2. Klik Applications->System Tools->Settings di sudut kiri atas 3. Masukkan antara muka tetapan dan klik pada peranti item di sebelah kanan. Dan tekan kekunci pintasan untuk ditetapkan pada papan kekunci untuk menukar kekunci pintasannya (perhatikan bahawa beberapa tidak boleh diubah!) 5. Selepas perubahan, seperti yang ditunjukkan di bawah, akhirnya klik Set, supaya tetapan kekunci pintasan pengubahsuaian selesai.

Apakah yang perlu saya lakukan jika pemalam dipasang dalam php7.0 tetapi ia masih menunjukkan bahawa ia tidak dipasang? Apakah yang perlu saya lakukan jika pemalam dipasang dalam php7.0 tetapi ia masih menunjukkan bahawa ia tidak dipasang? Apr 02, 2024 pm 07:39 PM

Untuk menyelesaikan pemalam yang tidak menunjukkan isu yang dipasang dalam PHP 7.0: Semak konfigurasi pemalam dan dayakan pemalam. Mulakan semula PHP untuk menggunakan perubahan konfigurasi. Semak kebenaran fail pemalam untuk memastikan ia betul. Pasang kebergantungan yang hilang untuk memastikan pemalam berfungsi dengan betul. Jika semua langkah lain gagal, bina semula PHP. Punca lain yang mungkin termasuk versi pemalam yang tidak serasi, memuatkan versi yang salah atau isu konfigurasi PHP.

See all articles