报错解决:

我明明有:/usr/local/servers/web/php/start.sh 就是docker老是找不到.sh ,报错 exec /usr/local/servers/web/php/start.sh: no such file or directory
	
	我用nginx都能看得到:
		[web@localhost ~]$ docker exec nginx16 ls -la /usr/local/servers/web/php/start.sh
		-rwxrw-r-- 1 web web 863 Nov 22 14:02 /usr/local/servers/web/php/start.sh
	
	php:
		docker run -d -t --name php73 --network=host -v /home/data/docker/web:/usr/local/servers/web:rw gg22mm/phpsys:php73_pdf_imagick_exif_read_data /usr/local/servers/web/php/start.sh 
		
		为什么报错:[web@localhost ~]$ docker logs php73exec /usr/local/servers/web/php/start.sh: no such file or directory


解决(Dreamweaver保存过来格式的问题,用sublimit就没事):

	确保 start.sh 文件是 Unix 格式(而不是 Windows 格式):
	
		# 检查文件格式
		file /home/data/docker/web/php/start.sh
		
		# 如果有 DOS 格式,转换为 Unix 格式
		sed -i 's/\r$//' /home/data/docker/web/php/start.sh
	
	
	使用完整的启动方案
	
		# 停止并删除现有容器
		docker stop php73 && docker rm php73
		
		# 重新启动
		docker run -d --name php73 \
		 --network=host \
		 -v /home/data/docker/web:/usr/local/servers/web:rw \
		 gg22mm/phpsys:php73_pdf_imagick_exif_read_data \
		 /bin/sh -c "chmod +x /usr/local/servers/web/php/start.sh && /usr/local/servers/web/php/start.sh"

一、php7.3:

php
	docker pull gg22mm/phpsys:php73_pdf_imagick_exif_read_data
	chmod u+x /home/data/docker/web/php/*.sh		
	docker run -d -t --name php73 --network=host --restart=always -v /home/data/docker/web:/usr/local/servers/web:rw gg22mm/phpsys:php73_pdf_imagick_exif_read_data /usr/local/servers/web/php/start.sh 
	
	docker start php73
	docker exec -ti php73 /bin/bash
	ps -ef | grep php
	
	cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime //更新时间, 填: yes
	date -R # 查看当前时间
vi /home/data/docker/web/php/start.sh 没有就要生成

#!/bin/sh
sleep 3
/usr/local/servers/php73/sbin/php-fpm

/bin/bash

chmod u+x /home/data/docker/web/php/*.sh

二、php7.4

docker pull gg22mm/phpsys:php74_pdf_imagick_exif_read_data
docker run -d -t --name php74 --network=host --restart=always -v /home/data/docker/web:/usr/local/servers/web:rw gg22mm/phpsys:php74_pdf_imagick_exif_read_data /usr/local/servers/web/php/start.sh 	
docker start php74
docker exec -ti php74 /bin/bash
ps -ef | grep php	

vi /home/data/docker/web/php/start.sh 没有就要生成

#!/bin/sh
sleep 3
/usr/local/servers/php74/sbin/php-fpm

/bin/bash

chmod u+x /home/data/docker/web/php/*.sh

安装的一些过程,不用管,只是参考:

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
	
	docker pull gg22mm/php74_pdf_imagick_exif_read_data
	docker run -d -t --name php74 --network=host --restart=always -v /home/data/docker/web:/usr/local/servers/web:rw gg22mm/php74_pdf_imagick_exif_read_data /usr/local/servers/web/php/start.sh 	
	docker start php74
	docker exec -ti php74 /bin/bash
	ps -ef | grep 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


	//在用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 真是个悲剧

三、php8.2

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


点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部
{__SCRIPT__}