没有人会否认Composer是一种相当便捷的工具,并且有免费或廉价的托管服务提供商,它们不提供任何控制台或内置工具来使用Composer。 这正是我遇到的那种堆栈。 好吧,正如绝地遗赠者一样,
供应 商会立即添加到
.gitignore中,以免混乱他们的存储库,也不会来回移动库。
首先想到的是使脚本可以从Web上访问,可以在正确的时间将其拉出,它将更新依赖关系或安装依赖关系。
为此,我们需要进行一些操作。
1.要在本地安装composer,我们
需要下载composer.phar 。
2.创建一个将在其中解压缩的文件夹(将其命名为
var )。
3.创建
composer.json (好吧,关于这一点,我想您已经知道是否使用过composer)。
4.好吧,创建脚本本身以与Web上的作曲家一起使用(将其
命名为
composer.php )。
因此,我们有了未来站点的结构:
Composer.phar本身将如下所示:
<?php use Composer\Console\Application; use Symfony\Component\Console\Input\ArrayInput; use Symfony\Component\Console\Output\StreamOutput;
如果你是一个快乐的人。 调用脚本后,它将展开
供应商文件夹。
但是我并没有这样想。)破坏我计划的第一件事是在
php.ini中设置
phar.readonly = On ,并且您可能已经猜到免费托管,您通常无法对其进行编辑。 然后,我开始寻找解决方法。
我尝试的第一件事是创建
user.ini ,它将覆盖
php.ini中的设置,它在本地计算机上工作),但是在托管时,此功能被刺死。
然后我尝试使用另一种技巧。 将
composer.phar重命名为
composer ,结果是相同的。 它可以在局域网上运行,但不能在主机上运行。
然后,都必须使用脚本而不是脚本,将文件本地解压缩到
var中,然后将其上传到服务器。
同样值得通过授权关闭脚本,以便各种人不要调用它。 同样在脚本的最终版本中,我通过参数添加了命令的选择。
<?php use Composer\Console\Application; use Symfony\Component\Console\Input\ArrayInput; use Symfony\Component\Console\Output\BufferedOutput; use Symfony\Component\Console\Output\OutputInterface;
另外,向
.htaccess添加一条规则以转发授权标头(对于CGI)并重定向到HTTPS也无害,因为授权是明文形式的。
RewriteEngine On # CGI, , RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # HTTPS, RewriteCond %{HTTPS} off RewriteCond %{HTTP:SSL} !=1 [NC] RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L]