Posted on

centos7下安装lemp栈

1.nginx

sudo yum install epel-release/更新的社区软件包
sudo yum install nginx
sudo systemctl start nginx/运行nginx
sudo systemctl enable nginx/开机启动
sudo yum update

2.mysql

sudo yum install http://repo.mysql.com/yum/mysql-5.5-community/el/7/x86_64/mysql-community-release-el7-5.noarch.rpm/加入软件源
sudo yum repolist all | grep mysql/查看默认安装版本
sudo vim /etc/yum.repos.d/mysql-community.repo/修改默认安装版本
sudo yum install mysql-server
sudo systemctl start mysqld
sudo systemctl enable mysqld
sudo mysql_secure_installation
mysql -u root -p

3.php

sudo yum install php php-mysql php-fpm
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
sudo sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php.ini
sudo sed -i 's/user = apache/user = nginx/g' /etc/php-fpm.d/www.conf
sudo sed -i 's/group = apache/group = nginx/g' /etc/php-fpm.d/www.conf
sudo vim /etc/php-fpm.d/www.conf
listen = /var/run/php-fpm/php-fpm.sock/修改的行

4.phpmyadmin

sudo yum install phpmyadmin
sudo ln -s /usr/share/phpMyAdmin /usr/share/nginx/html //把phpmyadmin目录链接到公开的web目录

5.nginx server blocks

sudo vim /etc/nginx/conf.d/default.conf

sudo vim /etc/nginx/nginx.conf

example:

server {
    listen       80;
    server_name  server_domain_name_or_IP;

    # note that these lines are originally from the "location /" block
    root   /usr/share/nginx/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

6.mysql导入导出

导入:

mysql -u root -p

create database 数据库名;

use 数据库名

source /root/数据库名.sql

导出:
mysqldump -u root -p 数据库名 > 文件名.sql
Posted on

php与python的比较

本文仅从需求端比较php与python这2种语言,而不会比较语法、效率、工程等具体的因素,因为这些都是IT业内的看法,而我们的软件不仅要卖给IT业内,最大的市场显然是不懂IT的公司和个人。

php一直在程序员界背负着“最好的语言”名声,这句调侃代表了程序员界的价值观:对非业内人士的贬低,因为我会c/c++/python/c#/java,所以比你只会php显得高级和专业。毕竟php太容易入门了,它在工商业界的应用太过广泛,但是在IT界却被贴上了许多负面标签:设计不好、效率不高、语法奇葩。事实许多公司的业务最简单的解决方案就是PHP,而且PHP开发的开源和商业软件也最丰富。

python虽然在程序员界被吹上了天,因为它既是最好的入门语言,可以写web后端,还可以写机器学习,又能数据分析,而且和大数据沾点边,把这些特点加起来不就是近年来IT界的所有热点吗?但是回过头来看看,用python写的最著名的网站都是IT业内的,其实python这么火爆,完全是被IT界的高薪吸引而想进入互联网公司的门外汉炒起来的。

工具毕竟是工具,有太多人痴迷于工具而忘记了前方的路该怎么走,其实顾客只是想把钉子订入墙内,而IT业内的程序员们太过执迷于使用哪把锤子,忘记了把钉子弄好。

 

Posted on

使用cloudflare屏蔽特定国家的ip

业务需要服务器屏蔽一个国家的ip访问,效率最高的是总是用nginx来实现。

首先重新编译nginx,加上ngx_http_geoip_module这个插件。

然后下一步网上全是下载geoip这个包来判断ip所属国家,这个教程我们换一种思路。

如果使用cloudflare加速的网站,默认会开启IP Geolocation这个选项(在network里可以找到),

它发送一个访问者的国家代码参数$HTTP_CF_IPCOUNTRY到nginx,这样我们就可以直接根据这个参数来屏蔽ip了。

location / {
if ($http_cf_ipcountry = CN) {
return 404;
}
}

国家代码参见:https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2

此外还可以加上白名单功能

location / {

if ($ip_whitelist = 1) {
break;
}
if ($http_cf_ipcountry = CN) {
return 404;
}
}

编辑nginx.conf

http {
geo $http_cf_connecting_ip $ip_whitelist {
default 0;
8.8.8.8 1;
}
}

Posted on

vue上手记录

以前说起web前端开发,首先想到的是html+css+js,后来有了jQuery和bootstrap这样的傻瓜式工具,再后来兴起vue和React这样的框架,感觉前端发展太过迅速,不学习已经跟不上脚步了。

近几年移动端崛起,桌面端不断弱化,除了双端原生APP开发,跨端的技术就看前端怎么发展了。html5目前看来已经凉了大半,微信小程序和小游戏异军突起,vue和React这样的开源框架究竟能不能一统江湖,就要看主导厂家构建的生态系统了。

看一个技术能不能长久发展,有没有前途,最重要的还要看其市场大小和上手难度,比如js构建下的全栈技术生态是目前最热门的技术,另外热门的技术都是多面手,python在后端开发、机器学习、数据科学都有应用。

vue十分简单,如果有基本的js知识,十分容易上手。

但是必须学习许多新概念,比如渐进式、渲染、组件、vuex、node、npm、vue-cli、webpack等等,这些东西或者是vue自己创造的词,或者是其它前端工具使用的工具,对于我这个只会用前端三语言加一个记事本做开发的人来说,还是不小的挑战。

Posted on

php爬虫采集填坑

大多数早期的个人站长应该都听说过火车头采集器这款软件吧?当年做个人网站和seo的风潮正兴,但是没有内容是个大问题,而且个人站长主要专注于运营,对技术关注度不高,于是火车头这类傻瓜式的采集软件才会兴起。

现在各类编程语言都可以写爬虫来采集内容入库,好处是定制化程度、效率和灵活度比较高。这次用php来采集,主要使用了snoopy这个类、preg函数和正则表达式。

1.出现乱码问题,使用mb_convert_encoding转换为utf-8

2.snoopy类的用法,

include "Snoopy/Snoopy.class.php";
$snoopy = new Snoopy;

$snoopy->fetch("http://url");
$out = $snoopy->results;

3.正则表达式

推荐《正规表达式必知必会》

Posted on

卫星天线方位角、仰角、极化角的javascript算法实现

var Radian=Angle*(Math.PI/180);     //角度转换为弧度

var Angle=Radian*(180/Math.PI);    //弧度转换为角度

double x = atan(tan(LongitudeOfSatellite - LongitudeOfReceivStation) / sin(LatitudeForReceivStation));
x=180 - RadianToAngle(x) ; //方位角

double a = cos(LongitudeOfSatellite - LongitudeOfReceivStation) * cos(LatitudeForReceivStation);
double b = 1.0f - powf(a, 2.0f);
b=sqrt(b);
a=a - 0.1512695;
double x =(a / b);
x=atan(x);
x=RadianToAngle(x); //仰角

double x = atan(sin(LongitudeOfSatellite - LongitudeOfReceivStation) / tan(LatitudeForReceivStation));
x=RadianToAngle(x); //极化角,逆时针为负

Posted on

树莓派安装lede当无线路由器

下载
进入
http://downloads.lede-project.org/releases/17.01.4/targets/brcm2708/
bcm2708是给第一代的,bcm2709给第二代,bcm2710就是给RPi3的
http://downloads.lede-project.org/releases/17.01.4/targets/brcm2708/bcm2710/lede-17.01.4-brcm2708-bcm2710-rpi-3-ext4-sdcard.img.gz
写入sd卡
在win下使用win32diskimager把下载的img文件写入到sd卡中
配置网络
wan口使用pppoe拨号,wifi使用内置无线网卡
安装ss
进入system-software  搜索shadowsocks-libev-mbedtls

Posted on

laravel的虚拟机Homestead安装

1,安装virtualbox和vagrant
2.下载homestead的box.
官方的命令 vagrant box add laravel/homestead 不建议使用
因为直接使用vagrant下载太慢,所以建议用下载工具下载
3.下载homestead配置
git clone https://github.com/laravel/homestead.git Homestead
在cmd下运行init.bat
4.生成一对rsa密钥,在Homestead.yaml文件中指定公钥
5.安装homestead.box
新建一个homestead.json文件

{
"name": "laravel/homestead",
"versions": [{
"version": "2.1.0",
"providers": [{
"name": "virtualbox",
"url": "file://homestead.box"
}]
}]
}

接着运行命令:
vagrant box add homestead.json
启动虚拟机:
vagrant up

Posted on

virtualbox安装macOS Sierra开发环境

1.安装virtualbox
2.下载macOS 10.12 Sierra Final by TechReviews.vmdk
新建虚拟机,使用下载好的虚拟硬盘文件,内存选择4g以上,cpu选择2核,去掉软驱,显存设置为128mb。
使用管理员权限打开cmd,输入下面命令

cd “C:\Program Files\Oracle\VirtualBox\”
VBoxManage.exe modifyvm “MacOS” –cpuidset 00000001 000106e5 00100800 0098e3fd bfebfbff
VBoxManage setextradata “MacOS” “VBoxInternal/Devices/efi/0/Config/DmiSystemProduct” “iMac11,3”
VBoxManage setextradata “MacOS” “VBoxInternal/Devices/efi/0/Config/DmiSystemVersion” “1.0”
VBoxManage setextradata “MacOS” “VBoxInternal/Devices/efi/0/Config/DmiBoardProduct” “Iloveapple”
VBoxManage setextradata “MacOS” “VBoxInternal/Devices/smc/0/Config/DeviceKey” “ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc”
VBoxManage setextradata “MacOS” “VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC” 1

然后启动虚拟机,开始安装系统