PHP7 编译安装

准备工作

安装gcc和make

##安装make,已安装,可省略
$ yum -y install gcc automake autoconf libtool make
##安装gcc g++ glibc库
$ yum -y install gcc gcc-c++ glibc
##安装所需的包
$ yum -y install libmcrypt-devel mhash-devel libxslt-devel 
libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel 
zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel 
ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel 
krb5 krb5-devel libidn libidn-devel openssl openssl-devel

以上安装可分批或者单个进行,如yum -y install libmcrypt-devel,一般来说均可安装成功,如果失败可多试几次。

PHP下载

$ wget https://www.php.net/distributions/php-7.4.5.tar.gz
$ tar -xzvf php-7.4.5.tar.gz   #解压
$ cd php-7.4.5                 #cd
$ ./configure                  #php configure

Configure参数

config参数根据个人需要而确定

--prefix=/usr/local/php --with-config-file-path=/etc --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-soap --with-xmlrpc --with-openssl --with-pcre-regex --with-sqlite3 --with-zlib --enable-bcmath --with-iconv --with-bz2 --enable-calendar --with-curl --with-cdb --enable-dom --enable-exif --enable-fileinfo --enable-filter --with-pcre-dir --enable-ftp --with-gd --with-openssl-dir --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-gd-jis-conv --with-gettext --with-gmp --with-mhash --enable-json --enable-mbstring --enable-mbregex --enable-mbregex-backtrack --with-onig --enable-pdo --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-zlib-dir --with-pdo-sqlite --with-readline --enable-session --enable-shmop --enable-simplexml --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --with-libxml-dir --with-xsl --enable-zip --enable-mysqlnd-compression-support --with-pear --enable-opcache

安装

$ make && make install         #make

安装位置
--prefix=/usr/local/php
配置文件存储路径:
--with-config-file-path=/etc
也即 php.ini 位置,默认为 /etc
fpm用户&用户组配置
--enable-fpm --with-fpm-user=www --with-fpm-group=www

编完了别忘了

make test

虽然经常会报一大堆warning,但是如果有严重error的还是可以发现的。

编译安装完成后配置文件
复制到with-config-file-path 指定的目录中,可使用 phpinfo 或者 php -i 查看相应位置。

##php.ini,编译配置时配在php7/etc目录下
$cp php-7.2.2/php.ini-development ../etc/php.ini
##php-fpm.conf
$cp ../etc/php-fpm.conf.default ../etc/php-fpm.conf
##www.conf
$cp ../etc/php-fpm.d/www.conf.default ../etc/php-fpm.d/www.conf

修改配置

  • php.ini
    cgi.force_redirect = 1被注释,需要放开且修改为cgi.force_redirect = 0

    使用composer时还需要开放 disable_functions=proc_openproc_get_status

  • php-fpm.conf
    修改错误日志路径error_log = log/php-fpm.log
  • www.conf
    修改用户和用户组选项user = nginxgroup = nginx

设置php全局环境变量

/etc/profile 全局环境变量

$vim /etc/profile
##加上下面这句话
export PATH=/usr/local/php/bin:/usr/local/php/sbin:$PATH

$source /etc/profile
$php -v
PHP 7.3.14 (cli) (built: Feb 15 2020 00:22:13) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.14, Copyright (c) 1998-2018 Zend Technologies

启动php

nginx      8000  1.7  0.4 236976 32380 ?        S    Apr27   4:14 php-fpm: pool www
root       8001  0.0  0.0 140016  6884 ?        Ss   Mar21   2:24 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
nginx     12606  1.5  0.4 239268 33656 ?        S    Apr27   2:45 php-fpm: pool www
nginx     14299  1.5  0.4 160968 32368 ?        S    Apr27   2:18 php-fpm: pool www

安装composer

访问composer官网获取最新版本

cd /usr/local/php    #先进入php目录
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

在目录内会生成composer.phar,移动到/usr/local/bin或者/usr/bin or /usr/sbin让他全局生效。

注意:指定的with-fpm-user的用户对网站目录必须有读写权限;最好chown设定下,让权限都保持统一

你可能感兴趣的:(php,php7,linux,服务器,centos)