起因:最近一个服务器即将到期,不打算续费,但这个服务器上的项目需要继续放到其他服务器上运行。然而,这个项目裸代码就有7个多G,加上一些静态资源有几十个G,迁移起来非常困难。因此打算把其他服务器上的项目放到本服务器上来,再用阿里云的服务,把本服务器上的内容直接覆盖到其他服务器上。
逐步产生各种问题,在此记录一下
原本打算装docker,奈何docker最低要求是centos6.5,我们服务器是6.1。
问题2:请示领导后,想试试把centos升级到7,忙活了一阵发现,无法升级,有的文章说也需要centos6.5
问题3:yum 镜像问题,由于centos版本问题,导致很多镜像找不到了,试了很多,包括修改CentOS.Base.repo里的版本,使用阿里云,163的镜像,都不行,偶然用了一下
wget -O /etc/yum.repos.d/CentOS-Base.repo http://files.tttidc.com/centos6/Centos-6.repo
居然可以了,有相同问题的朋友可以试试。注意先备份镜像~
问题4:由于原来项目的PHP版本只有5.5,新项目是PHP7.1,所以安装一个PHP7.1,一开始也是很多镜像问题,幸好后面发现问题3那个镜像,成功编译安装。然后使用使用apache,根据不同域名转发到不同版本PHP上
SetHandler "proxy:fcgi://localhost:9000"
这时发现报错:
'Access to the script '**/1.png' has been denied (see security.limit_extensions)
根据提示,去php-fpm的配置文件(路径每个人可能有区别)
/usr/local/php/etc/php-fpm.d/www.conf
修改配置,security.limit_extensions,去掉注释,把html,css,js,png等加在后面发现,日志文件里没有报错了,但页面依然部分变形。
问题5:同一个目录下,有的css,js文件可以访问,有的文件返回403,这就非常奇怪了,因为这个PHP项目里是有各种缓存的,我删除所有缓存,发现所有静态文件都不能访问了,查看network,发现所有的文件Context-type都是“Content-Type: text/html; charset=utf-8,想了下,应该是我把所有的请求都转发给了PHP,并且因为上面“security.limit_extensions”配置能解析静态文件了导致的,所以又把这个配置的注释给加上(因为默认就识别PHP),并且在apache配置里修改配置为:
SetHandler "proxy:fcgi://localhost:9000"
正常,能正常访问了。
问题6:在原本已经有一个mysql的情况下,新安装一个mysql,修改端口号为3307,启动时提示
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
我尝试找到真实的地址,用软连接方式建立映射关系,依然不行,然后发现我修改/usr/local/mysql/my.cnf的配置没有生效,因为我在配置文件里socket这里配置的是“mysqd.sock”,mysql似乎会默认去/etc/下找这个文件,没找到就使用默认配置,我尝试把这个文件复制到/etc/下,成功启动!
问题7:
添加新的用户后,在navicat上添加新的用户,在给用户赋予权限的时候,提示
Access denied for user ‘root‘@‘%‘ to database ‘xxxx’
查看一番后,发现我的root的服务器权限“Grant Option”没有被勾选,进入服务器命令行,添加权限
grant all on xxxx.* to 'root'@'%' identified by 'password' with grant option;
flush privileges问题7:
继续添加权限,报错
Access denied for user 'root'@ '*.*.*.*' (using password: YES)
这个错误一般是没有运行远程连接,密码错误等,但我现在已经连上 了,是在修改权限,查看user表后发现, host为%号这个账号密码和其他的不一样,原来是我在允许远程连接时,漏掉这个账号,再次修改刷新权限后正常
update user set password=password('你的密码') where user='root' and host='%';



