CentOS 7 安装 WEB 环境之 安装 php7.3

CentOS 7下安装php过程:本次选择php7.3.11 (目前最新版,修复了漏洞)。

在php官网上下载php7.3.11.tar.gz   (如下不下来可以留言)

将文件包通过ftp 放入 /tmp/下

ssh登入:

cd /tmp

tar xzvf php-7.3.11.tar.gz

cd  php-7.3.11
添加用户:
groupadd www
useradd -g 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.
1
yum install -y  libxml2-devel
configure: error: Please reinstall the BZip2 distribution
1
yum install -y  bzip2-devel
configure: error: cURL version 7.15.5 or later is required to compile php with cURL support
1
yum install -y  curl-devel
configure: error: jpeglib.h not found.
1
yum install -y  libjpeg-devel
configure: error: png.h not found.
1
yum install -y libpng-devel
configure: error: freetype-config not found.
1
yum install -y freetype-devel
configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0
1
yum install -y libxslt-devel
configure: error: Please reinstall the libzip distribution
1
yum install -y libzip-devel
checking for libzip… configure: error: system libzip must be upgraded to version >= 0.11
1
2
3
4
5
6
7
8
9
#先删除旧版本
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
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
报错
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
make && make install
成功输出
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:9000
listen.mode = 0666
user = www
group = www
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 phpinfo.php
输入
1
2
3
4
5
<?php
phpinfo();
?>
访问
xxx.xxx.xxx.xxx:9000/phpinfo.php
php 命令环境
在$HOME/.profile里新增内容为 (参考下边环境变量添加命令)
1
export PATH=$PATH:/usr/local/php/bin
配置PHP环境变量
(1)vim /etc/profile //需要root权限
(2)在profile文件末尾添加如下内容:
export PATH=$PATH:/usr/local/php7/bin  #这一步可以让我们全局使用php命令
(3) source /etc/profile                               #让修改后的profile生效
(4) php -i //查看配置信息
如果第4步的执行成功打印了PHP information的话,表示PHP已经安装成功了。
## 查看php的用法帮助
$ php -h
## 查看php的版本信息
$ php -v

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注