转载:洋垃圾变废为宝——拆解二手GPS接收器

洋垃圾”变废为宝——拆解二手GPS接收器

GPS接收机是接收全球定位系统卫星信号并确定地面空间位置的仪器。GPS卫星发送的导航定位信号,是一种可供无数用户共享的信息资源。从淘宝网上淘了一个二手废弃的车载GPS接收器,现在就拆解研究学习一下。

产品及使用工具

拆解产品 车载GPS接收器
使用工具 一把十字螺丝刀

拆解详情

拆解之前给大家看看GPS接收器外貌。这个车载GPS接收器,是我在淘宝上淘来的一个“洋垃圾”,“尾巴”已经被剪断了,买家也说明了9元钱的东西不包好的。我买来的初衷也是用于拆解学习用的。

从上面的正面图片可以看到清晰的印刷上的英文字母GPS   Global Positioning System   背面的文字是雕刻上去的,有些磨损,但是还是可以看清:

KET

GPS Recelver

Model GWG4230

Lot0548

Baud rate 4.8 kbps

Interface      COMS

www.ket.com

made inKOREA

从这段英语简介中,很容易理解:这个GPS接收器的接口是串口方式,波特率是4.8 kbps 。 韩国制造的。

扭开后盖上的四颗螺丝,看到了庐山真面目。

很简明的电路板,KET GWG6103-X GPS模块,支持3.3V到5V的电压。

左边的那个小铁壳封装的是 转串口电路。小板上居然还设计了一颗掉电保护芯片的纽扣电池。后盖上面嵌入的那个圆形的钢铁块被证实是一块磁铁。可用于将接收器吸附在磁性材料上固定。还可以看到这个接收器做了一个防水垫圈。最令我兴奋的是它的引出端子。4根彩线:红、棕、黄、黑。一看就知道是常用的USB接线方式。红色接5V电源,黑接地,棕色和黄色端接信号入、信号出。

现在给GPS接收器来张全家福照:

当然还有电路板的正反对比照:

迫不及待的我赶紧从网上搜索测试GPS模块好坏的方法,看到有人说GPS接收器只要通电正常工作,就会一直接收卫星数据,串口方式发送出来。也看到有人说在电脑上运行一个导航软件,可以测试链接的卫星数目。看到这些就好兴奋,又可以学到技术了。

于是我拿出了我的USB转串口模块,因为我的笔记本没有串口,就会用到这个神器。将接线端子焊接了四根排针,用杜邦线连接上USB转串口模块。

接着将接线端子插在板上,把USB插在笔记本的USB端口。电源指示灯居然立刻就点亮了,开心。我希望这个GPS接收器是完好的。

然后我首先打开了串口调试助手,我用的是SecureCRT 这个软件。

首先在电脑硬件设备管理处找到USB转成的串口端号

可是看到我这里是COM6。

在电脑上打开SecureCRT 软件

选择快速链接后,在弹出的对话框中这样设置参数:

点击Connect ,会看到有数据输出来!

这说明GPS接收器是完好的!可以正常工作的。暂时先不分析输出的这些代码是何意。

然后我参看网上的一些资料,下载了一个名为“凯立德导航软件”的软件包(英文名为:NaviOne)。并参看相应的资料给安装并且配置串口、波特率完好。

打开后会看到软件的初始界面:

地址是深圳市福田区。同时耳机端也是有声音提示的。

看到右上角有卫星的标志,就点击看看:

发现没有搜索到卫星。

然后又检测了下排针的电压没问题,换成串口终端检测还是有输出信号,网上搜索答案,终于看到有人说 在室内是搜索不到GPS信号的,然后立刻扛起笔记本来到楼顶,从新打开凯立德导航软件:点击卫星图标,简单动了动GPS的方向,果然发生了惊喜:

开心呀,居然成功搜索到9颗卫星!同时导航软件语音发出:您现在广东省广州市番禺区!

点击返回到导航界面:

哇!激动不已,我成功给自己卫星定位了。图中红色的箭头代表我现在所处的位置。

最后我将GPS接收器组装好,找来热缩管、热熔胶给它做了一个引脚处理:

大功告成!成功将“洋垃圾”变废为宝!

小结:基于这个GPS模块,我可以制作一个GPS导航仪,或者简单地做一些定位。如果能充分挖掘它的功能,做一个能搜索卫星位置,自动对准卫星的装置也是不错的想法,或者更高级点做个卫星电话!路漫漫其修远兮,吾将上下而求索!

写在最后:

欢迎大家浏览我的拆解文章!若喜欢请点赞!如有兴趣可向我评论探讨。

大家一起互相学习!

通过VPS实现文件外网共享

1。在阿里租用空间,安装centos
2.安装pptpd

vi /etc/sysctl.conf     
sysctl -p
systemctl start pptpd
modprobe ppp-compress-18 && echo yes
cat / dev / net / tun
yum install -y ppp pptpd
ifconfig
vi /etc/pptpd.conf
vi /etc/ppp/options.pptpd
vi / etc / ppp / chap-secrets


3.安装samba

4. windows设置共享文件夹

5. windows设置VPN连接到VPS,获得IP 192.168.88.101

安装mount软件
yum install cifs-utils

6.把windows的共享文件夹mount到centos的/mun/shared1
mount.cifs //192.168.88.101/MarkShared / mnt / shared1 -o username = username,password = password

mount -t cifs -o username=Mark,password=xxxx,gid=1001,uid=1001 //192.168.88.101/MarkShared /mnt/MarkShared

mount.cifs -o username=Mark,password=xxxx,gid=1001,uid=1001 //192.168.88.101/MarkShared /mnt/MarkShared


Oracle 11.2.0.1的一个Bug,客户端报ORA-03113: 通信通道的文件结尾


Oracle 11.2.0.1的一个Bug,客户端报ORA-03113: 通信通道的文件结尾

Posted on 2016-12-07 19:52 召冠 阅读(3753) 评论(0) 编辑收藏

半小时前,一个项目反馈应用系统部分功能报错,ORA-03113: 通信通道的文件结尾。好像是个常见的错误。(jdbc程序报出的错误是:无法从套接字读取更多的数据)

异常信息:ORA-03113: 通信通道的文件结尾
进程 ID: 2392
会话 ID: 298 序列号: 46826

检查了归档日志未发现异常,检查Oracle日志时发现对应ORA-03137错误,经查阅网上资料,属于Oracle的bug,God,竟然隐蔽在ORA-03113后面。

复制代码
Errors in file d:\app\administrator\diag\rdbms\fssc\fssc\trace\fssc_ora_3972.trc  (incident=137360):
ORA-03137: TTC 协议内部错误: [12333] [36] [53] [56] [] [] [] []
Wed Dec 07 19:09:00 2016
Sweep [inc][137360]: completed
Wed Dec 07 19:12:06 2016
Errors in file d:\app\administrator\diag\rdbms\fssc\fssc\trace\fssc_ora_3468.trc  (incident=137596):
ORA-03137: TTC 协议内部错误: [12333] [36] [48] [98] [] [] [] []
Wed Dec 07 19:12:07 2016
Sweep [inc][137596]: completed
复制代码

解决方法:

1、升级Oracle到11.2.0.3/4

2、增加hint提示: /*+opt_param(‘_optim_peek_user_binds’, ‘false’)*/

3、关闭隐藏参数:绑定变量的窥视

SQL> alter system set "_optim_peek_user_binds" = false;

设置隐藏参数后,问题消失。建议后期更新Oracle补丁。

centos下彻底删除MYSQL 和重新安装MYSQL

1 删除Mysql

   yum remove  mysql mysql-server mysql-libs mysql-server;

    find / -name mysql 将找到的相关东西delete掉(rm -rf /var/lib/mysql);

    rpm -qa|grep mysql(查询出来的东东yum remove掉)

    rm /etc/my.cnf

查看是否还有mysql软件:
rpm -qa|grep mysql

如果存在的话,继续删除即可。

rpm方式安装的mysql

a)查看系统中是否以rpm包安装的mysql:

[root@localhost opt]# rpm -qa | grep -i mysql
MySQL-server-5.6.17-1.el6.i686
MySQL-client-5.6.17-1.el6.i686

b)卸载mysql

[root@localhost local]# rpm -e MySQL-server-5.6.17-1.el6.i686
[root@localhost local]# rpm -e MySQL-client-5.6.17-1.el6.i686

c)删除mysql服务

[root@localhost local]# chkconfig –list | grep -i mysql
[root@localhost local]# chkconfig –del mysql

d)删除分散mysql文件夹

[root@localhost local]# whereis mysql 或者 find / -name mysql

mysql: /usr/lib/mysql /usr/share/mysql

清空相关mysql的所有目录以及文件
rm -rf /usr/lib/mysql
rm -rf /usr/share/mysql

rm -rf /usr/my.cnf

通过以上几步,mysql应该已经完全卸载干净了.

解决还原centos后 根目录空间不足的情况

环境:kvm
系统:CentOS7
故障描述:10g的ssd,可使用大小仅有2g
解决过程:

    某次重装系统后,安装软件总提示磁盘空间不足,检查之下发现仅有2G空间,实则明明是10G的ssd,以下为排错过程:

1、df -h查看vda1大小为2.7G

#df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 2.7G 2.4G 236M 91% /
devtmpfs 234M 0 234M 0% /dev
tmpfs 244M 0 244M 0% /dev/shm
tmpfs 244M 4.5M 240M 2% /run
tmpfs 244M 0 244M 0% /sys/fs/cgroup
tmpfs 49M 0 49M 0% /run/user/0

2、fdisk查看vda1一共9959232个block,大小应为9959232KB=9.725.8GB

#fdisk -l
Disk /dev/vda: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000f3770
   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048    19920511     9959232   83  Linux
/dev/vda2        19920512    20969087      524288   82  Linux swap / Solaris

3、尝试能否通过新建分区解决的时候,发现了另一个bug,居然能看到主机的真实磁盘大小!

#fdisk /dev/vda
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): u
Changing display/entry units to cylinders (DEPRECATED!).

Command (m for help): n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
Partition number (3,4, default 3): 3
First cylinder (1306-20805, default 1306): 
Using default value 1306
Last cylinder, +cylinders or +size{K,M,G} (1306-20805, default 20805): 
Using default value 20805
Partition 3 of type Linux and of size 149.4 GiB is set                                   

//剩余149.4G,加上我自己的10G,这块SSD的大小应该是160G的,当然仅此而已了,想要盗用还是不可能的,至少我办不到。囧

Command (m for help): q

fdisk -l                                                                                                   

//虽然fdisk看到的vda3貌似很厉害的样子

Disk /dev/vda: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000f3770

Device Boot Start End Blocks Id System
/dev/vda1 * 2048 19920511 9959232 83 Linux
/dev/vda2 19920512 20969087 524288 82 Linux swap / Solaris
/dev/vda3 20969088 334232324 156631618+ 83 Linux

4、partprobe的时候果然报错了哈哈哈

#partprobe 
Error: Can't have a partition outside the disk!

5、fdisk看到的vda1大小正常,并且也没有多余的可用空间来新建分区,说明问题不是出在磁盘空间分配上,此路不通。

所以删除那个奇葩的vda3,尝试resize方法

#resize2fs /dev/vda1 (其实核心就是这个命令)
resize2fs 1.42.9 (28-Dec-2013) Filesystem at /dev/vda1 is mounted on /; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 2 The filesystem on /dev/vda1 is now 2489808 blocks long.

6、fdisk数据并无变化,但df显示磁盘空间终于正常了,安装程序也不会再提示磁盘空间不足,故障排除。

fdisk -l

Disk /dev/vda: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000f3770

Device Boot Start End Blocks Id System
/dev/vda1 * 2048 19920511 9959232 83 Linux
/dev/vda2 19920512 20969087 524288 82 Linux swap / Solaris

# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 9.3G 2.4G 6.6G 27% /
devtmpfs 234M 0 234M 0% /dev
tmpfs 244M 0 244M 0% /dev/shm
tmpfs 244M 4.5M 240M 2% /run
tmpfs 244M 0 244M 0% /sys/fs/cgroup
tmpfs 49M 0 49M 0% /run/user/0

Centos用yum快速搭建LAMP平台

实验环境:

[root@nmserver-7 html]# cat  /etc/redhat-release 
CentOS release 7.3.1611 (AltArch) 

[root@nmserver–7 html]

# uname -a Linux nmserver-7.test.com 3.10.0-514.el7.centos.plus.i686 #1 SMP Wed Jan 25 12:55:04 UTC 2017 i686 i686 i386 GNU/Linux

1、安装apache

  1.1 安装apache

[root@nmserver-7 ~]# yum install httpd httpd-devel

  1.2 启动apache服务

[root@nmserver-7 ~]# systemctl start  httpd

  1.3 设置httpd服务开机启动

[root@nmserver-7 ~]# systemctl enable  httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

  1.4 查看服务状态

复制代码
[root@nmserver-7 ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since 五 2017-07-21 17:21:37 CST; 6min ago Docs: man:httpd(8) man:apachectl(8) Main PID: 2449 (httpd) Status: "Total requests: 11; Current requests/sec: 0; Current traffic: 0 B/sec" CGroup: /system.slice/httpd.service ├─2449 /usr/sbin/httpd -DFOREGROUND ├─2450 /usr/sbin/httpd -DFOREGROUND ├─2451 /usr/sbin/httpd -DFOREGROUND ├─2452 /usr/sbin/httpd -DFOREGROUND ├─2453 /usr/sbin/httpd -DFOREGROUND ├─2454 /usr/sbin/httpd -DFOREGROUND ├─2493 /usr/sbin/httpd -DFOREGROUND ├─2494 /usr/sbin/httpd -DFOREGROUND └─2495 /usr/sbin/httpd -DFOREGROUND 7月 21 17:21:35 nmserver-7.test.com systemd[1]: Starting The Apache HTTP Server... 7月 21 17:21:36 nmserver-7.test.com httpd[2449]: AH00558: httpd: Could not reliably determine the server's fully q...ssage 7月 21 17:21:37 nmserver-7.test.com systemd[1]: Started The Apache HTTP Server. Hint: Some lines were ellipsized, use -l to show in full.
复制代码

  1.5 防火墙设置开启80端口

[root@nmserver-7 ~]# firewall-cmd --permanent --zone=public  --add-service=http 
success

[root@nmserver–7 ~]

# firewall-cmd –permanent –zone=public –add-service=https

success

[root@nmserver–7 ~]


# firewall-cmd –reload

success

  1.6确认80端口监听中

复制代码
[root@nmserver-7 ~]# netstat -tulp 
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN 1084/sshd tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN 1486/master tcp6 0 0 [::]:ssh [::]:* LISTEN 1084/sshd tcp6 0 0 localhost:smtp [::]:* LISTEN 1486/master tcp6 0 0 [::]:http [::]:* LISTEN 2449/httpd udp 0 0 localhost:323 0.0.0.0:* 592/chronyd udp6 0 0 localhost:323 [::]:* 592/chronyd
复制代码

  1.8 查服务器IP

复制代码
[root@nmserver-7 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:56:bc:cf brd ff:ff:ff:ff:ff:ff
    inet 192.168.8.9/24 brd 192.168.8.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe56:bccf/64 scope link 
       valid_lft forever preferred_lft forever
3: bridge0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether ea:89:d5:c7:32:73 brd ff:ff:ff:ff:ff:ff
复制代码

  1.9 浏览器登陆

2、安装mysql

  2.1安装mysql

[root@nmserver-7 ~]# yum install mariadb mariadb-server mariadb-libs mariadb-devel
root@nmserver-7 ~]# rpm -qa |grep maria 
mariadb-libs-5.5.52-1.el7.i686
mariadb-5.5.52-1.el7.i686
mariadb-server-5.5.52-1.el7.i686
mariadb-devel-5.5.52-1.el7.i686

  2.2 开启mysql服务,并设置开机启动,检查mysql状态

复制代码
[root@nmserver-7 ~]# systemctl start  mariadb 

[root@nmserver–7 ~]

# systemctl enable mariadb

Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

[root@nmserver–7 ~]

# systemctl status mariadb

● mariadb.service – MariaDB database server Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled) Active: active (running) since 六 2017-07-22 21:19:20 CST; 21s ago Main PID: 9603 (mysqld_safe) CGroup: /system.slice/mariadb.service ├─9603 /bin/sh /usr/bin/mysqld_safe –basedir=/usr └─9760 /usr/libexec/mysqld –basedir=/usr –datadir=/v… 7月 22 21:19:15 nmserver-7.test.com mariadb-prepare-db-dir[9524]: … 7月 22 21:19:15 nmserver-7.test.com mariadb-prepare-db-dir[9524]: … 7月 22 21:19:15 nmserver-7.test.com mariadb-prepare-db-dir[9524]: … 7月 22 21:19:15 nmserver-7.test.com mariadb-prepare-db-dir[9524]: … 7月 22 21:19:15 nmserver-7.test.com mariadb-prepare-db-dir[9524]: … 7月 22 21:19:15 nmserver-7.test.com mariadb-prepare-db-dir[9524]: … 7月 22 21:19:15 nmserver-7.test.com mariadb-prepare-db-dir[9524]: … 7月 22 21:19:16 nmserver-7.test.com mysqld_safe[9603]: 170722 21… 7月 22 21:19:16 nmserver-7.test.com mysqld_safe[9603]: 170722 21… 7月 22 21:19:20 nmserver-7.test.com systemd[1]: Started MariaDB …

复制代码
复制代码
[root@nmserver-7 ~]# netstat -tulp 
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN 1084/sshd
tcp 0 0 0.0.0.0:mysql 0.0.0.0:* LISTEN 9760/mysqld
tcp6 0 0 [::]:ssh [::]:* LISTEN 1084/sshd tcp6 0 0 [::]:http [::]:* LISTEN 2449/httpd udp 0 0 localhost:323 0.0.0.0:* 592/chronyd udp6 0 0 localhost:323 [::]:* 592/chronyd
复制代码

  2.3 数据库安全设置

复制代码
[root@nmserver-7 ~]# mysql_secure_installation  NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB       SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user.  If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none):  OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. Set root password? [Y/n] y 
New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] y
... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] n ... skipping. By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
复制代码

  2.4 登陆数据库测试

复制代码
[root@nmserver-7 ~]# mysql -uroot -p Enter password:  Welcome to the MariaDB monitor.  Commands end with ; or \g. Your MariaDB connection id is 11 Server version: 5.5.52-MariaDB MariaDB Server Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 

MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+ 3 rows in set (0.02 sec) MariaDB [(none)]>
复制代码

3、安装PHP

  3.1 安装php

[root@nmserver-7 ~]# yum -y install php
[root@nmserver-7 ~]# rpm -ql php 
/etc/httpd/conf.d/php.conf
/etc/httpd/conf.modules.d/10-php.conf
/usr/lib/httpd/modules/libphp5.so
/usr/share/httpd/icons/php.gif
/var/lib/php/session

  3.2 将php与mysql关联起来

复制代码
[root@nmserver-7 ~]# yum install php-mysql

[root@nmserver–7 ~]

# rpm -ql php-mysql

/etc/php.d/mysql.ini /etc/php.d/mysqli.ini

/etc/php.d/pdo_mysql.ini

/usr/lib/php/modules/mysql.so

/usr/lib/php/modules/mysqli.so

/usr/lib/php/modules/pdo_mysql.so

复制代码

  3.3 安装常用PHP模块

[root@nmserver-7 ~]# yum install -y php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel php-bcmath

  3.4 测试PHP

复制代码
[root@nmserver-7 ~]# cd  /var/www/html/
[root@nmserver-7 html]# ls
[root@nmserver-7 html]# pwd
/var/www/html
[root@nmserver-7 html]# vi info.php

<?php
        phpinfo();
?>
~                                                                                        
~                                                                                        
~                                                                                        
~                                                                                        
~                                                                                        
~                                                                                        
~                                                                                        
~        :wq
复制代码

  3.5重启apache服务器

[root@nmserver-7 html]# systemctl restart httpd

  3.6测试PHP

  在自己电脑浏览器输入 192.168.8.9/info.php,你可以看到已经安装的模块;

至此,CentOS7下LAMP环境搭建好了!下一步可以安装zabbix了!

树莓派服务器(第十章: mysql-5.6.34 编译安装)

centos mysql-5.6.34 编译安装:

准备工作:
yum install gcc gcc-c++ ncurses-devel perl

安装cmake:
yum install cmake
或源码安装:
wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz   
tar -xzvf cmake-2.8.10.2.tar.gz   
cd cmake-2.8.10.2   
./bootstrap ; make ; make install   
cd ~  

新增mysql用户组:
groupadd mysql  
新增mysql用户:
useradd -r -g mysql mysql
新建mysql安装目录:
mkdir -p /usr/local/mysql  
新建mysql数据库数据文件目录:
mkdir -p /data/mysqldb  

 wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.34.tar.gz
 tar -zxvf mysql-5.6.34.tar.gz
 cd mysql-5.6.34

从mysql5.5起,mysql源码安装开始使用cmake了,设置源码编译配置脚本:
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/data1/mysqldb -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1

make -j4

make install

修改mysql目录所有者和组:
cd /usr/local/mysql   
chown -R mysql:mysql ./ 

cd /data/mysqldb  
chown -R mysql:mysql ./  

初始化mysql数据库:
cd /usr/local/mysql   
scripts/mysql_install_db –user=mysql –datadir=/data/mysqldb

复制mysql服务启动配置文件:
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf  

giedt /etc/my.cnf

[client]

port    = 3306
socket = /var/lib/mysql/mysql.sock

[mysqld]

user    = mysql
port    = 3306
socket = /var/lib/mysql/mysql.sock
basedir = /usr/local/mysql
datadir = /data1/mysqldb
log-error = /data/mysqldb/mysql_error.log
pid-file = /data/mysqldb/mysql.pid

复制mysql服务启动脚本及加入PATH路径:
cp support-files/mysql.server /etc/init.d/mysqld 

vim /etc/profile 

      PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH

      export PATH

source /etc/profile  

启动mysql服务并加入开机自启动(可选这个步骤,以后可以自己启动的):
service mysqld start 
chkconfig –level 35 mysqld on

检查mysql服务是否启动:
netstat -tulnp | grep 3306   
mysql -u root -p   

修改MySQL用户root的密码:
mysqladmin -u root password ‘123456’

注:也可运行安全设置脚本,修改MySQL用户root的密码,同时可禁止root远程连接,移除test数据库和匿名用户:
/usr/local/mysql/bin/mysql_secure_installation  


MySQL问题解决:-bash:mysql:command not found  
因为mysql命令的路径在/usr/local/mysql/bin下面,所以你直接使用mysql命令时,  
系统在/usr/bin下面查此命令,所以找不到了   
   解决办法是:  
 ln -s /usr/local/mysql/bin/mysql /usr/bin 做个链接即可 

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/usr/local/mysql/mysql.sock’ (2)
1、先查看 /etc/rc.d/init.d/mysqld status 看看mysql服务是否已经启动.
另外看看是不是权限问题.
$service mysqld start

$service mysql start
–我开始遇到的就是因为服务没启动,因为第一次玩mysql不是很熟悉,呵呵。

2、确定你的mysql.sock是不是在那个位置,
mysql -u 你的mysql用户名 -p -S /var/lib/mysql/mysql.sock

如果错啦,就修改/etc/my.cnf:

[client]

socket = /var/lib/mysql/mysql.sock

[mysqld]

socket = /var/lib/mysql/mysql.sock

3、如果是权限问题,则先改变权限 #chown -R mysql:mysql /var/lib/mysql

[root@localhost ~]

# /etc/init.d/mysqld start
启动 MySQL: [ 确定 ]

[root@localhost ~]

# mysql -uroot -p

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
原因是,/var/lib/mysql 的访问权限问题。

shell> chown -R mysql:mysql /var/lib/mysql

接着启动服务器

shell> /etc/init.d/mysql start

服务器正常启动后察看 /var/lib/mysql 自动生成mysql.sock文件。

4、修改/etc/my.conf:

[mysqld]

datadir=/usr/local/mysql/data
socket=/var/lib/mysql/mysql.sock

[mysql.server]

user=mysql
basedir=/usr/local/mysql

If there is not currently a section called [client], add one at the bottom of the file and copy the socket= line under the [mysqld] section such as:

[client]

socket=/var/lib/mysql/mysql.sock

如果发现问题依旧,尝试运行/etc/init.d/mysql start报错:Starting MySQLCouldn’t find MySQL manager or server

如是mysqld服务没启,运行/usr/local/mysql/bin/mysqld_safe &

作者:兔子ming_
来源:CSDN
原文:https://blog.csdn.net/hxmcnu/article/details/53269102
版权声明:本文为博主原创文章,转载请附上博文链接!

centos 搭建 lamp+ftp过程下安装 LAMP环境及配置(php5.6,mysql5.7)

注意该教程只适合Centos7.4

一、连接服务器,检查当前系统环境

1.查看centos版本

[root@iZ2ze1z1rt2fvuh7divnv5Z ~]

# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
1
2
2.检查是否装相关应用
检查apache

httpd -v
1
检查mysql

service mysqld start
1
如果有安装过,清理下

yum remove mysql
rm -f /etc/my.cnf
rpm -qa | grep httpd
1
2
3
二、 安装apache

yum -y install httpd
1
安装apache扩展

yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql
1
(centos 7 才使用下面命令)

systemctl start httpd.service #启动apache
systemctl stop httpd.service #停止
systemctl restart httpd.service #重启
1
2
3
设置开机自启动

systemctl enable httpd.service
1
浏览器访问服务器,安装成功的话,会出现一个和Apache有关的页面

三、重头戏,安装php5.6

配置yum源,以下是CentOS 7.0的源。

yum install epel-release
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
1
2
使用yum list命令查看可安装的包(Packege)。

yum list –enablerepo=remi –enablerepo=remi-php56 | grep php
1
yum源配置好了,下一步就安装PHP5.6。

yum install –enablerepo=remi –enablerepo=remi-php56 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof
1
用PHP命令查看版本。

php –version
1
安装PHP-fpm

yum install –enablerepo=remi –enablerepo=remi-php56 php-fpm
1
重启apache,然后建一个叫名叫 index.php 的文件,然后写入如下内容,并放入 /var/www/html/ 目录。


注意你要看你的pdo和gd开启没有,要是没有开启那你就快完蛋了,我从网上找了好多教程都没开启pdo成功,无奈用了最笨的办法,重置系统,再次安装,这个办法虽然笨,但是特别好使,嘻嘻嘻~~~~
开启pdo运行

yum install php-gd
1
安装php-gd扩展可能会报以下错:

Error: Package: php-gd-5.6.11-1.el6.remi.x86_64 (remi-php56) Requires:
gd-last(x86-64) >= 2.1.1 Error: Package:
php-gd-5.6.11-1.el6.remi.x86_64 (remi-php56) Requires:
libgd.so.3()(64bit) You could try using –skip-broken to work around
the problem You could try running: rpm -Va –nofiles –nodigest
报错的原因是因为PHP安装的版本是5.6.10 ,现在yum默认找的是php5.3版本。这个问题也是不好解决,我搞了两个小时都没能好,最后得到高人指点,运行

yum install php-gd –enablerepo=remi-php56
1
在运行一下

yum install php-gd
1
你会神奇的发现你的gd开启了O(∩_∩)O哈哈~

四、MYSQL安装

首先进入本机的源文件目录

cd /usr/local/src
1
如果以下三步你发现运行的特别慢那么,请马上Ctrl+c,删除刚刚下载的rpm包,按照这个教程来安装mysql
https://www.linuxidc.com/Linux/2016-09/135288.htm

使用wget下载官方yum源的rpm包:

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
1
安装rpm包:

rpm -ivh mysql57-community-release-el7-11.noarch.rpm
1
再次使用yum来安装mysql-server:

yum install -y mysql-server
1
安装完成后,启动mysqld服务

systemctl start mysqld
1
重启mysqld服务

/bin/systemctl start mysqld.service
1
查看是否成功启动:

ps aux|grep mysqld
1
设置mysqld服务开机自启动:

systemctl enable mysqld
1
使用初始密码登录

由于MySQL从5.7开始不允许首次安装后,使用空密码进行登录,系统会随机生成一个密码以供管理员首次登录使用,这个密码记录在/var/log/mysqld.log文件中,使用下面的命令可以查看此密码:

cat /var/log/mysqld.log|grep ‘A temporary password’
1
出现下面代码

2017-11-12T13:35:37.013617Z 1 [Note] A temporary password is generated for root@localhost: bkv,dy,)o7Ss

最后一行冒号后面的部分就是初始密码,我的密码就是 bkv,dy,)o7Ss
连接数据库

mysql -u root -p
1
更改默认密码:
切换数据库:

use mysql;
1
如果这个时候出现 mysql 报错ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executin,直接修改root密码,就不用切换数据库了

修改root密码:

alter user ‘root’@’localhost’ identified by ‘your_password’;
1
将your_password替换成你自己的密码就可以了,当然,这个密码是强密码,要求密码包含大小写字母、数字及标点符号,长度应该在6位以上,不然就会失败。
重新使用新的密码登录,如果可以正常登录说明你的MySQL已经成功安装在CentOS 7.4上了

五、配置篇

第一步:配置Apache

修改Apache配置文件:vim /etc/httpd/conf/httpd.conf,并在文件中查找下面所在行,进行修改(查找可以在vi的一般模式下输入“/要查找的字符”进行查找):

AddHandler cgi-script .cgi  修改为: AddHandler cgi-script .cgi .pl (允许扩展名为.pl的CGI脚本运行)

AllowOverride None  修改为: AllowOverride All (允许.htaccess)

AddDefaultCharset UTF-8  修改为: AddDefaultCharset GB2312  (关于这个设置看你自己的开发时候你的文件编码设置,或者不动也行)

Options Indexes MultiViews FollowSymLinks 修改为 Options MultiViews FollowSymLinks (不在浏览器上显示树状目录结构)

DirectoryIndex index.html 修改为: DirectoryIndex index.html index.htm Default.html Default.htm index.php Default.php index.html.var (设置默认首页文件,增加index.php)

KeepAlive Off 修改为: KeepAlive On (允许程序性联机)

第二步:配置PHP

修改PHP配置文件:vim /etc/php.ini,以下需要修改的行的位置可以通过vi的查找命令来查找:

Options Indexes FollowSymLinks 修改为: Options Includes ExecCGI FollowSymLinks (允许服务器执行CGI及SSI,禁止列出目录)

date.timezone = PRC #把前面的分号去掉,改为date.timezone = PRC

disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru, stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname

列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。

expose_php = Off #禁止显示php版本的信息

display_errors = OFF #关闭错误提示

register_globals = OFF #关闭注册全局变量

open_basedir = (项目所在目录):/tmp/ #设置表示允许访问当前目录(即PHP脚本文件所在之目录)和/tmp/目录,可以防止php木马跨站,例如:open_basedir =usr/www/html/xianmgu:/tmp/

经过安装和配置之后,web服务器基本上已经搭建起来了,可以对其进行访问。

修改好之后保存配置,重新启动Apache,如果你和我一样是tp5使用者那你请看下面番外篇

六、番外篇

修改PHP配置文件:vim /etc/php.ini

always_populate_raw_post_data = On #把前面的分号去掉,改为 always_populate_raw_post_data = -1

session.auto_start = 0 改为 session.auto_start =1

如果你发现出现服务器500错误, 修改配置参数值:

display_errors = On

error_reporting = E_ALL | E_STRICT

修改好之后保存配置,记得启动Apache

添加数据出现MySQL 1364 错误提示:#1364 – Field “details” doesn’t have a default value。

(1)配置my.cnf,添加代码:

sql-mode=”NO_AUTO_Create_USER,NO_ENGINE_SUBSTITUTION”
1
(2) 登陆mysql,直接运行以下下代码(注:每次重启服务器都要运行以下代码,建议用第一种方法)

SET @@GLOBAL.sql_mode=”NO_AUTO_Create_USER,NO_ENGINE_SUBSTITUTION”;

下面主要是说如何在centos下面配置一个ftp服务器,我找了几个教程,每个教程都有各自的有点,我就结合了他们的优点来总结出一篇更好的教程啦,参考文章在末位给出,如有侵权,请联系我,谢谢。其中有一个经验教训就是在防火墙那里,如果其他都配置好了,通过ftp客户端还是连接不上的话,一般来说就是服务器的防火墙配置问题,可以直接把防火墙关闭来试一下,一般来说就可以了;但是确认了是防火墙的配置问题之后,防火墙还是要重新打开的(为了安全),然后再检查防火墙ftp的具体配置。
安装前准备

选用CentOS 7.2 64位的系统,阿里云在公共镜像中提供了该系统镜像,用户可直接在控制台中更换此系统。并通过远程链接进入到系统中。

vsftpd是linux下的一款小巧轻快,安全易用的FTP服务器软件,是一款在各个Linux发行版中最受推崇的FTP服务器软件。

1.安装vsftpd,直接yum 安装就可以了

yum install -y vsftpd
图片20

出现下图表示安装成功。

图片21

相关配置文件:

cd /etc/vsftpd
图片22

/etc/vsftpd/vsftpd.conf //主配置文件,核心配置文件

/etc/vsftpd/ftpusers //黑名单,这个里面的用户不允许访问FTP服务器

/etc/vsftpd/user_list //白名单,允许访问FTP服务器的用户列表

启动服务

chkconfig vsftpd on //设置开机自启动

service vsftpd restart //重新启动ftp服务

netstat -antup | grep ftp //查看ftp服务端口

图片23

2.安装完成之后就要重启vsftpd服务

到vsftpd的主配置文件里面

把这个改为NO 默认是YES (改为NO 就是禁止匿名用户登录,不需要注释)

同时按照下图配置,不可以让ftp用户跳出自己的家目录,否则太危险了,需要做限制,默认是注释掉的,把#号去掉 然后重启vsftpd。

(注意:这里也可以把chroot_list_file=/etc/vsftpd/chroot_list的注释打开)

3.创建ftp用户

(yuanfei这个用户智能连接ftp无法登录系统,默认家目录是在var/www/html 文件夹下面)

给yuanfei这个用户设置密码

然后给家目录修改权限,否则你无法上传文件

4.修改selinux

默认是enforcing  把他修改为disabled

因为修改selinu后需要重启服务,因为服务器不可以重启所以执行上面这个命令,临时修改selinux的策略,无需重启!

5.重启vsftpd服务,并且下次自动启动

6.配置防火墙(要打开21端口)

打开/etc/sysconfig/iptables文件
vi /etc/sysconfig/iptables

在REJECT行之前添加如下代码
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT

保存和关闭文件,重启防火墙
service iptables start

(ps.这一步也可以直接关闭防火墙,但是不建议这样做,关闭防火墙方法如下:

7.客户端测试。直接使用ftp://服务器ip地址:ftp端口(如果不填端口则默认访问21端口)

附录1:如果以上配置防火墙还是不行的话,就按照以下方法尝试:

基本的vsftpd服务配置好了。但是这样配置完成后客户端并不能连接上,主要应该是默认防火墙设置下,CentOS的防火墙是不开放ftp服务的,需要添加模块和开放21端口才能提供ftp访问。 
1.添加ip_conntrack_ftp 模块

[root@localhost ~]# vi /etc/sysconfig/iptables-config

添加下面一行

IPTABLES_MODULES="ip_conntrack_ftp"

2.打开21端口

[root@localhost ~]# vi /etc/sysconfig/iptables

添加(注意这里添加要在REJECT行之前添加)

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

3.重启iptables使新的规则生效

[root@localhost ~]# service iptables restart

到此,应该是可以了,若软件测试连接过程中,在用户验证的时候出现了错误503,应该是selinux设置的问题:可以用下面的命令检查

[root@localhost ~]#getsebool -a |grep ftp

allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
allow_tftp_anon_write --> off
ftp_home_dir --> off
ftpd_connect_db --> off
ftpd_disable_trans --> off
ftpd_is_daemon --> on
httpd_enable_ftp_server --> off

这是selinux的问题,我们只要打开ftp_home_dir的值开启为on:,allow_ftpd_full_access也一同开启即可。

[root@localhost ~]#setsebool -P ftp_home_dir 1
[root@localhost ~]#setsebool -P allow_ftpd_full_access 1

树莓派mysql无需密码连接的问题

问题描述
最近需要在树莓派3B+上运行一个Java程序,这个java程序使用到了mysql数据库。在这个过程中遇到了一个问题:

安装mysql-server的过程没有提示输入root的password
安装成功后,输入指令mysql -uroot,提示Access denied for user ‘root’@’localhost’
输入sudo mysql -uroot可以直接连接成功
输入sudo mysql -uroot -p后回车输入任意password也可以直接连接成功
输入mysql -h 127.0.0.1 -P 3306 -uroot -p提示Access denied for user ‘root’@’localhost’
因此,java程序通过jdbc来连接数据库也是提示:Access denied for user ‘root’@’localhost’

原因
需要给root设置password
需要将用户表中plugin字段由auth_plugin设置成mysql_native_password
参考 https://blog.jasonmeridth.com/posts/unable-to-access-mysql-with-root-and-no-password-after-new-install-on-ubuntu/

解决步骤
第一步:安装mysql
sudo apt-get update

sudo apt-get install mysql-server
1
2
3
第二步:设置root的password和修改plugin字段
sudo mysql -uroot

连接mysql

1
2
USE mysql;

UPDATE user SET password=PASSWORD(‘123456′) WHERE user=’root’;

UPDATE user SET plugin=’mysql_native_password’ WHERE user=’root’;

FLUSH PRIVILEGES;

exit;
1
2
3
4
5
6
7
8
9
第三步:重启服务
sudo systemctl restart mysql

sudo systemctl status mysql
1
2
3
附加:完全卸载mysql(如果以上执行成功了可忽略这一步)
sudo apt-ge autoremove –purge mysql-server

sudo apt-get remove mysqyl-server

sudo apt-get remove mysql-common #重要

sudo apt-get autoremove mysql-server

效果
不管是否加sudo 都必须使用正确的密码才能连接数据库

远程连接的问题:在/etc/mysql/mariadb.conf.d/50-server.conf中,将bind-address=127.0.0.1改成bind-address=0.0.0.0,重启系统即可。

利用fortigate 100D 通过关键字 过滤部分垃圾邮件

看看这个图,看着就烦,一个小时内N多垃圾邮件,这些垃圾邮件,最后的目标,都是叫你打开一个叫19 XXXX.COM的网站

于是我做出简单的办法,过滤这近千个垃圾邮件

一、先通过web邮箱登陆,把所有的邮件标题,都复制到txt,

二。再把TXT上的文字,粘贴到excel上,

三、试图找到这个垃圾邮件的共性,可以使用一个叫词频软件的东西,找到出现最多的词语,我由于已经发现这些邮件的共性,是要求进入19XXX的网站,我直接在EXCEL查询每个标题19XXX的字符,再去除重复,这次找到了25个这样的网站

四,左边的是修改fortigate的语法,右边是 关键字通过这两个,以及公式,生成一批语句

五。可以把生成的命令,复制到fortigate 命令行,执行,即可

完成过渡后

就没有收到这些网站的邮件了,假如还有新的加入,再封就是了。