巡更网站的数据库和网站代码开发之初都在公司两台服务器,开发需求满足后要部署到客户公司的服务器,在此记录部署时遇到的一些问题和解决方法。
准备工作
1.上司利用远程把客户公司数据库服务器( Mysql )和网站服务器(Ubuntu-server下Apache2)搭建好环境;
2.将本地数据库的表分两部分导出脚本:数据表和视图(注意表的数据类型例如某些数据库表的时间戳的类型只允许有一个);
数据库转移
1.将已导出的数据表脚本在客户机服务器上执行,注意其中出问题的行,并改正再次执行,我遇到的是某些数据库表的时间戳的类型只允许有一个的问题,通过改正类型解决;
2.将导出的视图脚本加载出来,查看一下视图建立顺序,是否有排在前面行的create语句使用了排在后面的视图表,如果有调整一下create 顺序在执行,否则会引起视图表不存在问题。
网站代码部署
1.修改本地CODE数据库连接的配置;
2.查看SESSION存储路径是否为默认,不是请修改为默认(不设置path即可);
3.是否有SOCKET,有的话修改连接设置;
4.上传CODE到客户机网站服务器;
5.修改网站服务器默认网址为巡更系统的首页:
修改默认网站目录方法:
/etc/apache2/sites-available/default
将/var/www 修改位你的路径: /var/www/GMG/ /*/var/www:网址代码路径,GMG:网址名称*/
修改默认主页文档(首页为index.php可不用修改):
/etc/apache2/mods-available/dir.conf
将 index.* 替换为 xxx.*遇到的问题
一.ThinkPhp 的index.php隐藏问题
需要开启Apache2的rewrite模块
1、打开/etc/apache2/apache2.conf
将文件中的AllowOverride None改为AllowOverride All
2、修改mods-enable配置,添加一个软件链接
cd /etc/apache2/mods-enable
ln -s ../mods-available/rewrite.load rewrite.load
3、在项目根目录下添加.htaccess文件,修改rewrite规则
<IfModule mod_rewrite.c> RewriteEngine on #不显示index.php RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] </IfModule>
4、重启服务器
service apache2 restart
二.验证码图片不显示
在使用PHP处理一些图像时,有时会出现诸如这样的错误:Call to undefined function imagecreate()
这是由于没有安装或是没有开启php的gd库导致的问题。
解决方案:
1、在Linux系统(这里用的是Ubuntu系统)下
首先在终端输入下列命令:
2、在windows系统下
打开php安装目录下的php.ini配置文件,找到这一行: