碰到问题一:



安装了MySQL,然后用 telnet ip 3306,端口后报BHost '127.0.0.1' is not allowed to connect to this MySQL serverConnection closed by foreign host,虽然自己以前也碰到过,后来解决了,但是觉得还是值得贴出来,估计会有很多人同样碰到过,贴个解决办法:

MySQL>UPDATE MySQL.user SET Host='%' WHERE Host='localhost';  
MySQL>GRANT ALL PRIVILEGES  

这样搞如果该服务器在外网,有可能不安全,因为%的意思是谁都都可以连接的意思,最好是指定IP地址能连接,如问题二所示。

碰到问题二:


处理方法有二个
1、(如何解决客户端与服务器端的连接(mysql) :xxx.xxx.xxx.xxx is not allowed to connect to this mysql serv
) 授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。

GRANT ALL PRIVILEGES ON *.* TO ‘myuser’@'%’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;
如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码

GRANT ALL PRIVILEGES ON *.* TO ‘root’@’192.168.1.3′ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO ‘root’@’10.10.40.54′ IDENTIFIED BY ’123456′ WITH GRANT OPTION;

2、 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称”%”
这个是因为权限的问题,处理方式如下:

shell>mysql --user=root -p
输入密码

mysql>use mysql
mysql>GRANT SELECT,INSERT,UPDATE,DELETE ON [db_name].* TO [username]@[ipadd] identified by '[password]';

[username]:远程登入的使用者代码
[db_name]:表示欲开放给使用者的数据库称
[password]:远程登入的使用者密码
[ipadd]:IP地址或者IP反查后的DNS Name,此例的内容需填入'60-248-32-13.HINET-IP.hinet.net' ,包函上引号(')

(其实就是在远端服务器上执行,地址填写本地主机的ip地址。)

也可以这样写

mysql -u root -pvmwaremysql>use mysql;mysql>update user set host = ‘%’ where user = ‘root’;mysql>select host, user from user;

分别来自:
http://database.51cto.com/art/201006/204016.htm
http://www.111cn.net/database/mysql/42040.htm
背景:Nginx直接连接redis,不用php的扩展连接,一定程序上提高了redis性能,但是在程序逻辑的可控制上会弱一点,用来做一些单纯的高并发登录没有问题,逻辑重点这种玩法并不能带来很大的提升。
需要下载第三方模块ngx_http_redis-0.3.2.tar.gz,并需要重新编译nginx。
注意要注释掉ngx_http_redis_module.c文件的145行
/*static ngx_str_t  ngx_http_redis_db  = ngx_string("redis_db");*/
否则会报错,意思是这个定义的redis_db在程序里没有使用,算是个警告报错,注释掉安装即可

./configure --user=nginx --group=nginx  --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=/software/module/ngx_http_redis-0.3.2


配置
location / {
    set $redis_key $uri;

    redis_pass     name:6379;
    default_type   text/html;
    error_page     404 = /fallback;
  }

$redis_db
The number of redis database (required for < 0.3.2).
For ngx_http_redis >= 0.3.2 is not obligatory, default value is "0" if not defined.
这个$redis_db可以不配,默认是0database。
更多官方的资料请参考:http://wiki.nginx.org/HttpRedis2Module

更多参考之Keepalived+nginx+redis主从+tomcat一机多实例实现会话共享:
http://lovelace.blog.51cto.com/1028430/1550198
https://www.nginx.com/resources/wiki/modules/redis2/
背景:阿里云没备案会不让配置host访问的,被拦截,直接用ip访问呢?应该没啥吧。
   比如我服务器ip是192.168.1.1,两个域名为user.a.com,manage.a.com都映射到了该ip上。nginx里如何配置,当我用ip访问时默认打开user.a.com;而另一个域名manage.a.com又不影响呢?

这样就可以了

  

nginx.conf里写:
include vhosts/*.conf;

ls /usr/local/nginx/conf/vhosts/
10.70.37.2*.conf  default.conf
———————————————
10.70.37.2*.conf
server_name 10.70.37.24;//写成IP

default.conf
server_name 127.0.0.1;

来自:http://www.dewen.io/q/2760
背景:批量修改多台机器里的密码,怎么办,一台机器知道后,拷贝到另外机器上的办法,采用第三种较好。
1)新建用户:useradd -m 用户名 //-m是建一个home
2)设置密码:passwd 用户名
3)一般需要修改/etc/passwd 下面的bash
4)将用户加入sudo组。

总之,一个同样的Unix/Linux的密码,经过一次后,其生成的密码shadow是不一样的,实践如下所示可证明:

但是你批量替换时,完全可以选一个就成,如:


接近博文的正题了:
多台机器要批量加时,可用secureCRT,或大公司用zookeeper结合shell实现conf前端web系统进行海量机器的密码新增:

————————————————介绍修改用户密码三种方法————————————————
第一种:
echo "123456"|passwd --stdin root
优点:方便快捷
缺点:如果你输入的指令能被别人通过history或者其他方式捕获,那么这样的方式是很不安全的,更重要的是如果密码同时含有单引号和双引号,那么则无法通过这种方法修改。


第二种:
a.首先将用户名密码一起写入一个临时文件.
cat chpass.txt
root:123456
zhaohang:123456
b.使用如下命令对用户口令进行修改:
chpasswd<chpass.txt
c.可以使用 123456 来登录系统,密码修改完毕.
优点:可以很快速方便的修改多个用户密码
缺点:明文密码写在文件里仍然显得不够安全,但是避免了第一种修改方式不能有特殊字符串密码的情况.


第三种:
a.用 openssl passwd-1 来生成用户口令(这块有一台后,其它就不用再生成了,直接:chpasswd -e < chpass.txt),连同用户名一起写入文件.
cat chpass.txt
root:$1$ri2hceVU$WIf.firUBn97JKswK9ExO0
zhaohang:$1$i/Gou7.v$Bh2K6sXmxV6/UCxJz8N7b.
b.使用如下命令对用户口令进行修改:
chpasswd -e < chpass.txt
c.可以使用 123456 来登录系统,密码修改完毕.
优点:可以很快速方便的修改多个用户密码
缺点:和上面两种相比大大增强了安全性

附加介绍:
openssl passwd -1 命令可以输出shadow里面的密码,把这个命令生成的秘串更改为你shadow里的密码,那么下次你登录系统就可以用你的生成密码的口令来登录了,使用这个命令,即使口令一样,多次执行生成的密码串也不一样。那个hash值对应的密码是完全随机的基于64位字符编码的28位长,因此要破解它是非常困难的,只要不用那些密码已经公布出来的hash值创建账号,即使这些密码文件被公布也还是比较安全的。使用旧的unix哈希可以去掉 -1 参数。

[root@WEB01~]# openssl passwd -1
Password:123456
Verifying-Password:123456
$1$ri2hceVU$WIf.firUBn97JKswK9ExO0

也可以直接使用如下命令来直接生成:
[root@WEB01 ~]# openssl passwd -1 123456

来自:http://blog.chinaunix.net/uid-561779-id-166621.html
背景:由于数据库服务器安装在数据库机上,因此,在linux中只需安装mysql的客户端库就可以了。那么这个PHP下的mysql client要不要安装?再就是如果想在这台机器上连接mysql  server,客户端要不要安一个呢,当然要,且只安mysql的client客户端。
方法一:从编译好的包里释放安装:
一)有rpm包的情况:
MySQL-client-5.0.22-0.i386.rpm //mysql -uroot 这个client的一个包 标准MySQL客户程序。你可能总是需要安装这个包。
MySQL-devel-5.0.22-0.i386.rpm  //要想用c去连接这个mysql的lib库
(安装好以后,在 /usr/include/mysql/ 目录中存放有libmysqlclient的头文件mysql.h,在 /usr/lib/mysql/ 目录中存放有mysql的库文件,但只有.a结尾的(即静态库)库文件(包括libmysqlclient.a),没有.so(共享库)文件。)
键入以下命令安装:

#rpm -ivh MySQL-client-5.0.22-0.i386.rpm
#rpm -ivh MySQL-devel-5.0.22-0.i386.rpm

使用如下命令编译一个简单的测试程序(代码在本文结尾处给出):
#gcc -c -I/usr/include/mysql mysql-test.c
此命令成功生成了目标文件mysql-test.o。
继续键入以下命令。
#gcc -o --static mysql-test mysql-test.o -L/usr/lib/mysql -lmysqlclient

注意参数的顺序,gcc有时会因为某些参数顺序不对而报错,某些相关参数的具体顺序应该如何,还望高人指点。
以上命令确给出了数不清的“引用未定义符号”的错误信息,引用未定义符号的是libmysqlclient.a
带着希望折腾了许久,最后决定从源码包安装mysql客户端程序库。

卸载MySQL-client与MySQL-devel:
#rpm -e MySQL-client
#rpm -e MySQL-devel

二)yum 安装,其实是一样的,只是在网上安装,看来centos7上新的db数据库会向mariadb转的趋势啊:
[root@iZ25z0ugwgtZ logs]# yum search mysql|grep dev
mysql++-devel.x86_64 : MySQL++ developer files (headers, examples, etc.)
mariadb.x86_64 : A community developed branch of MySQL
mariadb-devel.i686 : Files for development of MariaDB/MySQL applications
mariadb-devel.x86_64 : Files for development of MariaDB/MySQL applications


方法二:从源码里通过参数只编译安装客户端:
[root@iZ25dcp92ckZ vhost]# ldconfig -v|grep mysql
/usr/lib64/mysql:  这个路径在哪儿配置的呢?在:vi /etc/ld.so.conf  自己加上想要找的动态链接库:/usr/local/inotify-tools-3.14/lib
        libmysqlclient.so.18 -> libmysqlclient.so.18.0.0
从源码包安装mysql客户端程序库。
#tar -zxvf mysql-5.0.22.tar.gz (mysql-5.0.22.tar.gz位于/root目录)
#cd mysql-5.0.22
进入mysql-5.0.22目录,阅读 INSTALL-SOURCES 文件,并看到几个关键选项:
1、--without-server
只编译安装客户端程序库,不编译mysql服务器程序,这在本机只需要libmysqlclient时很有用。

Mysql高版本用了boost和cmake(MySQL 5.5版本以后,使用CMake编译工具)参数是这样和./configure对应的,参见链接,http://www.linuxeye.com/Linux/MySQL-cmake-options.html,-DWITH_SERVER=0,总之,这个cmake有些参数不支持和configure还不太一样,这个DWITH_SERVER 是臆想出来的:


2、--enable-thread-safe-client
让libmysqlclient中的例程具有线程安全性,要编写多线程的mysql客户端程序时就少不了了,这要求本地拥有多线程库。
3、--prefix 指定安装目录
启动configure脚本:
#mkdir /usr/local/mysql
#./configure --without-server --enable-thread-safe-client --prefix=/usr/local/mysql
大概6分钟后,configure脚本生成好所有的Makefile后退出。
当前目录下执行make进行编译:
#make
这个过程除了时间长一点以外没有别的,大概一个钟头后make完成编译任务。
安装:
#make install
这个过程也比较快,约两三分钟。
安装完成以后,mysql.h文件在 /usr/local/mysql/include/mysql/目录中(这里include目录中还有一个mysql子目录)。
以lib开头的库文件在/usr/local/mysql/lib/mysql/目录中(与mysql.h的情况一样,这里lib目录中还有一个mysql子目录)。
此时再来链接测试程序的目标文件:
#gcc -o mysql-test mysql-test.o -L/usr/lib/mysql -lmysqlclient
OK,一切正常,链接成功。
执行一下:
#./mysql-test
系统这时又发出错误提示:Loading libmysqlclient.so.15 Error; No Such File!
将/usr/local/mysql/lib/mysql/目录中的libmysqlclient.so.15.0.0复制到/usr/lib/目录下:
#cp /usr/local/mysql/lib/mysql/libmysqlclient.so.15.0.0 /usr/lib/libmysqlclient.so.15
#./mysql-test
屏幕打印出:mysql_init() successed.后就不动了.
约莫90秒后打印libmysqlclient的提示信息:Can not connect to mysql server(110)
这时在windows xp的msdos控制台键入:
>netstat -na
看到了系统已经打开了3306端口,即mysql server确实在运行。
最后注意到xp中启用了系统防火墙, 禁用系统防火墙后回到linux的ppty键入:
#./mysql-test
这时,黎明的曙光终于出现了,提示信息告诉我,它已经连接上了XP中的mysql server。

以上主要参考:http://blog.chinaunix.net/uid-26466663-id-3358199.html

mysql中的两个包 libmysqlclient-devel和mysql-devel 有什么区别啊,为什么安装了mysql-devel就不能安装 libmysqlclient-devel了?
MySQL服务器。除非你只是想要与运行在其他机器上MySQL服务器连接,否则你将需要它。
背景:刚解决前面的svn client版本太新问题http://jackxiang.com/post/8476/,又出现一新的问题,如下.

is not known to exist in the repository and is not part of the commit,yet its child:
  在把写好的代码提交到svn上面时,遇到了一个错误如下:
svn: Commit failed (details follow):
svn: 'D:\eclipse\StatusInquiry\src\com\cnjmwl\scm\policy' is not under version control and is not part of the commit, yet its child 'D:\eclipse\StatusInquiry\src\com\cnjmwl\scm\policy\policyActivity.java' is part of the commit
        仔细看错误的原文,翻译成中文大致的意思就是要提交的代码不在版本控制之下,并且不是提交的一部分,他的子文件也不是提交的一部分,我自个儿琢磨着就是要先提交父文件夹,然后再提交父文件夹的子文件,然后我先提交了父文件夹,然后提交其中的子文件,最后把问题解决了。。
        PS:如果上面的方法不行的话,试试看吧要提交的文件先备份一下,然后把源文件删除了,然后再拷回来,再提交。。我这样屡试不爽,能解决问题的。。      

摘自:http://blog.csdn.net/lufeng20/article/details/7641093
背景:一外包说是svn没权限,一截图根据里面的提示,感觉是svn client版本太新。

因为SVN客户端版本为1.8以上,太新,跟服务器端不匹配。请卸载,安装1.7版,并重启。
请在新的目录中重新checkout代码,原workspace目录请废弃,不要在其中再执行SVN操作。


来自:http://blog.sina.com.cn/s/blog_4c81e6230101e18a.html
背景:Nginx代理到tomcat时出现504 Gateway Time-out。

如果是设置IP直接proxy则设置在nginx的http{ 里面即可,不用设置在server里。

摘自:http://www.ha97.com/5194.html

超时有问题不光是超时,更有可能是被反向代理的出现了500的内部服务器错误:
背景:对于java和tomcat结合的程序,其实还是一个服务器,可能会有各种线程啥的如上传分片文件时会合并,这种对于PHP来讲是个问题,但是对于java来讲是能实现的边上传边合并的,也是非常好的,但是呢,这种办法如果写得不够好,很可能出现一些问题,假死、僵死,还不如用PHP写个上传,后台用那个守护进程进行合并来得更稳定。
阅读全文
背景:在一个Java分片上传时发现其CPU idle为98.5,以为值越高越危险,于是查了下,表明"System Idle Process" 中的 idle 是“空闲”得很。
sar -n DEV查看网卡网络流量:


cpu ide 是 cpu 的一个命令,cpu 见到这个命令,就停止工作一个指令。变相的可以降低功耗和休息一下。
对于系统来说,如果调度程序没有可以让 cpu 执行的任务,那么就自动发送 ide 命令让 cpu 休眠一个指令。
估计你的程度运行出现了冲突,导致大部分时间都在等待。

在CPU空闲的时候,发出一个IDLE命令,使CPU挂起(暂时停止工作),可有效的降低CPU内核的温度,在操作系统服务里面,都没有禁止它的选项;默认它是占用除了当前应用程序所分配的处理器(CPU)百分比之外的所有占用率;一旦应用程序发出请求,处理器会立刻响应的。在这个进程里出现的CPU占用数值并不是真正的占用而是体现的CPU的空闲率,也就说这个数值越大CPU的空闲率就越高,反之就是CPU的占用率越高。


当“System Idle Process”进程占用资源为2%时,说明机器目前只有2%的资源是空闲的,即机器可能感染了病毒或被其他程序占用了98%的资源。换句话说,“System Idle Process”进程占用资源占用资源越大则系统可用资源越多,其字面意思是“系统空闲进程”。


用sar进行CPU利用率的分析
[root@wh-appserver413 its]# sar -u 2 10
Linux 2.6.18-92.el5 (wh-appserver413)   01/29/2016

10:53:17 AM       CPU     %user     %nice   %system   %iowait    %steal     %idle
10:53:19 AM       all      0.06      0.00      1.00      0.00      0.00     98.94
10:53:21 AM       all      0.56      0.00      0.56      0.25      0.00     98.62
10:53:23 AM       all      0.00      0.00      0.06      0.62      0.00     99.31
10:53:25 AM       all      0.06      0.00      0.25      2.87      0.00     96.81      

我的个人博客:
Linux 4.4.0-1.el7.elrepo.x86_64 (iZ25dcp92ckZ)  2016年01月29日  _x86_64_        (1 CPU)
10时54分45秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
10时54分47秒     all      0.00      0.00      0.00      0.00      0.00    100.00
10时54分49秒     all      0.00      0.00      0.00      0.50      0.50     99.00
10时54分51秒     all      0.50      0.00      0.00      0.00      0.00     99.50
平均时间:     all      0.17      0.00      0.00      0.17      0.17     99.50

%idle:CPU空闲时间百分比。
        在所有的显示中,我们应主要注意%iowait和%idle,%iowait的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。

参考:http://blog.itpub.net/8554499/viewspace-580300/
背景:作为swoole顾问,当然需要对新版本发布作下相关的描述,一直想rango推rpc,此次暂搁置了,底层实现对RPC性能提升没有多大意义,swoole应该专注php的弱点,而不是把所有的东西都封装到底层,成为大杂会。觉得能用PHP实现的不再实现,定位上只是对PHP功能的增强。总之,1.8.0 是一个里程碑的版本。

最好要在PHP版本V5.4以上运行,对各种DB和缓存及服务器客户端的异步支持以高效利用IO:
增加原生异步 MySQL 客户端
增加原生异步 Redis 客户端,基于 Redis 官方提供的 hiredis 库
增加原生异步 Http 客户端
增加原生异步 WebSocket 客户端支持
——————————————————————————————————————————
....各种优化及bug修改相关特性融入内核....
重构底层 swClient,异步 TCP 客户端实现放到 swoole 内核中
增加 swoole_client->reuse 属性,SWOOLE_KEEP 长连接模式下标识是否为复用的连接
修改Bug:重构定时器,修复after、tick定时器偶然出现的core dump的问题
新加特性:异步Redis客户端
预告一下:1.8.1 版本,即将增加 命名空间的类别名
计划搁置:RPC暂时没有开发计划,因为这个东西PHP代码就能实现,没必要底层去支持。
——————————————————————————————————————————
Swoole-1.8.0版本增加了对异步Redis客户端的支持,基于redis官方提供的hiredis库实现。Swoole提供了__call魔术方法,来映射绝大部分Redis指令。

编译安装hiredis

使用Redis客户端,需要安装hiredis库。下载hiredis源码后,执行

make -j
sudo make install
sudo ldconfig
hiredis下载地址:https://github.com/redis/hiredis/releases
启用异步Redis客户端

编译swoole是,在configure指令中加入--enable-async-redis

./configure --enable-async-redis
make clean
make -j
sudo make install

来自:http://wiki.swoole.com/wiki/page/521.html
更多:http://www.oschina.net/news/70266/swoole-1-8-0
背景:阿里上买了一小vps,空间本来就小,居然发现一个大文件,442M    /var/log/cron,于是想把它干掉,以减少占用的磁盘空间。
我的vps是一个文件:
echo "" >  /var/log/cron
du -sh /var/log/cron
而有的那个机器是一个目录,目录怎么办,一样删除,如下:
最近刚好有一个小任务 - 由于产品产生的Log很多,而且增长很快,所以需要用脚本(Bash scripts)删除过期的Log文件 。

使用Linux下的Cron Job可以很好的解决这个问题。

   什么是Cron Job?
   建立Cron Job需要用到命令crontab,维基百科定义: crontab 命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令 。
查阅了一些资料(发现技术查询还是要用Google)参考后,期间也遇到很多问题,通过摸索和学习,实现步骤如下:

一. 写一个Bash shell script,作用: 检索日志文件夹下的所有log文件,查询每个文件的日期,如果日期过期,则删除这个log文件   


二. 新建一个Cron Job,周期性的执行上面的脚本
命令:


注意:
1. 这里我用的是 sudo crontab -e ,不是crontab -e,这样做是使用root的crontab,可以使用sudo,获取root某些权限。
2. Cron Job的格式如下:


具体可参见http://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/,Cron Job的用法讲解很详细。

3. 如何通过日志查看Cron Job的执行情况?

" >> /home/user/cron_job.log 2>&1 "的作用是可以方便的将Cron Job执行情况的日志记录到自己指定的Log文件中,方便查看Job执行情况。另外还可通过下面这个命令,查看Job执行的一些其他信息,感觉主要还是看自己指定的日志文件,如果执行出错,如Permisson Denied错误,在里面记录的很清楚。


三. 小结

经过以上的步骤,就可以很轻松的在Linux中建立起一个Cron Job,用于周期性的做某些事情,如删Log等。

四. 赔偿是参考资料和摘自:
原文  http://www.cnblogs.com/KevinSong/p/3816981.html
安装Nginx:

wget --no-check-certificate http://ftp.exim.llorien.org/pcre/pcre-8.39.tar.bz2
wget --no-check-certificate http://nginx.org/download/nginx-1.11.6.tar.gz
tar xf pcre-8.39.tar.bz2
tar xf nginx-1.11.6.tar.gz
cd nginx-1.11.6/

vi auto/lib/openssl/conf

# 将下面的内容修改
            CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include"
            CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h"
            CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a"
            CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a"
            CORE_LIBS="$CORE_LIBS $NGX_LIBDL"
# 为
            CORE_INCS="$CORE_INCS $OPENSSL/include"
            CORE_DEPS="$CORE_DEPS $OPENSSL/ssl.h"
            CORE_LIBS="$CORE_LIBS /usr/local/lib/libssl.a"
            CORE_LIBS="$CORE_LIBS /usr/local/lib/libcrypto.a"
            CORE_LIBS="$CORE_LIBS $NGX_LIBDL"
pkg install google-perftools
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_gzip_static_module --with-http_v2_module --with-http_realip_module --with-google_perftools_module --with-http_stub_status_module --with-http_sub_module --with-http_flv_module --with-http_ssl_module --with-openssl=/usr/local/include/openssl --with-pcre=../pcre-8.39 --with-pcre-jit            
gmake -j `sysctl hw.ncpu | wc -w`
gmake install -j `sysctl hw.ncpu | wc -w`

=========================From:https://my.oschina.net/ericliu77/blog/801539=================================




php5.6.17是最后一个php5版本,后来就到php7了。

FreeBSD 10系统编译安装Nginx, PHP, MariaDB环境
可惜的是 FreeBSD 10 用 Clang 替代 gcc 为默认编译器,这让用惯了 gcc 的同学们很不爽:
http://www.php1.cn/article/62718.html

整合freeBSD下nginx+php+mysql安装方案(ports安装):
http://blog.csdn.net/shaobingj126/article/details/5620702

freebsd+nginx+php+mysql+zend+phpmyadmin+系统优化+防止ddos +傻瓜式ports安装法:
http://blog.163.com/023_dns/blog/static/11872736620091029306126/
http://blog.163.com/dyc_888@126/blog/static/100443351201021910057781/

FreeBSD下NGINX 1.8+PHP5.6 +PERL 5.20 +Mysql 5.6+FTP 环境搭建与优化:
http://www.douban.com/note/524153021/


在FreeBSD上配置Apache+SSL:
http://wenku.baidu.com/link?url=Wp51oiSGtk7yQF2x_fqI7g9vDWylT218Rs2q2rRWs-WJJwSbyMepcmclmuKCu9QZ4UVkiXCAkemZfj4CIQNT7OU9L3uvEuQgeNngeqfJ78e


This post will describe how to install and configure Apache, MySQL, PHP and phpMyAdmin on FreeBSD for basic local web development:
https://www.iceflatline.com/2011/11/how-to-install-apache-mysql-php-and-phpmyadmin-on-freebsd/


FreeBSD下Nginx配置ssl-自建CA给网站签发SSL证书 [原创]:
http://www.92csz.com/42/494.html

FreeBSD下防火墙设置:
http://blog.163.com/caizhongyi@126/blog/static/3391683920102594249139/

X3.2针对PHP7的兼容版本-测试ing:
https://github.com/branchzero/discuz-x32-php7/releases


FreeBSD+Rsync文件同步 :
http://blog.chinaunix.net/uid-20496698-id-1664047.html
http://blog.chinaunix.net/uid-20496698-id-1664047.html

How to Install Official PHP 7 release on FreeBSD 10.2:
http://rasyid.net/2015/12/05/install-official-php-7-release-on-freebsd-10-2/
http://rasyid.net/2015/01/23/how-to-install-phpng-aka-php7-on-freebsd-10/

内容管理框架 ThinkCMFX 2.0.0 发布,支持 PHP7:
http://www.oschina.net/news/68813/thinkcmfx-2-0-0
http://demo.thinkcmf.com/
背景:一个队列client的服务器上,有一天运维网络调整后,发现其访问队列状态出现下面的提示:

根本原因是队列一直在跑,网络调整时出现有些请求因调整没有及时返回,网络可能路很差了,一堆的timewait导致client机上的fd耗尽引发上面的问题,
可以用netstat看下TIMEWAIT情况,发现一大堆的TIMEWAIT,如下图:阅读全文
核心操作:
如何从grub提示符返回grub菜单?执行normal命令使我回到grub菜单。
ubuntu 直接在开启时,(不要和我说vi,进不了系统)修改grub修改后怎么保存?此时不能保存,只能ctrl+x或F10运行,无误引导启动能进入系统后,再用软件编辑修改相关配置文件,保存。

grub相关命令:https://wenku.baidu.com/view/452dbe11f18583d04964591f.html
背景:阿里去的Centos是到7.0,而内核是3.10.0,而centos7.1.1内核是4.1.1,Linus说是新的内核性能上应该更强一些,实践证明升级后的感觉的确要强一些,新内核真不错。
最近,那个工控机出现升级后,黑屏,乃至进入不了系统,其Grub位置还不是在/etc/grub2.cfg,而是在 /boot/efi/EFI/centos/grub.cfg,怎么办
1)改Bios:BIos里设置为:UEFI CentOS7那个。
2)修改:/boot/efi/EFI/centos/grub.cfg在100行下面,也就是linuxefi /vmlinuz-4.16.1-1.el7.elrepo.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=en_US.UTF-8 下面加一行,并将成功的那个img给拷贝过去(我用的nc),注意权限:chmod 600 /boot/initramfs-4.16.1-1.el7.elrepo.x86_64.img  chown root:root /boot/initramfs-4.16.1-1.el7.elrepo.x86_64.img:
  initrdefi /initramfs-4.16.1-1.el7.elrepo.x86_64.img
步骤:


CentOS 7.4默认内核是:3.10.0,升级到内核是升级到4.12,我的是4.15.9,步骤如下,下面这个是在我的家里的小机器安装的,不是阿里云:
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available  #主要看有无 kernel-ml-headers编译网卡之用到。
yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml kernel-ml-headers -y
Installing:
kernel-ml                 x86_64         5.17.0-1.el7.elrepo            elrepo-kernel          56 M
kernel-ml-devel           x86_64         5.17.0-1.el7.elrepo            elrepo-kernel          14 M
kernel-ml-headers         x86_64         5.17.0-1.el7.elrepo            elrepo-kernel         1.6 M


https://jackxiang.com/post/11261/
yum --enablerepo=elrepo-kernel install  kernel-ml-devel kernel-ml


cat /etc/grub2.cfg |grep menuentry
if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
  menuentry_id_option=""
export menuentry_id_option
menuentry 'CentOS Linux (4.20.3-1.el7.elrepo.x86_64) 7 (Core)' --class centos --class gnu-linux

cat /etc/grub2.cfg |grep menuentry
cat /boot/efi/EFI/centos/grub.cfg |grep menuentry
grub2-set-default 'CentOS Linux (4.16.1-1.el7.elrepo.x86_64) 7 (Core)'
grub2-set-default 'CentOS Linux (4.16.9-1.el7.elrepo.x86_64) 7 (Core)'
grub2-set-default 'CentOS Linux (4.19.0-1.el7.elrepo.x86_64) 7 (Core)'
grub2-set-default 'CentOS Linux (5.7.10-1.el7.elrepo.x86_64) 7 (Core)'
if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
  menuentry_id_option=""
export menuentry_id_option
menuentry 'CentOS Linux (4.15.9-1.el7.elrepo.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-693.el7.x86_64-advanced-0f2e2aec-2180-46ea-bb6a-9c39d7819d60' {
设置最新版本内核为默认启动:

此时,查看默认启动的系统版本grub2-editenv list:
[root@localhost tmp]# grub2-set-default 'CentOS Linux (4.15.9-1.el7.elrepo.x86_64) 7 (Core)'
[root@localhost tmp]# grub2-editenv list
saved_entry=CentOS Linux (4.15.9-1.el7.elrepo.x86_64) 7 (Core)

grub2-editenv list
saved_entry=CentOS Linux (4.20.3-1.el7.elrepo.x86_64) 7 (Core)

[实践OK]Centos7修改grub启动菜单等待时间:
https://jackxiang.com/post/10238/
reboot,重启之后再次查看 uname -a
uname -a  
Linux localhost.localdomain 4.15.9-1.el7.elrepo.x86_64 #1 SMP Sun Mar 11 16:19:17 EDT 2018 x86_64 x86_64 x86_64 GNU/Linux
关于启动时加载哪个内核的更多设置参考:http://blog.csdn.net/wuhualong1314/article/details/79542904
升级指定旧版本的回退并指定版本的方法:
http://elrepo.org/linux/kernel/el7/x86_64/RPMS/
将rpm包下载上传到服务器上,使用下面的命令安装即可@http://mirror.rc.usf.edu/compute_lock/elrepo/kernel/el7/x86_64/RPMS/:
# yum -y install kernel-ml-devel-4.12.4-1.el7.elrepo.x86_64.rpm
# yum -y install kernel-ml-4.12.4-1.el7.elrepo.x86_64.rpm

yum localinstall kernel-ml-4.12.4-1.el7.elrepo.x86_64.rpm
yum localinstall kernel-ml-devel-4.12.4-1.el7.elrepo.x86_64.rpm
cat /boot/grub2/grub.cfg |grep menuentry
grub2-set-default 'CentOS Linux (4.12.4-1.el7.elrepo.x86_64) 7 (Core)'
Linux localhost.localdomain 4.12.4-1.el7.elrepo.x86_64 #1 SMP Thu Jul 27 20:03:28 EDT 2017 x86_64 x86_64 x86_64 GNU/Linux

删除没有用的内核:来自:https://blog.51cto.com/u_15079076/4296146,两点:一是开机时误按键盘出现问题是新的内核无法联网。(我估计是新内核与硬件网卡不兼容,不如旧的,于是得删除新的内核和太旧的内核 ,只留下一个就可以了。)
yum remove $(rpm -qa|grep kernel|grep -v $(uname -r))
==============================================================================================================================
Package                        架构                  版本                                源                             大小
==============================================================================================================================
正在删除:
kernel                         x86_64                3.10.0-693.21.1.el7                 @updates                       60 M
kernel                         x86_64                3.10.0-862.2.3.el7                  @updates                       62 M
kernel                         x86_64                3.10.0-862.3.2.el7                  @updates                       62 M
kernel                         x86_64                3.10.0-862.6.3.el7                  @updates                       62 M
kernel-ml                      x86_64                4.16.7-1.el7.elrepo                 @elrepo-kernel                199 M
kernel-ml                      x86_64                4.16.9-1.el7.elrepo                 @elrepo-kernel                200 M
kernel-ml                      x86_64                6.6.11-1.el7.elrepo                 @elrepo-kernel                345 M
kernel-ml-devel                x86_64                4.16.7-1.el7.elrepo                 @elrepo-kernel                 45 M
kernel-ml-devel                x86_64                4.16.9-1.el7.elrepo                 @elrepo-kernel                 45 M
kernel-ml-devel                x86_64                6.6.11-1.el7.elrepo                 @elrepo-kernel                 62 M

事务概要
==============================================================================================================================
移除  10 软件包

这个是用阿里云论坛里手工做好的rpm包进行升级:
https://bbs.aliyun.com/read/249016.html?spm=5176.bbsr250035.0.0.ATHIBV

用二进制包升级的下载并成功升级的地址:http://down.7qy.com/Hot-kerne/rpm/hot-centos-kernel-4.x-up-1.2.0.bin
======================================================================
======================================================================
*        热点 CentOS 6/7 内核升级程序  Ver.1.2.0  by blog.7QY.Com       *
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
*              安装完成后需要重新启动系统才能使用新内核                 *
* 按Ctrl+C键退出本安装程序,然后输入shutdown -r now 或 reboot 重启系统  *
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
*                Tips: Select < 1 > to 升级CENTOS 6.X内核               *
*                Tips: Select < 2 > to 升级CENTOS 7.X内核               *
=========================================================================

Please input ( 1 or 2 ) to 热点 CentOs 6/7 内核升级程序
Select: (1) 升级CENTOS 6.X内核 | (2) 升级CENTOS 7.X内核
(1/2): 2

开始升级CENTOS 7.X内核...
准备中...                          ################################# [100%]

......


警告:RPM 数据库已被非 yum 程序修改。
  正在安装    : kernel-ml-4.4.0-1.el7.elrepo.x86_64                                                                      1/2
  正在安装    : kernel-ml-devel-4.4.0-1.el7.elrepo.x86_64                                                              2/2
  验证中      : kernel-ml-devel-4.4.0-1.el7.elrepo.x86_64                                                               1/2
  验证中      : kernel-ml-4.4.0-1.el7.elrepo.x86_64                                                                       2/2

已安装:
  kernel-ml.x86_64 0:4.4.0-1.el7.elrepo                      kernel-ml-devel.x86_64 0:4.4.0-1.el7.elrepo                    

完毕!
会立即重新启动(有可能不是,是挂载新内核,因为后面发现内存还剩下37M,分页的那个进程占用CPU高达95%,后来把PHP-fpm重新调小一点重新启动一下php-fpm就好了,但一会儿CPU又上来了:http://jackxiang.com/post/8438/。),后一会儿就连接上了,发现内核成功升级,数据也正常(我没有挂载,就是阿里云默认的20G),新内核是相当的高效,通过ssh就能感觉得到。
[root@iZ25dcp92ckZ ~]# uname -rasp
Linux iZ25dcp92ckZ 4.4.0-1.el7.elrepo.x86_64 #1 SMP Sun Jan 10 21:17:16 EST 2016 x86_64 x86_64 x86_64 GNU/Linux
http://www.91cto.com.cn/detail/udepnxs/


一)FreeBSD前提是能连上网,配置成功的实践步骤在:https://jackxiang.com/post/8518/
二)后就是安装Lamp架构了,如下pkg,port目前好像用的人较少,先使这个吧,特别是Raspberry这种cpu相对太差,自己编译太麻烦了也更耗时,就别在上面整port了,直接pkg安装即可,也解决了依赖问题:
まず静的リンクしたコマンドでpkg自体をインストール
# fetch http://www.peach.ne.jp/archives/rpi/pkg-static
# chmod 755 pkg-static
# ./pkg-static add http://www.peach.ne.jp/archives/rpi/ports/pkg.txz

デフォルトのパッケージを無効化
# mkdir -p /usr/local/etc/pkg/repos
# echo "FreeBSD: { enabled: no }" > /usr/local/etc/pkg/repos/FreeBSD.conf

独自パッケージリポジトリを追加
# fetch http://www.peach.ne.jp/archives/rpi/rpi.conf
# mv rpi.conf /usr/local/etc/pkg/repos

リポジトリカタログを最新状態に更新
pkg update
pkg install screen
freebsd-update fetch
freebsd-update install
pkg install php56 mod_php56 php56-mysql php56-mysqli
如何在 FreeBSD 10.2 上安装 Nginx 作为 Apache 的反向代理:http://www.linuxidc.com/Linux/2016-01/127139.htm
FreeBSD 10 + Nginx 1.4.4 + PHP 5.5.9 + MySQL 5.6.15:     http://my.oschina.net/neochen/blog/198979

三) FreeBSD的pkg使用方法 :
http://blog.chinaunix.net/uid-20332519-id-4063284.html
====================================================================
在 FreeBSD 10.0 上安装和配置 Nginx+PHP+APC+MySQL:
http://www.vpsee.com/2014/04/install-nginx-php-apc-mysql-on-freebsd-10-0/
安装软件:
pkg search php

FreeBSD 11-CURRENT on Raspberry Pi Apache 2.4/MySQL 5.6/PHP 5.6:
http://www.bigsea.com.cn/archives/1393/

如何在树莓派 2B 上安装 FreeBSD:
http://www.linuxidc.com/Linux/2015-12/126724.htm

FreeBSD 网络配置:
https://wiki.freebsdchina.org/faq/networking


修改raspberry pi上安装的freebsd可用内存大小:
http://blog.sina.com.cn/s/blog_a0aacb430101mj69.html
分页: 44/271 第一页 上页 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 下页 最后页 [ 显示模式: 摘要 | 列表 ]