安装php
// 安装php依赖包
dnf install libcurl-devel openssl openssl-devel sqlite-devel oniguruma gcc-c++
// 下载php.7.3
wget -c https://www.php.net/distributions/php-7.3.0.tar.gz
tar -zxvf php-7.3.0.tar.gz
cd php-7.3.0
// 编译安装
./configure --prefix=/usr/local/php/73 \
--with-config-file-path=/usr/local/php/73/etc \
--with-config-file-scan-dir=/usr/local/php/73/etc/php.d \
--enable-mysqlnd \
--with-mysqli \
--with-pdo-mysql \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--with-iconv \
--with-zlib \
--enable-xml \
--enable-shmop \
--enable-sysvsem \
--enable-mbregex \
--enable-mbstring \
--enable-ftp \
--with-openssl \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--without-pear \
--with-gettext \
--enable-session \
--with-curl \
--enable-opcache \
--enable-maintainer-zts \ (安装ts版本,可以不配置那么安装nts版本)
--enable-bcmath
配置php,起始位置安装包目录下:
1171 cp php.ini-production /usr/local/php/73/etc/php.ini
1173 cd /usr/local/php/73/etc/
1175 cp php-fpm.conf.default php-fpm.conf
1176 cd php-fpm.d/
1178 cp www.conf.default www.conf
1186 ln -snf /usr/local/php/73/bin/php php // 创建/修改软连接
1187 ln -snf /usr/local/php/73/bin/phpize phpize
1188 ln -snf /usr/local/php/73/sbin/php-fpm php-fpm
php7.2版本安装pthread
// 安装pthreadv3 目前pthread支持7.2版本 不支持php>=7.3,7.3版本请安装pht或者parallel
通过github安装 pecl官网安装会有奇怪的报错
git clone https://github.com/krakjoe/pthreads
cd pthreads
phpize
./configure --with-php-config=/usr/local/php/72/bin/php-config
make && make install
php.ini增加 extension=pthreads.so
安装 pear
wget -c http://pear.php.net/go-pear.phar
php go-pear.phar
安装composer
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/php/73/bin/composer
composer config -g repo.packagist composer https://packagist.phpcomposer.com
安装parallel
1495 wget -c https://pecl.php.net/get/parallel-1.1.4.tgz
1567 cd parallel-1.1.4
phpize
./configure --with-php-config=/usr/local/php/73/bin/php-config
make && make install
php.ini增加 extension=parallel.so
nginx fastcgi配置
location ~ [^/]\.php(/|$)
{
try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi-73.sock;
fastcgi_index index.php;
include fastcgi.conf;
include pathinfo.conf;
}
fastcgi.conf配置:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REQUEST_SCHEME $scheme;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
pathinfo.conf配置
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;