启动Nginx服务提示98: Address already in use

今日早晨去到公司,就被其他人告知官网所有页面打开都是502。平常都是正常的怎么就突然页面就502了呢,下面就开始 troubleshooting。

公司web服务器,是搭建在 centos 上的lnmp环境,首先网站502肯定是服务器端错误,首先想到是不是nginx服务挂掉了,然后执行service nginx status,查看下nginx的状态:nginx is stopped,果然是nginx服务挂了。执行service nginx start启动nginx服务,无法开启,提示错误如下:

Starting nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()

Read More

记一次代码上线故障

  1. 项目采用 Git 将项目上线之后,需要安装 Laravel 框架,及在开发过程中的一些第三发扩展,上线之后,使用 composer install 安装项目,发现未完整安装整个扩展,然后直接执行 composer update 进行更新安装,结果出现:

    图1

Read More

初识版本控制Git(-)

Git是什么?

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目及有效且高速的处理从很小到非常大的项目版本管理。

什么是版本控制 ?

版本控制系统其实就是,通过文档控制,记录程序各个模块的改动,并且为之编上序号记录下来。以便日后因某次错误提交,可以实现快速会滚至修改前的内容。并且版本控制可以实现多人协作功能,使多人在一个项目上做不同的内容而且互不影响。

Read More

MySQL数据表的增删改查操作

mysql表的常用操作,即INSERT插入数据操作、DELETE删除数据操作、UPDATE修改数据操作、SELECT查询数据操作,及常见的表查询条件使用。

INSERT插入数据操作
INSERT INTO tableName (field1,field2,…) values (value1,value2,…);

DELETE删除数据操作
DELETE FROM tableName WHERE conditions;

UPDATE修改数据操作
UPDATE tableName SET field1 = value1,field2 = value2, … WHERE conditions;

SELECT查询数据操作
SELECT field1,field2,… FROM tableName WHERE conditions;

Read More

Shell脚本实现mysql数据库自动备份

之前由于购买的服务器在纽约,国内远程连接服务器时,由于延迟太大,经常与服务器失联,害怕有天服务器刮掉,上面站的数据就没了,加上笔者的服务器系统是linux系统,所以就写个脚本定时备份数据库。

下面是backup.sh脚本内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/bash
MYSQL_HOST='127.0.0.1'
MYSQL_USER= DB_USER
MYSQL_PASS= DB_PASSWORD
BACKUP_DIR='/root/backup'
DB= DB_NAME
FILE_NAME=${DB}_$(/bin/date +%Y%m%d)

[ -e $BACKUP_DIR ] || mkdir -p $BACKUP_DIR

function conf_backup() {
MYSQL_PWD=$MYSQL_PASS mysqldump -u $MYSQL_USER -h ${MYSQL_HOST} \
-F $DB > ${BACKUP_DIR}/${FILE_NAME}.sql
if([ -f ${BACKUP_DIR}/${FILE_NAME}.sql ]);then
cd $BACKUP_DIR && tar -zcf ${FILE_NAME}.tar.gz ${FILE_NAME}.sql \
&& rm ${BACKUP_DIR}/${FILE_NAME}.sql || exit
fi
}

conf_backup

脚本编辑完成后,给脚本可执行权限:

1
chomd a+x backup.sh

然后在服务器上采用 crontab -e 编辑计划任务,每天6点备份数据库:

1
0 6 * * *  /bin/bash /root/sh/backup.sh

PHP实现数据的加解密

由于,PC端软件需要与WEB端通过API进行交互,如果采用明文传输,安全性便没有什么可言,API交互时,所有参数交互,均采用加密信息进行传输。这样即使别人采用抓包工具,抓取相关信息,看到的也都是加密后的东西,数据传输安全性会提高不少。

因本人编程方面还属于小白吧,c及c++方面的东西没精力去学习了解,这里只贴出WEB端PHP实现的加解密方法,PC端软件需要采用相同原理,不然解密出来就是一串乱码。

Read More

Linux服务器实现无密登陆

自己最近弄了台Linux系统的服务器,上面放了个人小站,经常会上去更新自己的代码什么乱七八糟的管理。因为经常登陆的缘故,总是感觉SSH连接时,输入ssh user@host -P port一长串登陆信息后,每次还要都输入密码。笔者实在忍受不了每次输密码的繁琐,决定试试无密码登陆。

Read More

Mac OSX系统上brew的安装及使用

什么是brew?

brew又叫Homebrew,它是Mac OSX系统上的软件包管理工具,就像Ubuntu Linux系统上的apt-get命令,只需要一个命令,就能非常方便的在Mac OSX系统中安装、卸载、更新软件。

brew的安装

brew的安装也非常简单,只需要一条命令。brew的官方网站:http://brew.sh,官网上对brew的用法做了详细的描述。安装方法如下:

1
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Read More