在没有SSH的共享主机上部署Symfony 2.7


Deploy Symfony 2.7 on shared hosting without SSH

美好的一天朋友们,我知道在使用CPanel的共享主机上部署Symfony 2.7应用程序也存在类似的问题。但就我而言,我无法访问 SSH。因此,通过作曲家安装是不可能的。

为了解决它,我将整个源代码复制到"public_html"文件夹中的子文件夹中。当我尝试使用"web/config.php"配置Symfony时,它给出了一些先决条件问题。为了解决这个问题,我在我的子文件夹中复制了自定义"php.ini",并将".htaccess"文件添加到"home/user"的根目录中,其中包含以下内容

SetEnv PHPRC /home/user/public_html/subfolder/php.ini

但设置仍然没有影响。我需要要求托管服务提供商重新启动 Web 服务器吗?这并不容易,因为它是共享主机。

请建议任何替代方式

应用程序不使用您的自定义.htaccess

尝试在用于浏览应用程序的public_html/web/.htaccess中添加SetEnv

如果这不起作用,一种工作方法是在应用程序的VirtualHost中添加以下内容:

<VirtualHost *:80>
    PHPINIDir /home/user/public_html/subfolder/php.ini
</VirtualHost>

但这涉及重新启动 apache 一次。

编辑

如果 PHP 以 CGI 形式运行:

创建一个名为 phpini.cgi 的包装脚本,将包含 php.ini 文件的目录导出为 PHPRC。

#!/bin/sh
export PHPRC=/home/user/public_html/subfolder
exec /path/to/cgi-bin/php5.cgi

/home/user/public_html/web/.htaccess中添加以下行:

AddHandler php-cgi .php
Action php-cgi /cgi-bin/phpini.cgi

如果 php 作为带有包装器的 CGI 运行(对于 FASTCGI):

您应该已经有以下包装脚本:

#!/bin/sh
export PHP_FCGI_CHILDREN=3
exec /path/to/cgi-bin/php5.cgi

将其更改为:

#!/bin/sh
export PHP_FCGI_CHILDREN=3
exec /path/to/cgi-bin/php.cgi -c /home/user/public_html/subfolder/php.ini

源中的更多信息和替代方案。

我希望这能解决你的问题,如果你确定你是php作为cgi/fast-cgi运行,它应该解决。