phprsync
Ⅰ 为什么我用rsync从linux同步到windows的时候一直有问题
location / { root /home/www/web; index index.html portal.php index.htm index.php;rewrite ^([^\.]*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last;rewrite ^([^\.]*)/article-([0-9.
Ⅱ php-rsync 什么用处
rsync 是同步文件的linux命令,用于备份数据什么的,你可以找下
Ⅲ 怎样在配置文件rsyncd.conf中添加ip
rsyncd.conf是rsync daemon的配置文件。如何为rsyncd.conf增加一份mole呢
一份简单的配置
[browser]
uid = odin
gid = odin
path = /search/nginx/html/index_protector/resources/data/conf
hosts allow = 10.0.0.0/8 192.168.0.0/16
1
2
3
4
5
1
2
3
4
5
参数说明:
1. browser:mole名称,对方使用rsync时需要指定
2. uid, gid: 决定了收到文件的用户和组
3. path: 当前mole对应的目录
4. hosts allow:允许的ip列表。上例中,我们允许了10开头的ip段和192.168开头的ip段通过rsync访问我们的机器。
操作一下
假设开启rsync daemon的机器为10.136.31.210(机器A)。我们在client机器(机器B)执行:
rsync -avzP 10.136.31.210::browser/white ./
1
1
即可将机器A上/search/nginx/html/index_protector/resources/data/conf目录下的white文件download至机器B。
执行:
rsync -avzP q.php 10.136.31.210::browser
1
1
即可将B机器上的q.PHP upload至机器A的/search/nginx/html/index_protector/resources/data/conf目录,其权限为用户和组分别为odin, odin。
-rw-r--r-- 1 odin odin 60 7月 27 15:02 q.php
1
1
只读/只写
如果只想给client开放单一的download(读)/upload(写)权限,可以为mole加如下配置
#只读
read only = true
1
2
1
2
#只写
write only = true
1
2
1
2
验证用户名密码
默认情况下,client端不需要使用用户名密码。如果希望client使用特定的用户名,密码,可以增加类似下面的配置:
auth users = odin
secrets file = /etc/rsyncd.passwd
1
2
1
2
参数说明:
1. auth users:用户名列表,多用户名由空格或逗号分隔。只有这些用户才允许连接该mole。这里的用户和系统用户没有任何关系。用户的名和密码以明文方式存放在”secrets file”选项指定的文件中。
2. secrets file:密码文件,文件每行包含一个username:passwd对,passwd不要超过8个字符。文件的权限一定要是600,否则客户端将不能连接服务器。一份文件示例:
odin:123
search:456
1
2
1
2
加入上述配置后,client必须指定odin用户并输入密码才可以进行读写操作。
rsync -avzP [email protected]::browser/white ./
1
1
client端使用odin用户下载文件,系统会要求输入密码,正确后才可下载white文件
Ⅳ rsync 修改文件没有同步
在原文件上修改,快盘文件是不可能同步的,只有快盘虚拟盘里修改,快盘文件才可以同步,
Ⅳ PHPStorm同步多个服务器
PHPStorm没这个能力, 但你毕竟是个程序员
两个方案:
PHPStorm同步到单台服务器, 然后该服务器用inotify + rsync 同步到其他服务器.
phpstorm -> 中间服务器 -> (目标服务器1, 2, ,3, 4, 5)
PHPstorm设置FileWatch 然后触发本地脚本自行上传到多个服务器. 比如用PHP写个ftp上传脚本, 参数是文件路径.
Ⅵ 大家php mysql多的话是用什么备份工具的
下面提供两种方法,仅供研究使用。
第1种方法:
复制代码 代码如下:
<?php
$host="localhost";
$user="root";
$password="";
$dbname="dbname";
mysql_connect($host,$user,$password);
mysql_select_db($dbname);
$mysql= "set names utf8;";
mysql_query($mysql);
$q1=mysql_query("show tables");
while($t=mysql_fetch_array($q1)){
$table=$t[0];
$q2=mysql_query("show create table `$table`");$sql=mysql_fetch_array($q2);
$mysql.=$sql['Create Table'].";\n";
$q3=mysql_query("select * from `$table`");while($data=mysql_fetch_assoc($q3)){
$keys=array_keys($data);
$keys=array_map('addslashes',$keys);
$keys=join('`,`',$keys);
$keys="`".$keys."`";
$vals=array_values($data);
$vals=array_map('addslashes',$vals);
$vals=join("','",$vals);
$vals="'".$vals."'";
$mysql.="insert into `$table`($keys) values($vals);\n";}
$mysql.="\n";
}
$filename=$dbname.date('Ymj').".sql";
$fp = fopen($filename,'w');
fputs($fp,$mysql);
fclose($fp);
echo "数据备份成功,生成备份文件".$filename;?>
第2种方法:
复制代码 代码如下:
<?php
$host="localhost";
$user="root";
$password="";
$dbname="dbname";
backup_tables($host,$user,$password,$dbname);/* backup the db OR just a table */
function backup_tables($host,$user,$pass,$name,$tables = '*'){
$link = mysql_connect($host,$user,$pass);mysql_select_db($name,$link);
//get all of the tables
if($tables == '*')
{
$tables = array();
$result = mysql_query('SHOW TABLES');
while($row = mysql_fetch_row($result))
{
$tables[] = $row[0];
}
}
else
{
$tables = is_array($tables) ? $tables : explode(',',$tables);}
$return = '';
//cycle through
foreach($tables as $table)
{
$result = mysql_query('SELECT * FROM '.$table);$num_fields = mysql_num_fields($result);
$return.= 'DROP TABLE '.$table.';';
$row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table));$return.= "\n\n".$row2[1].";\n\n";
for ($i = 0; $i < $num_fields; $i++)
{
while($row = mysql_fetch_row($result))
{
$return.= 'INSERT INTO '.$table.' VALUES(';for($j=0; $j<$num_fields; $j++)
{
$row[$j] = addslashes($row[$j]);
$row[$j] = ereg_replace("\n","\\n",$row[$j]);if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
if ($j<($num_fields-1)) { $return.= ','; }
}
$return.= ");\n";
}
}
$return.="\n\n\n";
}
//save file
$handle = fopen('db-backup-'.time().'-'.(md5(implode(',',$tables))).'.sql','w+');fwrite($handle,$return);
fclose($handle);
}
?>
Ⅶ php内网向外网发送图片,要求在内网的服务器上完成
映射端口后,写一个策略,只允许XX.XX.XX.XX地址访问。
还有一个办法, 内网PHP页面可以完成 (内网使用FTP方式传输到外网服务器上,FTP和操作数据库都可以在内网完成,但必须要配置好权限),PHP操作数据库要注意漏洞和优化。
Ⅷ php网站运维主要做什么
运维工程师干些什么
总结两句话
1、 保障业务长期稳定运行(如网站服务器、游戏服务器等等)。
2、 保障数据安全可靠(如用户名密码、游戏数据、博客文章、交易数据等等)。
由这两句话推演运维工程师要学些什么
一、保障业务长期稳定运行
出一点点差错,用户就要投诉了。
1、业务跑在什么上面?
网站服务器一般是apache,nginx,tomcat等。但是真正跑通流程还需要Mysql数据库来存储用户密码及其它。很多程序都要php的解析,所以LNMP、LAMP(即nginx、apache、mysql、php)环境部署是必须掌握的技能。
2、业务出了问题怎么及时知道?
这就需要监控软件来邮件或短信来通知你,常用的有zabbix,nagios等。报警发邮件,也得一个邮件程序呀,sendmail或postfix。
3、在家里收到报警,但服务器是内网IP,怎么也得解决问题吧?
在公司搭建openvpn或pptp或openswan,在家里通过VPN拨入内网,24小时解决问题…唉,半夜爬起来解决问题也没工资。
二、保障数据安全可靠
出一点点差错,领导要找你喝茶了。
1、有时需要手动改数据库内容?
所以要会基本的Mysql数据库增删查改命令。
2、万一数据库服务器硬件坏了怎么办?
需要有个备库以备不时之需,所以需要Mysql主从复制。
3、 数据库要还原怎么办?
所以需要在crond中定期全备Mysql数据,以便还原使用。如果要还原到指定时间点,还要学会Mysql增量备份与恢复。
4、 如果是用户上传的图片或文件服务器坏了怎么办?
定时备份可能还不够,需要使用rsync加inotify来实时备份。以便任一时刻主服务器坏掉,也能保障所有图片有备份可以用来恢复。
5、小心黑客,要增加服务器安全性?
ssh轻易不能让外人访问,那么就设置只允许公司的IP或跳板机IP访问,这些都通过iptables来控制。
三、大性能
小公司总有一天会牛逼起来的,实在牛不起来咱也可以跳到大公司。
1、越来越多的用户来访问我们的网站,一台web服务器抗不住了怎么办?
那就需要多台web服务器来负担,但多台服务器之间怎么进行负载均衡呢,这就需要用到nginx反向代理或LVS+keepalived或haproxy+heartbeat了。
2、用户注册发表的文章与评论太多,一台数据库抗不住了怎么办?
数据库压力分为读和写,如果写抗不住,需要进行分表分库到多个服务器上。如果是读压力不够了,可以使用mysql-proxy读写分离,来分担读的压力。更简单方便的方法,把数据库里的内容放到内存上,这就用上memcache或redis了。
3、N多用户上传下载文件,磁盘抗不住了怎么办?
把多块磁盘做成raid,或者使用分布式存储文件系统如MFS,GlusterFS来提高磁盘的读写能力。
4、网站上好多图片,总有用户反应网站加载太慢,怎么办?
这时可以把网站上的图片通过squid或varnish缓存到网站前端,尽可能的增加访问速度,当然,最好是购买商业的CDN加速。
5、运营商是个大难题,他们之间的带宽好像很小,联通IP访问我电信网站怎么就这么慢呢?
这时可以使用bind自建一个DNS服务器,把网站的DNS记录指向自建DNS服务器上,配置好解析规则,以后联通IP解析到联通网站上,电信IP解析到电信网站上,体验就会好很多啦。
四、自动化
终极目标:跑死机器,闲死人。
1、 公司新买100台服务器,公司竟然就1个移动光驱,这装系统得到什么时候?
使用kickstart或cobbler来网络远程自动安装系统吧。
2、 每次装完机要优化很多内容,什么文件描述符、端口、软件安装啊,手动操作不累死去?
赶紧学会shell,将解放非常多的工作量。
3、系统装完后登陆要输入密码,这么多台啊?
使用expect吧,自动读取提示来输入密码,并执行命令。
4、要批量把新代码发布到线上服务器,怎么办?
使用saltstack或puppet或ansible吧,绝对爽歪歪。
五、其他
1、搭整套测试环境需要5台服务器,但公司穷的只有一台空闲服务器?
学会xen或kvm或docker吧,虚拟出多台服务器,就能解决资源问题了。特别是docker,强烈推荐,以后某个研发人员让你部署一套新环境,分分钟帮他解决。
2、研发人员的代码控制,权限控制,总要运维人员管呀?
svn或git,这个是肯定要有的。
结尾:
现在我们在回过头来思考,运维工程师平时干些啥呢?
1、 随时解决报警故障。
2、 业务程序更新。
3、 编写一些脚本,监控或完成其他可自动完成功能。
4、 运维架构完善,部署一些用起来更方便更可靠或性能更好的开源工具以及制定运维流程规范。
5、 打杂,如调交换机,装系统,部署新环境等。
Ⅸ php图片可以等比例的缩放吗
可以。
等比例缩放的方法是:
1、载入选区--自由变换。如下图:
2、按住shift+alt键,使用鼠标调整大小,这种情况下,选区会按照等比例的方法进行缩放的。
Ⅹ php 如何将上传的图片按比例缩放并存在服务器里
//接收上传的文件
foreach($_FILESas$file)
{
$tempFileName=$file['tmp_name'];//上传文件的临时路径
}
/把图片移动到服务器制定路径
$img='/var/www/html/picture/test.jpg';
move_uploaded_file($tempFileName,$img);
//缩放比例
$ratio=0.5;
//修改尺寸至于各个函数是干嘛的,google一下吧
$imagedata=getimagesize($img);
$olgWidth=$imagedata[0];
$oldHeight=$imagedata[1];
$newWidth=$olgWidth*$ratio;
$newHeight=$oldHeight*$ratio;
$image=imagecreatefromjpeg($img);
$thumb=imagecreatetruecolor($newWidth,$newHeight);
imageresized($thumb,$image,0,0,0,0,$newWidth,$newHeight,$olgWidth,$oldHeight);
imagejpeg($thumb,$img);
imagedestroy($thumb);
imagedestroy($image);