网站首页 > 技术教程 正文
更多深度文章,请关注云计算频道:https://yq.aliyun.com/cloud
2017年3月26日,此时此刻,我对服务器+网站进行了升级,也不知道自己脑袋那根弦短路了,大好的周末居然玩起了升级。
因为long long ago之前用的某宝的镜像环境,某段时间由于某种原因下架了。今天看了下,居然收费了,有木有,居然收费了,在那么多免费镜像环境中,某宝真是一朵奇葩。
由于,网站数据使用的是挂载数据盘,所以省去了网站备份的工作,可以直接重装系统盘(当时买数据盘是个多么明智的决策),当然基础的Nginx配置文件还是要备份的。
数据库使用的阿里云的RDS,同样不需要备份(自动备份机制),相比以前安装在应用服务器,那将是一个多么悲催的故事。
服务器升级
centos 6.5 升级至 centos 6.8,由于网站程序采用PHP开发,这里只需要安装Nginx+PHP,大体看了下镜像环境和面板都不合心意,于是决定自己安装一遍,也就有了后来的惊心动魄。
安装 Nginx
安装Nginx之前,首先要安装好编译环境gcc和g++,安装Nginx需要PRCE库、zlib库和ssl的支持,除了ssl外其他的我们都是去官网下载(这里没选择YUM安装):
Nginx:http://nginx.org/
PCRE:http://www.pcre.org/
zlib:http://www.zlib.net/
服务器直接下载
wegt https://ftp.pcre.org/pub/pcre/pcre2-10.23.tar.gz
wget http://www.zlib.net/zlib-1.2.11.tar.gz
wget http://nginx.org/download/nginx-1.10.3.tar.gz
安装openssl:
yum -y install openssl openssl-devel
安装pcre支持rewrite库,解压pcre,不需要安装:
tar -xvzf pcre2-10.23.tar.gz
安装方式二:也可以使用YUM安装
yum install pcre-devel pcre -y
然后解压zlib,同样不需要安装
tar -xvzf zlib-1.2.11.tar.gz
解压nginx:
tar -xvzf nginx-1.10.3.tar.gz
切换到 cd nginx-1.10.3 进入目录开始安装nginx:
./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=/home/tools/pcre2-10.23 --with-zlib=/home/tools/zlib-1.2.11
注意 /home/tools/pcre2-10.23 和/home/tools/zlib-1.2.11 是刚刚释放的pcre和zlib的源码目录,编译时nginx会编译到一起
安装位置就是--prefix指定的/usr/local/nginx
配置文件位置:/usr/local/nginx/nginx.conf
编译:
make
安装:
make install
执行软连接命令:
ln -s /usr/local/nginx/nginx /usr/sbin
Nginx相关命令:
检查nginx.conf配置文件的正确性: nginx -t
检查版本: nginx -V
启动: nginx
重启: nginx -s reload
安装PHP
PHP http://php.net/downloads.php
wegt http://php.net/get/php-5.6.30.tar.gz/from/a/mirror
安装libxml2和libxml2-devel
yum -y install libxml2
因为不同的操作系统环境,系统安装开发环境包的完整程度也不相同,所以建议安装操作系统的时候做必要选择,也可以统一执行一遍所有的命令,将没有安装的组件安装好,如果已经安装了可能会进行升级,版本完全一致则不会进行任何操作,命令除上面2个之外,汇总如下:
yum -y install libxml2
安装完成之后,执行配置:
./configure --prefix=/usr/local/php --with-curl --with-freetype-dir --with-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-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip
然后执行编译:
make
编译时间可能会有点长,编译完成之后,执行安装:
make install
php的默认安装位置上面已经指定为/usr/local/php,接下来配置相应的文件:
cp php.ini-development /usr/local/php/lib/php.inicp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
然后设置php.ini,使用: vi /usr/local/php/lib/php.ini 打开php配置文件找到cgi.fix_pathinfo配置项,这一项默认被注释并且值为1,根据官方文档的说明,这里为了当文件不存在时,阻止Nginx将请求发送到后端的PHP-FPM模块,从而避免恶意脚本注入的攻击,所以此项应该去掉注释并设置为0
创建web用户:
groupadd www-datauseradd -g www-data www-data
修改php-fpm.conf添加以上创建的用户和组,这时候使用 vi /usr/local/etc/php-fpm.conf 打开文件后找到官方所提示的位置:
user = www-datagroup = www-data
执行以下命令启动php-fpm服务:
php-fpm
启动完毕之后,php-fpm服务默认使用9000端口,使用 netstat -tln | grep 9000 可以查看端口使用情况。
你也可以使用 ps -ef|grep php 命令查看进程。
停止 php-fpm
killall php-fpm
网站升级
环境搭建成功以后,重新挂载数据盘,配置网站目录,并整理网站Nginx的配置文件(主要路径的修改)。
配置完成后,重启Nginx,论坛首页访问正常,然后后台登陆后一片空白,无论密码输入正确还是错误,都是空空如也。
虽然菊花一紧赶紧看了一下博客访问是否正常,首页给我了个惊喜:
500 server error
论坛后台空白修复方案:
关于discuz论坛后台登陆后一片空白,网上乱起八糟的方法很多,不得而终。有说是缓存的问题,说清空下data目录下的cache文件;有说覆盖下source文件的,果然也是不可以的;还有一个比较扯淡的方法就是,修复数据库,修复完毕后,哔了狗了,后台进不去,前台样式直接乱了。幸好有RDS昨天数据库备份(虽然失去了一小部分数据),赶紧还原了一下下。
最终解决方法,因为网站程序是3.2,故升级了一下到3.3。
1)备份数据库
2)建立文件夹 old,旧程序除了 data , config, uc_client, uc_server 目录以外的程序移动进入 old目录中
3)上传 X3.3 程序(压缩包中 upload 目录中的文件), 如上传时候提示覆盖目录,请选择“是”
4)上传安装包 utility 目录中的 update.php 到论坛 install 目录,删除 install 目录中的index.php
执行 http://你的域名/论坛路径/install/update.php
参照提示进行升级即可。升级时间随着数据的大小和服务器性能而变。
升级完毕,进入后台,更新缓存,并测试功能。
升级成功后,old目录中的文件可以删除了。
可能出现的问题Can not write to cache files
解决方法:删除cache和cache下的文件 重新建立这个文件夹。
博客500错误解决方案:
博客 500 server error 后台也无法进入,捯饬的半天也没有解决方法。最终还是重新安装了一下,然后把模版,插件以及附件转移过来,就此搞定。
这里强调一下,重新安装就是重新走一遍流程,数据库还是使用以前的数据,安装过程中会提示你的。
经验教训
升级一定要备份要,升级一定要备份要,升级一定要备份要,重要的事情说三遍。
1)网站程序修改或者升级前一定要备份
2)升级或者修复网站之前一定要备份数据库
3)搬家以后如果怎么都调试不好一些莫名其妙的问题,直接重装或者升级就好了(可以解决99.9%的问题)
4)如果有条件一定不要把网站程序放到系统盘,最好挂载一个数据盘
5)如果有条件一定不要把数据库安装在应用服务器上,最好买个阿里云的RDS
猜你喜欢
- 2024-10-10 阿里云发布云数据中心专用处理器CIPU 猜猜能干点啥?
- 2024-10-10 如何在一分钟内实现微服务系统下的架构可视化
- 2024-10-10 新浪微博上云实践:极端流量下的峰值应对与架构挑战
- 2024-10-10 微服务架构可视化平台实践(微服务架构设计)
- 2024-10-10 玩机小技巧:阿里云的免费SSL证书快到期了,怎样正确续签呢?
- 2024-10-10 阿里云服务器无公网如何上网?(阿里云的大量公网ip来自哪儿)
- 2024-10-10 阿里云发布CIPU,云计算进入第三阶段
- 2024-10-10 学好Nginx,走遍天下都不怕(学好普通话走遍天下都不怕谁说的)
- 2024-10-10 干货:电商行业的上云最佳实践(云电商运营)
- 2024-10-10 Nginx如何通过阿里云购买SSL证书,Nginx使用openssl生成证书文件
你 发表评论:
欢迎- 最近发表
-
- Win11学院:如何在Windows 11上使用WSL安装Ubuntu
- linux移植(Linux移植freemodbus)
- 独家解读:Win10预览版9879为何无法识别硬盘
- 基于Linux系统的本地Yum源搭建与配置(ISO方式、RPM方式)
- Docker镜像瘦身(docker 减小镜像大小)
- 在linux上安装ollama(linux安装locale)
- 渗透测试系统Kali推出Docker镜像(kali linux渗透测试技术详解pdf)
- Linux环境中部署Harbor私有镜像仓库
- linux之间传文件命令之Rsync傻瓜式教程
- 解决ollama在linux中安装或升级时,通过国内镜像缩短安装时长
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)