老周,干了八年苹果CMS运维的影视站老站长,日常就是帮人收拾搬家留下的烂摊子。
问:老周,我刚把苹果CMS从虚拟主机搬到云服务器,结果后台能开,但前台首页白屏,日志文件一堆PHP报错,这是咋回事?
答:白屏十有八九是伪静态规则没带过去,你原来在虚拟主机用的是Apache的.htaccess,搬到Nginx的云服务器上,这套规则不认,去后台“系统设置-URL重写”里,把伪静态开关先关掉,如果首页能开,那就是伪静态问题,然后把你新服务器的Nginx伪静态规则配上,网上搜“苹果CMS Nginx伪静态”直接抄,复制到站点配置的server段里,保存重载Nginx,日志里要是还有“No input file specified”这种,那就是rewrite规则没生效,检查一下try_files那句有没有写对。
问:搬家后我上传了模板到template目录,后台也切换了,但前台还是老样子,点缓存更新也没用。
苹果CMS搬家后网站日志疯狂报错?别慌,看完这篇你也能当半个技术
答:你八成是清错缓存了,苹果CMS有两层缓存:一是data目录下的编译缓存,二是Runtime目录下的临时文件,后台“工具-缓存更新”里,要把“模板编译缓存”和“数据缓存”都勾上,别只点一个,还不行的话,直接手动把application/extra目录下的cache文件夹整个删掉,然后去后台重新生成一次,Linux服务器上别用Windows的压缩包解压,文件权限经常出问题,上传模板用zip包,然后在线解压,权限自动对。
问:搬家后播放器怎么对接?原来用的播放器代码失效了,我看日志里全是跨域报错。
答:播放器报跨域,是因为你新站域名变了,旧的播放器接口地址还写在配置里,去后台“视频-播放器配置”里,把默认播放器的解析接口改成新域名能用的,如果你用的是公共解析接口,直接换一个能用的;如果你自己装了本地播放器插件,检查一下application/extra/maccms/player.php这个文件里的域名绑定,日志里要是出现“Access-Control-Allow-Origin”,那就在Nginx配置里加一段跨域头,允许你的新域名访问接口。
问:后台添加影片,填了一堆信息,点保存就跳转错误,日志显示SQLSTATE[HY000] [1045] Access denied for user。
答:数据库账号密码搞错了,这是搬家最常见的坑,你搬家时肯定改了数据库密码,但苹果CMS的数据库配置文件还是老密码,找到application/database.php这个文件,打开把数据库账号、密码、数据库名和端口改成新服务器的,改完记得清理一下缓存,如果数据库是导入过去的,检查一下表前缀是不是变了,原来用mac_前缀,导入到新数据库后前缀变了,后台设置里也要对应改。
问:搬家后网站打开速度特别慢,日志里有大量慢查询记录,怎么优化?
答:慢查询日志里看是哪些SQL语句卡,最常见的是搜索表没加索引,或者是采集回来的数据太大,查询全表扫描,你后台“系统-性能优化”里,把“数据缓存开启”和“模板缓存开启”都打开,给数据库表加上索引,特别是vod表的vod_id、type_id、vod_time这三个字段,如果还慢,把首页的那个“今日更新”模块关掉,这玩意动态查询最吃数据库,把PHP的OPcache打开,宝塔面板里一键启用,能省一半CPU。
问:后台设置里那些采集接口怎么配置?日志天天显示采集失败的记录。
答:采集失败先看返回日志里的错误码,如果是404,就是采集资源站的接口地址失效了,换个新的采集站,如果是超时,把采集的“请求超时时间”从默认的10秒改成30秒,采集的时候别选“全站采集”,选“按分类采集”,每个分类单独跑,不然容易卡死,日志里显示“采集完成但入库为0”,那是过滤规则问题——采集规则里的字段映射没对上,去“采集-资源库管理”里,把对应的分类映射重新选一遍。
问:搬家后后台设置里的“播放地址”显示正常,但前台点播放按钮就404,日志里一堆请求播放接口的404记录。
答:这个说明你的伪静态规则把播放路由拦了,苹果CMS的播放页面走的是/vod/play/这个路由,如果你Nginx的伪静态规则里没有加上这条rewrite,就会被当成404处理,去你的Nginx配置里,看看根location里有没有把/vod/开头的URL都重写到index.php,没有的话,在rewrite规则里加一行:
location /vod/ { rewrite ^/vod/(.*)$ /index.php/vod/$1 last; }
改完重载Nginx,刷新页面就通了。
问:最后问个傻问题,搬家后网站日志在哪看?我找半天没找到。
答:这问题不傻,很多人都栽在这,苹果CMS本身的日志在runtime/log/目录下,按日期存,但你要看的是PHP错误日志和Nginx访问日志,这个在服务器环境里看,如果你是宝塔面板,左边点“日志”菜单,里面分开有“网站日志”和“PHP错误日志”,如果是裸服务器,Nginx日志在/var/log/nginx/error.log,PHP-FPM在/var/log/php-fpm/error.log,看这两个文件,用tail -f实时追踪,搬家问题基本都在这俩日志里现形。



发表评论