php74
sudo docker run -ti --name php74 -v /usr/local/servers/docker/web:/usr/local/servers/web:rw --expose 9000 centos:7
sudo docker start php74
sudo docker exec -ti php74 /bin/bash
下载php: https://www.php.net/downloads.php
yum install -y freetype-devel libjpeg-devel libpng-devel libwebp-devel
yum install freetype*
yum install libjpeg*
find / -name freetype
yum -y install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses curl gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel expat-devel xmlrpc-c xmlrpc-c-devel libicu-devel libmcrypt-devel libmemcached-devel
sudo yum -y install gcc gcc-c++ wget net-tools pcre-devel zlib-devel openssl-devel
make clean
// ./configure --prefix=/usr/local/servers/php74 --with-config-file-path=/usr/local/servers/php74/etc --with-fpm-user=web --with-fpm-group=web --with-curl --with-freetype-dir --enable-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 --with-freetype --with-jpeg --enable-gd --with-webp --with-xpm
//在用php7.4专用版 - 支持thinkphp验证码 llm阿里大模型修复
./configure --prefix=/usr/local/servers/php74 --with-config-file-path=/usr/local/servers/php74/etc --with-config-file-scan-dir=/usr/local/servers/php74/etc/php.d --with-fpm-user=web --with-fpm-group=web --with-curl --with-freetype --with-gettext --with-iconv --with-kerberos --with-libdir=lib64 --with-mysqli=mysqlnd --with-openssl --with-pdo-mysql=mysqlnd --with-pdo-sqlite --with-pear --with-jpeg --with-webp --with-xpm --with-xmlrpc --with-xsl --with-zlib --with-bz2 --with-mhash --enable-bcmath --enable-calendar --enable-dba --enable-exif --enable-fpm --enable-ftp --enable-gd --enable-intl --enable-mbregex --enable-mbstring --enable-mysqlnd --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip --enable-inline-optimization
error: Package requirements (sqlite3 > 3.7.4) were not met
yum install -y epel-release
yum install -y oniguruma-devel -y
yum install -y libsqlite3x-devel -y
make
echo $?
make install
cp ./php.ini-development ./php.ini-production /usr/local/servers/php74/etc
cd /usr/local/servers/php74/etc
cp php.ini-development php.ini
cp php-fpm.conf.default php-fpm.conf
cd php-fpm.d/
cp www.conf.default www.conf //特别要注册,listen = 127.0.0.1:9000 改成 listen=0.0.0.0:9000 否则docker中无法访问
/usr/local/servers/php74/bin/php -m
/usr/local/servers/php74/sbin/php-fpm
ps -ef|grep php
/usr/local/servers/php73/bin/phpize
./configure --prefix=/usr/local/servers/swoole45 --with-php-config=/usr/local/servers/php74/bin/php-config --enable-openssl
/usr/local/servers/php74/bin/php /usr/local/servers/web/zcy/bin/hyperf.php start
----
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime //更新时间, 填: yes
date -R # 查看当前时间
php 解决:php73 exif_read_data 不支持 exif.so扩展
cd /usr/local/servers/php-7.3.7/ext/exif
/usr/local/servers/php73/bin/phpize
./configure --with-php-config=/usr/local/servers/php73/bin/php-config
make && make install
vi /usr/local/servers/php73/etc/php.ini
extension = exif.so
pkill php
安装php7.3的redis扩展(/usr/local/servers/php73/bin/php --ini 可以查看php.ini所在的位置)
tar -zxvf redis-5.1.1.tgz
cd redis-5.1.1
mv redis-5.1.1 /usr/local/servers/redis-php-5.1.1
cd redis-php-5.1.1/
/usr/local/servers/php73/bin/phpize
如果报错:Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script.
yum install autoconf
/usr/local/servers/php73/bin/phpize
./configure --with-php-config=/usr/local/servers/php73/bin/php-config
make
echo $?
make install
//重新编译exif,
cd /usr/local/servers/php-7.3.7/ext/exif
/usr/local/servers/php73/bin/phpize
./configure --with-php-config=/usr/local/servers/php73/bin/php-config
make && make install
vi /usr/local/servers/php73/etc/php.ini ;extension=exif.so 冒号去掉
swoole 下载
http://pecl.php.net/package/swoole
tar -zxvf swoole-4.4.15.tgz
mv swoole-4.4.15 swoole4
mv swoole4/ /usr/local/servers/ //必须解压后放到servers目录下,要是它一直在down目录
cd /usr/local/servers/swoole4/
/usr/local/servers/php73/bin/phpize
./configure --prefix=/usr/local/servers/swoole4 --with-php-config=/usr/local/servers/php73/bin/php-config --enable-openssl
make && make install
安装后返回:
Installing shared extensions: /usr/local/servers/php73/lib/php/extensions/no-debug-non-zts-20180731/
Installing header files: /usr/local/servers/php73/include/php/
/usr/local/servers/php73/etc/php.ini
中加入
extension=swoole.so
修改参参数:
vi /usr/local/servers/php73/etc/php.ini
swoole.use_shortname = 'Off' //Swoole 短名未关闭,开启这个后不兼容laravel 真是个悲剧
php82 安装(参考)
sudo docker run -ti --name php82 -v /home/data/docker/web:/usr/local/servers/web:rw --expose 9000 -p 9509:9509 centos:7
sudo docker start php82
sudo docker exec -ti php82 /bin/bash
yum -y install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses curl gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel expat-devel xmlrpc-c xmlrpc-c-devel libicu-devel libmcrypt-devel libmemcached-devel
yum -y install gcc gcc-c++ wget net-tools pcre-devel zlib-devel openssl-devel
yum install -y epel-release
yum install -y oniguruma-devel -y
yum install -y libsqlite3x-devel -y
./configure --prefix=/usr/local/servers/php82 --with-config-file-path=/usr/local/servers/php82/etc --with-fpm-user=web --with-fpm-group=web --with-curl --with-freetype-dir --enable-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
make install
cp /usr/local/servers/down/php-8.2.3/php.ini-development /usr/local/servers/down/php-8.2.3/php.ini-production /usr/local/servers/php82/etc
cd /usr/local/servers/php82/etc
cp php.ini-development php.ini
cp php-fpm.conf.default php-fpm.conf
cd php-fpm.d/
useradd -d /usr/local/servers/ web
cat /etc/passwd
cp www.conf.default www.conf //特别要注册,listen = 127.0.0.1:9000 改成 listen=0.0.0.0:9000 否则docker中无法访问
//特别要注册,listen = 127.0.0.1:9000 改成 listen=0.0.0.0:9000 否则docker中无法访问
//下面这些用默认
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
//要修改的
user = web #不能用root
group = web
listen.owner = web
listen.group = web
listen.mode = 0660
//laravel 只做为参考
pm = dynamic #动态方式
pm.max_children =80 #服务器内存512M最好是20个 , 每个children平均占用20M-30M内存,children越多,可以同时接受的并发数量越多,一般children的值是网站最高并发数+浮动值,这值再×内存占用,就是你需要用到的内存。
#80*30=2400M 我们服务器4G,4096M-2400M=空闲一G多,1696m 内存够用了
pm.start_servers = 2 #服务启动时创建的进程数
pm.min_spare_servers = 2 #最小备用进程数
pm.max_spare_servers = 3 #最大备用进程数
pm.max_requests = 102400 #是指当每个children接受了N次请求以后,就会把自己杀死。没有没有内存泄露,也可加大些。对性能有好处
/usr/local/servers/php82/bin/php -m
/usr/local/servers/php82/bin/php --ini 可以查看php.ini所在的位置
php 解决:php8 exif_read_data 不支持 exif.so扩展(备注php8安装不成功: 因为 gcc 基于 c89 标准,若换成 c99 标准就可以在 for 循环内定义i变量了。 )
cd /usr/local/servers/down/php-8.2.3/ext/exif
/usr/local/servers/php82/bin/phpize
./configure --with-php-config=/usr/local/servers/php82/bin/php-config
make && make install
vi /usr/local/servers/php82/etc/php.ini
extension = exif.so
安装php7.3的redis扩展(/usr/local/servers/php82/bin/php --ini 可以查看php.ini所在的位置)
tar -zxvf redis-5.3.7.tgz
cd redis-5.3.7
/usr/local/servers/php82/bin/phpize
./configure --with-php-config=/usr/local/servers/php82/bin/php-config
make
echo $?
make install
返回:/usr/local/servers/php82/lib/php/extensions/no-debug-non-zts-20220829/
vi /usr/local/servers/php82/etc/php.ini
extension = exif.so
swoole 下载
http://pecl.php.net/package/swoole
tar -zxvf swoole-src-5.0.2.tgz
/usr/local/servers/down/swoole-src-5.0.2
/usr/local/servers/php82/bin/phpize
./configure --prefix=/usr/local/servers/swoole502 --with-php-config=/usr/local/servers/php82/bin/php-config --enable-openssl
make && make install
安装后返回:
Installing shared extensions: /usr/local/servers/php73/lib/php/extensions/no-debug-non-zts-20180731/
Installing header files: /usr/local/servers/php73/include/php/
/usr/local/servers/php82/etc/php.ini
中加入
extension=swoole.so
修改参参数:
vi /usr/local/servers/php82/etc/php.ini
swoole.use_shortname = 'Off' //Swoole 短名未关闭,开启这个后不兼容laravel 真是个悲剧
/usr/local/servers/php82/bin/php -m
/usr/local/servers/php82/bin/php --ini 可以查看php.ini所在的位置
/usr/local/servers/php82/sbin/php-fpm
ps -ef|grep php
php安装用docker方式 :http://www.diyyq.com/kaifahuanjing/7.html
1、请求 X-Powered-By 暴露:PHP/7.4.9:
修改 php.ini 配置文件,这是从源头关闭 PHP 版本泄露的方法。
expose_php = Off
2、还有看到:Set-Cookie PHPSESSID=5ca98bcb0b1adb
在 ThinkPHP6 中,修改 config/session.php 配置文件:
return [
// session name
'name' => 'DZSESSID',//PHPSESSID 其中:PHPSESSID 一看就是php的,是不是不安全

1、请求 X-Powered-By 暴露:PHP/7.4.9: