数据库版本:SQLServer2005

因误删数据库ldf文件,导致数据库无法访问。

恢复步骤:

1、临时拷贝mdf数据库文件到其他目录,删除原数据库app

2、重新创建同名数据库app

3、停止SQLServer服务

4、拷贝原来的mdf文件到SQLServer数据文件目录覆盖现有app.mdf文件。

5、启动SQLServer服务,发现数据库名变成“app(可疑)”

6、关闭外部所有数据库连接。

7、新建查询打开SQL查询窗口

8、执行以下语句切换数据库为紧急模式

ALTER DATABASE app SET EMERGENCY

9、执行以下语句将数据库设置为单用户模式,如果命令一直是执行中,说明数据库还有外部连接,全部关闭后,命令执行成功。

ALTER DATABASE app SET SINGLE_USER

10、执行以下语句进行数据库修复,等待修复完成。

DBCC CheckDB (app, REPAIR_ALLOW_DATA_LOSS)

11、修复成功后,执行以下语句恢复数据库多用户模式

ALTER DATABASE app SET MULTI_USER

12、数据库恢复完毕,测试

环境:CentOS+nginx+php7.0

1、下载扩展包,根据自己php版本下载不同版本的安装包

wget -O php-5.6.25.tar.gz http://cn2.php.net/get/php-7.0.30.tar.gz/from/this/mirror

2、解压

tar -zxvf php-7.0.30.tar.gz

3、进入扩展目录

cd php-7.0.30/ext/fileinfo/

4、执行phpize

/usr/local/php/bin/phpize

5、在扩展目录执行编译配置

./configure --with-php-config=/usr/local/php/bin/php-config

6、编译安装

make && make install

安装完成后可以查看/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/目录下应该有fileinfo.so文件

7、修改php.ini开启fileinfo扩展

vi /usr/local/php/etc/php.ini

找到;extension=...配置区域

添加一行:

extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/fileinfo.so

保存后重启php:

service php-fpm restart

如果报如下错误:

Gracefully shutting down php-fpm . done
Starting php-fpm [06-Sep-2018 12:24:13] NOTICE: PHP message: PHP Warning: PHP Startup: Invalid library (maybe not a PHP library) '/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/fileinfo.so' in Unknown on line 0
done

则需要重新进入扩展包目录,先执行如下命令:

make clean

然后再重新执行4~7步骤。

8、查看phpinfo里面会有fileinfo扩展相关参数

 

CI框架在NGINX下的伪静态规则修改:

1、location

location / {
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php/$1 last;
break;
}
}

location / {

       try_files $uri $uri/ /index.php?$uri&$args;

}

2、location ~ [^/]\.php(/|$)

location ~ [^/]\.php(/|$) {
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;

#增加以下两行
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;

include fastcgi.conf;
}

 

Apache配置方法:

1、修改httpd.conf,开启rewrite模块

LoadModule rewrite_module modules/mod_rewrite.so

2、将站点配置文件中

AllowOverride None 修改为 AllowOverride All 

3、在站点根目录添加.htaccess文件,内容如下:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|public|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]

mark:

asp无法读取access数据库也没有报错的情况处理方法:

选择当前站点的应用程序池,右侧点击“高级设置”,双击“启用32位应用程序”切换为“True”,点击确定返回。刷新即可

nginx日志默认生成在指定的一个文件日志里,久而久之文件会越来越大不利于查看和管理

目前有以下几个方案可以进行nginx日志的切割:

 一、安装修改版本的nginx,可实现日志自动按天记录。不过此方法需要重新编译nginx,不适合现有业务进行操作 

二、配置shell脚本,当前网上最普遍的方法。不过此方法一个脚本只支持一个日志的切割,并不适合多个站点的切割。 多个站点日志切割需要逐个配置域名,相应的有python脚本实现方式,也只是将shell脚本改为python脚本格式。

三、logrotate方式切割日志,系统自动执行,可对日志进行压缩,目前认为是最好的方式。 

#vi  /etc/logrorate.d/nginx 

 配置如下:

 /data/wwwlogs/*nginx.log {   #多个目录可空格隔开 

daily                  #每日执行 

rotate 31           #保留31个日志 

missingok          #跳过不存在的日志 

dateext             #以日期为结尾重命名日志文件 

compress
notifempty 

sharedscripts
postrotate         #只执行一次下面的脚本 

[ -e /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` 

endscript 

每天执行的时间由cron管理,测试大部分在凌晨3点左右,时间可在/etc/crontab中修改 

 增加59 23 * * * root run-parts /etc/cron.daily即可 

测试命令:/usr/sbin/logrotate -d /etc/logrotate.d/nginx

  

 查看分割记录cat /var/lib/logrotate.status