我需要在部署新版本的站点时清除所有APC缓存条目.APC.php有一个用于清除所有操作码缓存的按钮,但是我没有看到用于清除所有用户条目或所有系统条目或所有每个目录条目的按钮.
是否可以通过命令行或其他方式清除所有缓存条目?
会打电话
$ httpd graceful
Run Code Online (Sandbox Code Playgroud)
清除APC缓存,或者我必须做一个全面的
$ httpd restart
Run Code Online (Sandbox Code Playgroud)
去做吧?(请记住,我知道有更好的方法可以做到这一点,比如以编程方式调用apc_clear_cache()).
我一直在CentOS 6上使用Capistrano建立PHP部署,并遇到了一个有趣的问题.capistrano工作的方式,它设置这样的文件夹:
当我查看"当前"符号链接时,它指向最新版本.首先,在打开我的网络应用程序时,一切正常.部署新版本后,当前文件夹正确指向新版本,但Web应用程序尝试从旧版本(已在Capistrano清理过程中删除)中加载文件.此外,虚拟主机配置为指向/var/www/myapp.com/current/Public.
符号链接是否以任何方式缓存?
失败的特定PHP代码(初始化我的框架)是这样的:
require_once dirname(dirname(__FILE__)) . '/App/App.php';
App\App::run();
Run Code Online (Sandbox Code Playgroud)
这是在index.php中,目前位于/var/www/app.com/current/Public/index.php.
我的Apache错误日志显示:
PHP致命错误:require_once():未能打开'/var/www/myapp.com/releases/20130826172237/App/App.php'(include_path ='.:/ usr/share/pear:/ usr/share/php ')/var/www/myapp.com/releases/20130826172237/Public/index.php
而当前的符号链接显示:
当前 - >/var/www/zverse/releases/20130826172641
显然是20130826172641!= 20130826172237,后者是以前的版本.
我能看到的任何想法或领域?
我开始在一个项目中使用Composer,我在历史上将所有依赖项都置于版本控制之下.
该项目目前使用Symfony 2自动加载器.因为Composer带有自己的自动加载机制(vendor/autoload.php),这让我想知道我是否还需要使用Symfony ClassLoader.
我假设我可以使用Composer自动加载器来自动加载我的项目类:
$loader = require 'vendor/autoload.php';
$loader->add('MyProject', 'src');
Run Code Online (Sandbox Code Playgroud)
在整个项目中使用Composer自动加载器有什么缺点吗?
是否有Symfony自动加载器提供的功能,我在Composer自动加载机中找不到?
php ×4
apc ×2
apache ×1
autoload ×1
caching ×1
capistrano ×1
composer-php ×1
performance ×1
symfony ×1
symlink ×1