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的,是不是不安全


点赞(0) 打赏

评论列表 共有 1 条评论

gg22mm 1月前 回复TA

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

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部
{__SCRIPT__}