本篇文章给大家带来的内容是关于阿里云centos7.6安装php7.3的详细教程,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。


新增用户 用户组

groupadd www

useradd -g www www


下载 php

wget "https://downloads.php.net/~cmb/php-7.3.0.tar.gz"

tar xzvf php-7.3.0.tar.gz

cd php-7.3.0


--with-fpm-user=www --with-fpm-group=www编译

这里使用www www 用户、用户组

编译出来的程序启动,就是归属这个用户、用户组

./configure --prefix=/usr/local/php --with-fpm-user=www --with-fpm-group=www --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip --enable-fpm


configure: error: libxml2 not found. Please check your libxml2 installation.编译错误,解决依赖

yum install -y  libxml2-devel


configure: error: Please reinstall the BZip2 distribution

yum install -y  bzip2-devel


configure: error: cURL version 7.15.5 or later is required to compile php with cURL support

yum install -y  curl-devel


configure: error: jpeglib.h not found.

yum install -y  libjpeg-devel


configure: error: png.h not found.

yum install -y libpng-devel


configure: error: freetype-config not found.

yum install -y libpng-devel


configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution

yum install -y libxslt-devel


configure: error: Please reinstall the libzip distribution

yum install -y libzip-devel


#先删除旧版本

yum remove -y libzip



#下载编译安装

wget https://nih.at/libzip/libzip-1.2.0.tar.gz

tar -zxvf libzip-1.2.0.tar.gz

cd libzip-1.2.0

./configure

make && make install


checking for libzip... configure: error: system libzip must be upgraded to version >= 0.11

off_t undefined 报错


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28



​checking libzip... yes​

​checking ​​​​for​​​ ​​the location of zlib... /usr​

​checking ​​​​for​​​ ​​pkg-config... (cached) /usr/bin/pkg-config​

​checking ​​​​for​​​ ​​libzip... in ​​​​default​​​ ​​path: found in /usr/local​

​checking ​​​​for​​​ ​​zip_open in -lzip... yes​

​checking ​​​​for​​​ ​​zip_file_set_encryption in -lzip... yes​

​checking ​​​​for​​​ ​​zip_libzip_version in -lzip... no​

​checking stdbool.h usability... yes​

​checking stdbool.h presence... yes​

​checking ​​​​for​​​ ​​stdbool.h... yes​

​checking fts.h usability... yes​

​checking fts.h presence... yes​

​checking ​​​​for​​​ ​​fts.h... yes​

​checking ​​​​for​​​ ​​int8_t... (cached) yes​

​checking ​​​​for​​​ ​​int16_t... (cached) yes​

​checking ​​​​for​​​ ​​int32_t... (cached) yes​

​checking ​​​​for​​​ ​​int64_t... (cached) yes​

​checking ​​​​for​​​ ​​uint8_t... (cached) yes​

​checking ​​​​for​​​ ​​uint16_t... (cached) yes​

​checking ​​​​for​​​ ​​uint32_t... (cached) yes​

​checking ​​​​for​​​ ​​uint64_t... (cached) yes​

​checking ​​​​for​​​ ​​ssize_t... yes​

​checking size of short... (cached) 2​

​checking size of int... (cached) 4​

​checking size of long... (cached) 8​

​checking size of long long... (cached) 8​

​checking size of off_t... 0​

​configure: error: off_t undefined; check your library configuration​


off_t 类型是在 头文件 unistd.h中定义的,

在32位系统 编程成 long int ,64位系统则编译成 long long int ,

在进行编译的时候 是默认查找64位的动态链接库,

但是默认情况下 centos 的动态链接库配置文件/etc/ld.so.conf里并没有加入搜索路径,

这个时候需要将 /usr/local/lib64 /usr/lib64 这些针对64位的库文件路径加进去。


1

2

3

4

5

6

7

8



​#添加搜索路径到配置文件​

​echo​​​ ​​'/usr/local/lib64​

​/usr/local/lib​

​/usr/lib​

​/usr/lib64'>>/etc/ld.so.conf​


​#然后 更新配置​

​ldconfig -v​


安装


1



​make && make install​


报错

usr/local/include/zip.h:59:21: fatal error: zipconf.h: No such file or directory


1



​cp /usr/local/lib/libzip/​​​​include​​​​/zipconf.h /usr/local/​​​​include​​​​/zipconf.h​


成功输出


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32



​Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/​

​Installing PHP CLI binary:        /usr/local/php/bin/​

​Installing PHP CLI man page:      /usr/local/php/php/man/man1/​

​Installing PHP FPM binary:        /usr/local/php/sbin/​

​Installing PHP FPM defconfig:     /usr/local/php/etc/​

​Installing PHP FPM man page:      /usr/local/php/php/man/man8/​

​Installing PHP FPM status page:   /usr/local/php/php/php/fpm/​

​Installing phpdbg binary:         /usr/local/php/bin/​

​Installing phpdbg man page:       /usr/local/php/php/man/man1/​

​Installing PHP CGI binary:        /usr/local/php/bin/​

​Installing PHP CGI man page:      /usr/local/php/php/man/man1/​

​Installing build environment:     /usr/local/php/lib/php/build/​

​Installing header files:          /usr/local/php/​​​​include​​​​/php/​

​Installing helper programs:       /usr/local/php/bin/​

​program: phpize​

​program: php-config​

​Installing man pages:             /usr/local/php/php/man/man1/​

​page: phpize.1​

​page: php-config.1​

​Installing PEAR environment:      /usr/local/php/lib/php/​


​Warning: ​​​​"continue"​​​ ​​targeting ​​​​switch​​​ ​​is equivalent to ​​​​"break"​​​​. Did you mean to ​​​​use​​​ ​​"continue 2"​​​​? in phar:​​​​///home/flame/software/php-7.3.0/pear/install-pear-nozlib.phar/PEAR/PackageFile/v2/Validator.php on line 1933​

​[PEAR] Archive_Tar    - installed: 1.4.3​

​[PEAR] Console_Getopt - installed: 1.4.1​

​[PEAR] Structures_Graph- installed: 1.1.1​

​[PEAR] XML_Util       - installed: 1.4.2​

​[PEAR] PEAR           - installed: 1.10.5​

​Wrote PEAR system config file at: /usr/local/php/etc/pear.conf​

​You may want to add: /usr/local/php/lib/php to your php.ini include_path​

​/home/flame/software/php-7.3.0/build/shtool install -c ext/phar/phar.phar /usr/local/php/bin​

​ln -s -f phar.phar /usr/local/php/bin/phar​

​Installing PDO headers:           /usr/local/php/​​​​include​​​​/php/ext/pdo/​


配置,建立目录


1

2

3



​cp php.ini-production /usr/local/php/lib/php.ini​

​cp /usr/local/php/etc/php-fpm.conf.​​​​default​​​ ​​/usr/local/php/etc/php-fpm.conf​

​ln -s /usr/local/php/sbin/php-fpm /usr/local/bin​



1

2



​cd /usr/local/php/etc/php-fpm.d​

​vim www.conf​


输入


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17



​[www]​

​listen = 127.0.0.1:9080   ​

​listen.mode = 0666      ​


​user = www  #php代码目录权限 需要跟这个一致,​

​group = www #php代码目录权限 需要跟这个一致​


​pm = dynamic​

​pm.max_children = 128​

​pm.start_servers = 20​

​pm.min_spare_servers = 5​

​pm.max_spare_servers = 35​

​pm.max_requests = 10000​


​rlimit_files = 1024​


​slowlog = log/​​​​$pool​​​​.log.slow​


加入 systemtl 服务


1

2



​cd /home/flame/software/php-7.3.0/sapi/fpm​

​cp php-fpm.service /usr/lib/systemd/system/​


启动


1



​systemctl start php-fpm​



1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32



​#查看状态​

​systemctl status php-fpm​


​#得到输出​

​● php-fpm.service - The PHP FastCGI Process Manager​

​Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)​

​Active: active (running) since Thu 2018-12-27 16:13:16 CST; 2s ago​

​Main PID: 16835 (php-fpm)​

​CGroup: /system.slice/php-fpm.service​

​├─16835 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)​

​├─16836 php-fpm: pool www​

​├─16837 php-fpm: pool www​

​├─16838 php-fpm: pool www​

​├─16839 php-fpm: pool www​

​├─16840 php-fpm: pool www​

​├─16841 php-fpm: pool www​

​├─16842 php-fpm: pool www​

​├─16843 php-fpm: pool www​

​├─16844 php-fpm: pool www​

​├─16845 php-fpm: pool www​

​├─16846 php-fpm: pool www​

​├─16847 php-fpm: pool www​

​├─16848 php-fpm: pool www​

​├─16849 php-fpm: pool www​

​├─16850 php-fpm: pool www​

​├─16851 php-fpm: pool www​

​├─16852 php-fpm: pool www​

​├─16853 php-fpm: pool www​

​├─16854 php-fpm: pool www​

​└─16855 php-fpm: pool www​


​Dec 27 16:13:16 iZj6cas4fyg41lxhngh1z0Z systemd[1]: Started The PHP FastCGI Process Manager.​


测试


1

2

3



​mkdir​​​ ​​-p /home/www/webroot/php​

​cd /home/www/webroot/php​

​vim test.php​


输入


1

2

3

4

5



​<?php​


​phpinfo();​


​?>​


访问

xxx.xxx.xxx.xxx:8080/test.php

php 命令环境

在$HOME/.profile里新增内容为


1



​export PATH=​​​​$PATH​​​​:/usr/local/php/bin​