php 分布式apache_apache drill 分布式 - CSDN
精华内容
参与话题
  • apache 分布式部署

    2018-03-05 12:18:33
    分布式部署的作用: 当多个站点在同一个服务器运行,由需要配置不容的参数时,就需要分布式部署(例如: session 的时间配置)配置方式 在网站目录下创建 ‘.htaccess’ 文件,可以对网站进行单独的设置,称为...

    分布式部署的作用: 当多个站点在同一个服务器运行,由需要配置不容的参数时,就需要分布式部署(例如: session 的时间配置)

    配置方式
    在网站目录下创建 ‘.htaccess’ 文件,可以对网站进行单独的设置,称为分布式部署文件。
    该文件会覆盖 httpd.conf 文件中的配置。一个网站下可以有多个分布式部署文件。每个‘.htaccess’文件只能作用于当前目录和子目录。

    配置方式:
    假定你 在当前一个服务器中有多个网站。
    (PS: 配置方式查看,我的上一篇文章:配置多个网站

    配置方式在原有的基础上。打开apache/conf/extra/httpd-vhost.conf 文件。
    配置 下面路径。

    <VirtualHost *:80> 
        DocumentRoot "C:/www" 
        ServerName www.test.com 
        DirectoryIndex index.php 
        <Directory "C:/www"> 
            AllowOverride all  
            #允许分布式文件覆盖主文件配置。这句话很关键,否则可能分布式文件不生效
        </Directory>
    </VirtualHost>

    然后到 C:/www 目录下 创建 .htaccess 文件。

    1. 打开Windows内建的记事本;
    2. 选取另存新文件“文件->另存为”;
    3. 在另存为的“保存类型”下拉选单中选取“所有文件”类型,可以选择utf-8,也可以是ansi
    4. 这时就可在“文件名”中输入.htaccess;
    5. 选取要另存的路径再按下保存,一个.htaccess 文件就新增完成

    在.htaccess 中可以配置apache的参数 也可以配置 PHP参数。
    例如:

        Require all granted //允许访问所有文件
        php_flag session.auto_start 1 //配置PHP参数
    php_value session.gc_maxlifetime 10 //配置PHP参数

    详情:
    1、Apache 配置文件由主配置文件和分布式配置文件组成。
    2、主配置文件被修改后必须重启服务器。分布式配置文件被修改后不需要重启。
    3、分布式部署会降低服务器新能,如果不是必须建议不用。

    展开全文
  • 1,主配置文件: ... 2,分布式配置文件: 就是指分散到各个目录中的Apache的配置文件,其中的配置,只针对该目录的以及该...Apache中的.htaccess(或者”分布式配置”了针对目录改变配置的方法,即,在特定的文档...

    1,主配置文件:

    conf/http.conf 还有conf/etra/目录下的可以加载的配置文件,其实也可以算为一个。

    2,分布式配置文件:

    就是指分散到各个目录中的Apache的配置文件,其中的配置,只针对该目录的以及该目录的子目录有效。

    该分布式配置文件的名字叫:.htaccess

    Apache中的.htaccess(或者”分布式配置”了针对目录改变配置的方法,即,在特定的文档目录中放置包含或多个指令的,以作用于此目录及其子目录。作为,所能的命令受到限制。***Apache的AllowOverride指令来设置

    概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。

    将AllowOverride设置为none可以完全禁止使用.htaccess文件:

    简单演示一下.htaccess的用法:

    为了不让用户读取到项目中的某一个文件夹里的内容

    1.可以在该文件夹中添加一个.htaccess文件(文件名为.htaccess),里面添加如下语句;

    (Allow和Deny可以用于apache的conf文件或者.htaccess文件中(配合Directory, Location, Files等),用来控制目录和文件的访问授权。Apache的Order Allow,Deny 详解可以参考 https://blog.csdn.net/li_jun_feng/article/details/80307783)。

    2,此时用户还是可以读取到,因为需要在主配置文件中,规定哪个目录可以使用分布式配置文件,

    需要利用一个指令来完成;

    Allowoverride all  #允许分布式配置文件可以对主配置文件进行修改

    3,修改完成后,重启Apache,此时用户就无法获取该文件夹里面的内容。

     

    本人php小白一个,请大家多多赐教,共同进步,谢谢!

     

     

    展开全文
  • 参见day1-PHP基础语法,httpd-conf配置&lt;Directory /&gt; AllowOverride all #Require all denied&lt;/Directory&gt;虚拟主机配置 &lt;Directory "D:/www/"&gt; ...

    参见day1-PHP基础语法,

    httpd-conf配置

    <Directory />

        AllowOverride all
        #Require all denied

    </Directory>

    虚拟主机配置

     <Directory  "D:/www/">
             AllowOverride all
    Allow from all
        </Directory>

    展开全文
  • php分布式部署

    万次阅读 2017-06-27 12:02:15
    普通的Web开发,常用的模式就是用户登录之后,登录状态信息保存在Session中,用户一些常用的热数据保存在文件缓存中,用户上传的附件信息保存在Web服务器的某个目录上。这种方式对于一般的Web应用,使用很方便,完全...

    普通的Web开发,常用的模式就是用户登录之后,登录状态信息保存在Session中,用户一些常用的热数据保存在文件缓存中,用户上传的附件信息保存在Web服务器的某个目录上。这种方式对于一般的Web应用,使用很方便,完全能够胜任。但是对于高并发的企业级网站,就应付不了了。需要采用Web集群实现负载均衡。

      使用Web集群方式部署之后,首要调整的就是用户状态信息与附件信息。用户状态不能再保存到Session中,缓存也不能用本地Web服务器的文件缓存,以及附件,也不能保存在Web服务器上了。因为要保证集群里面的各个Web服务器,状态完全一致。因此,需要将用户状态、缓存等保存到专用的缓存服务器,比如Memcache。附件需要保存到云存储中,比如七牛云存储、阿里云存储、腾讯云存储等。

      本文以ThinkPHP开发框架为例,说明如何设置,能够将Session、缓存等保存到Memcache缓存服务器上。

     

      下载缓存的Memcache处理类,放到Thinkphp\Extend\Driver\Cache目录中;下载Session的Memcache处理类,放到Thinkphp\Extend\Driver\Session目录中,如下图所示:



      修改配置文件,调整Session与缓存,都记录到Memcache服务器上。打开ThinkPHP\Conf\convention.PHP,增加配置项:

    [php] view plain copy
    1. /* Memcache缓存设置 */  
    2. 'MEMCACHE_HOST'         => '192.168.202.20',  
    3. 'MEMCACHE_PORT'         => 11211,  

      修改数据缓存为Memcache:

    [php] view plain copy
    1. 'DATA_CACHE_TYPE'       => 'Memcache',  
      修改Session为Memcache:

    [php] view plain copy
    1. 'SESSION_TYPE'          => 'Memcache',  

      如下图所示:


      因为云存储各类比较多,附件存储到云存储上,就不再赘述,参数各云存储提供的sdk即可。经过以上修改,就可以将Web服务器进行分布式部署了。


      附件1:CacheMemcache.class.php

    [php] view plain copy
    1. <?php  
    2. // +----------------------------------------------------------------------  
    3. // | ThinkPHP [ WE CAN DO IT JUST THINK IT ]  
    4. // +----------------------------------------------------------------------  
    5. // | Copyright (c) 2006-2012 http://thinkphp.cn All rights reserved.  
    6. // +----------------------------------------------------------------------  
    7. // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )  
    8. // +----------------------------------------------------------------------  
    9. // | Author: liu21st <liu21st@gmail.com>  
    10. // +----------------------------------------------------------------------  
    11.   
    12. defined('THINK_PATH'or exit();  
    13. /** 
    14.  * Memcache缓存驱动 
    15.  * @category   Extend 
    16.  * @package  Extend 
    17.  * @subpackage  Driver.Cache 
    18.  * @author    liu21st <liu21st@gmail.com> 
    19.  */  
    20. class CacheMemcache extends Cache {  
    21.   
    22.     /** 
    23.      * 架构函数 
    24.      * @param array $options 缓存参数 
    25.      * @access public 
    26.      */  
    27.     function __construct($options=array()) {  
    28.         if ( !extension_loaded('memcache') ) {  
    29.             throw_exception(L('_NOT_SUPPERT_').':memcache');  
    30.         }  
    31.   
    32.         $options = array_merge(array (  
    33.             'host'        =>  C('MEMCACHE_HOST') ? C('MEMCACHE_HOST') : '127.0.0.1',  
    34.             'port'        =>  C('MEMCACHE_PORT') ? C('MEMCACHE_PORT') : 11211,  
    35.             'timeout'     =>  C('DATA_CACHE_TIMEOUT') ? C('DATA_CACHE_TIMEOUT') : false,  
    36.             'persistent'  =>  false,  
    37.         ),$options);  
    38.   
    39.         $this->options      =   $options;  
    40.         $this->options['expire'] =  isset($options['expire'])?  $options['expire']  :   C('DATA_CACHE_TIME');  
    41.         $this->options['prefix'] =  isset($options['prefix'])?  $options['prefix']  :   C('DATA_CACHE_PREFIX');          
    42.         $this->options['length'] =  isset($options['length'])?  $options['length']  :   0;          
    43.         $func               =   $options['persistent'] ? 'pconnect' : 'connect';  
    44.         $this->handler      =   new Memcache;  
    45.         $options['timeout'] === false ?  
    46.             $this->handler->$func($options['host'], $options['port']) :  
    47.             $this->handler->$func($options['host'], $options['port'], $options['timeout']);  
    48.     }  
    49.   
    50.     /** 
    51.      * 读取缓存 
    52.      * @access public 
    53.      * @param string $name 缓存变量名 
    54.      * @return mixed 
    55.      */  
    56.     public function get($name) {  
    57.         N('cache_read',1);  
    58.         return $this->handler->get($this->options['prefix'].$name);  
    59.     }  
    60.   
    61.     /** 
    62.      * 写入缓存 
    63.      * @access public 
    64.      * @param string $name 缓存变量名 
    65.      * @param mixed $value  存储数据 
    66.      * @param integer $expire  有效时间(秒) 
    67.      * @return boolen 
    68.      */  
    69.     public function set($name$value$expire = null) {  
    70.         N('cache_write',1);  
    71.         if(is_null($expire)) {  
    72.             $expire  =  $this->options['expire'];  
    73.         }  
    74.         $name   =   $this->options['prefix'].$name;  
    75.         if($this->handler->set($name$value, 0, $expire)) {  
    76.             if($this->options['length']>0) {  
    77.                 // 记录缓存队列  
    78.                 $this->queue($name);  
    79.             }  
    80.             return true;  
    81.         }  
    82.         return false;  
    83.     }  
    84.   
    85.     /** 
    86.      * 删除缓存 
    87.      * @access public 
    88.      * @param string $name 缓存变量名 
    89.      * @return boolen 
    90.      */  
    91.     public function rm($name$ttl = false) {  
    92.         $name   =   $this->options['prefix'].$name;  
    93.         return $ttl === false ?  
    94.             $this->handler->delete($name) :  
    95.             $this->handler->delete($name$ttl);  
    96.     }  
    97.   
    98.     /** 
    99.      * 清除缓存 
    100.      * @access public 
    101.      * @return boolen 
    102.      */  
    103.     public function clear() {  
    104.         return $this->handler->flush();  
    105.     }  
    106. }  

      附件2:SessionMemcache.class.php

    [php] view plain copy
    1. <?php   
    2. // +----------------------------------------------------------------------  
    3. // |   
    4. // +----------------------------------------------------------------------  
    5. // | Copyright (c) 2013-   
    6. // +----------------------------------------------------------------------  
    7. // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )  
    8. // +----------------------------------------------------------------------  
    9. // | Author: richievoe <richievoe@163.com>  
    10. // +----------------------------------------------------------------------  
    11.     /** 
    12.      * 自定义Memcache来保存session 
    13.      */  
    14. Class SessionMemcache{  
    15.     //memcache对象  
    16.     private $mem;  
    17.     //SESSION有效时间  
    18.     private $expire;  
    19.     //外部调用的函数  
    20.     public function execute(){  
    21.         session_set_save_handler(  
    22.             array(&$this,'open'),   
    23.             array(&$this,'close'),   
    24.             array(&$this,'read'),   
    25.             array(&$this,'write'),   
    26.             array(&$this,'destroy'),   
    27.             array(&$this,'gc')  
    28.             );  
    29.     }  
    30.     //连接memcached和初始化一些数据  
    31.     public function open($path,$name){  
    32.         $this->expire = C('SESSION_EXPIRE') ? C('SESSION_EXPIRE') :ini_get('session.gc_maxlifetime');  
    33.         $this->mem = new Memcache;  
    34.         return $this->mem->connect(C('MEMCACHE_HOST'), C('MEMCACHE_PORT'));  
    35.     }  
    36.     //关闭memcache服务器  
    37.     public function close(){  
    38.         return $this->mem->close();  
    39.     }  
    40.     //读取数据  
    41.     public function read($id){  
    42.         $id = C('SESSION_PREFIX').$id;  
    43.         $data = $this->mem->get($id);  
    44.         return $data ? $data :'';  
    45.     }  
    46.     //存入数据  
    47.     public function write($id,$data){  
    48.         $id = C('SESSION_PREFIX').$id;  
    49.         //$data = addslashes($data);  
    50.         return $this->mem->set($id,$data,0,$this->expire);  
    51.     }  
    52.     //销毁数据  
    53.     public function destroy($id){  
    54.         $id = C('SESSION_PREFIX').$id;  
    55.         return $this->mem->delete($id);  
    56.     }  
    57.     //垃圾销毁  
    58.     public function gc(){  
    59.         return true;  
    60.     }  
    61. }  
    62. ?>  
    展开全文
  • php分布式存储

    千次阅读 2018-06-12 10:26:45
    普通的Web开发,常用的模式就是用户登录之后,登录状态信息保存在Session中,用户一些常用的热数据保存在文件缓存中,用户上传的附件信息保存在Web服务器的某个目录上。这种方式对于一般的Web应用,使用很方便,完全...
  • 默认情况下,apache安装成功后,就默认配置好了一个“站点”,该站点的实际位置是在apache安装目录的htdocs目录,同时也有默认的主机名叫localhost。单站点配置项1、端口监听 默认 http 协议通信的端口号是 80 ,不
  • 在前边我们已经配置好了FastDFS的环境,但是此时的FastDFS还不能通过http来...但是错误百出,后来发现我所使用的FastDFS_v4.06是需要单独配置apache服务器的,下面就来说一下我的配置过程。一、环境声明本人在Windows
  • (开启的我他的方法不行,查找了一下AllowOverride None全部的都给换成AllowOverride All就了,原因不明,O(∩_∩)O~ 记得修改完httpd.conf以后一定要重启下apache才的哦~ ) 1 . 如何让的本地APAC...
  • 1、Gearman介绍和使用场景 Gearman是一个分发任务的程序框架,可以用在各种场合,与Hadoop相 比,Gearman更偏向于任务分发功能。它的任务分布非常简单,简单得可以只需要用脚本即可完成。Gearman最初用于LiveJournal...
  • 前言 一直以来在web这个领域对php 可是早有耳闻,大家对php赞不绝口,称赞有加,这让php火了一阵子,现在也依旧流行,所以我实在是忍不住想搞搞php了,以前以为学了jsp就没必要学php了,因为用j2ee这个平台也照样做...
  • PHP分布式缓存memcached熟悉和操作

    千次阅读 2015-03-27 10:19:10
    作为PHP开发人员,我们一般能想到的方法有页面静态化处理、防盗链、CDN内容分发加速访问、mysql数据库优化建立索引、架设apache服务器集群()、还有就是现在流行的各种分布式缓存技术:如memcached/redis;...
  • httpd与php的结合方式: 如果网站的访问量很小,同一时间仅仅处理单个请求,那么各种结合方式的特点并不能很好的体现。这里我们仅考虑在高访问量、高并发情况下各种结合方式的优缺点。 CGI: CGI(common ...
  • .htaccess文件(或者"分布式配置文件")提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员...
  • 使用Zookeeper分布式部署PHP应用程序

    千次阅读 2015-01-21 14:29:35
    原文:Distributed application in PHP with Apache Zookeeper 地址:http://systemsarchitect.net/distributed-application-in-php-with-apache-zookeeper/ 这篇文章实在不错,实在忍不住翻译下来,希望对大家...
  • 88元购买云服务器 Mysql安装 . 解压MySQL压缩包 将以下载的MySQL压缩包解压到自定义目录下,我的解压目录是: "D:\Program Files\MySQL\mysql-5.6.13-win32" 将解压目录下默认文件 my-default.ini 拷贝一份,...
  • apache配置 之 fastcgi 与mod_php

    千次阅读 2010-11-12 11:22:00
    [cgi] <br />web server收到用户请求,并把请求提交给cgi程序,cgi程序根据请求提交的参数作相应处理,然后输出标准的html语句返回给web  server,web server再返回给客户端,这就是普通cgi的工作...
  • 消息中间件MQ与RabbitMQ面试题(2020最新版)

    万次阅读 多人点赞 2020-05-06 14:11:22
    文章目录为什么使用MQ?MQ的优点消息队列有什么优缺点?RabbitMQ有什么优缺点?你们公司生产环境用的是什么消息中间件?Kafka、ActiveMQ、RabbitMQ、RocketMQ 有什么优缺点?MQ 有哪些常见问题?...
  • http://www.leapsoul.cn/?p=695
  • 分布式应用协调服务ZooKeeper

    千次阅读 2020-07-06 13:01:22
    Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目 Zookeeper=文件系统+通知机制 Zookeeper从设计模式上来看是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数 ...
  • 程序员的成长之路互联网/程序员/技术/资料共享关注阅读本文大概需要 8 分钟。来自:ShardingSphere官微全球最大的开源软件基金会 Apache 软件基金会(以下简称 Apa...
1 2 3 4 5 ... 20
收藏数 35,509
精华内容 14,203
关键字:

php 分布式apache