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

Php 在没有SSH的共享主机上部署Symfony 2.7,php,symfony,deployment,shared-hosting,Php,Symfony,Deployment,Shared Hosting,朋友们,你好, 我知道在与CPanel共享主机上部署Symfony 2.7应用程序时也存在类似的问题。但在我的情况下,我没有访问SSH的权限。因此,安装via Composer是不可能的 为了解决这个问题,我将整个源代码复制到“public_html”文件夹中的一个子文件夹中。当我尝试使用“web/config.php”配置Symfony时,它给出了一些先决条件问题。为了解决这个问题,我在我的子文件夹中复制了自定义的“php.ini”,并使用以下内容将“.htaccess”文件添加到“home/

朋友们,你好, 我知道在与CPanel共享主机上部署Symfony 2.7应用程序时也存在类似的问题。但在我的情况下,我没有访问SSH的权限。因此,安装via Composer是不可能的

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

SetEnv PHPRC /home/user/public_html/subfolder/php.ini
但这一设置仍然没有发挥作用。我是否需要要求托管提供商重新启动web服务器?这并不容易,因为它是共享主机


请建议任何替代方法

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

尝试在用于浏览应用程序的
public\u html/web/.htaccess
中添加
SetEnv

如果这没有效果,一种有效的方法是在应用程序的
VirtualHost
中添加以下内容:

<VirtualHost *:80>
    PHPINIDir /home/user/public_html/subfolder/php.ini
</VirtualHost>
/home/user/public\u 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
更多信息和备选方案请参阅


我希望这能解决您的问题,如果您确定您是以cgi/fast cgi运行的php,那么应该这样做。

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

尝试在用于浏览应用程序的
public\u html/web/.htaccess
中添加
SetEnv

如果这没有效果,一种有效的方法是在应用程序的
VirtualHost
中添加以下内容:

<VirtualHost *:80>
    PHPINIDir /home/user/public_html/subfolder/php.ini
</VirtualHost>
/home/user/public\u 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
更多信息和备选方案请参阅



我希望这能解决您的问题,如果您确定您是以cgi/fast cgi的身份运行php,应该可以解决。

请尝试
RewriteBase/subfolder/web/
在您的.htaccess中添加以下几行,但是我的自定义php.ini没有生效
RewriteBase/subfolder/web/
SetEnv PHPRC/home/user/public\u html/subfolder/php.ini
我仍在添加我的评论,但enter被认为是发送消息,您可以将
.htaccess
移动到
public\u html/
文件夹中,据我所知,部署symfony应用程序不需要定制php.ini,但是
.htaccess
当前没有得到解决,因为它位于
public\u html
文件夹之外。因此,首先移动它,然后查看配置是否有效(可能还有您的
php.ini
),请将
.htaccess
文件移动到“public\u html”文件夹中,但仍然没有影响。你是说我不需要定制
php.ini
,Symfony是说我需要将
mbstring.func\u重载设置为零(0)我在
php.ini
parameters.yml
中都尝试过,比如
mbstring.func\u重载:0
,但没有影响到.htaccess中的
RewriteBase/subfolder/web/
添加了行下的行,但是我的自定义php.ini没有生效
RewriteBase/subfolder/web/
SetEnv PHPRC/home/user/public\u html/subfolder/php.ini
我仍在添加我的评论,但enter被认为是发送消息,您可以将
.htaccess
移动到
public\u html/
文件夹中,据我所知,部署symfony应用程序不需要定制php.ini,但是
.htaccess
当前没有得到解决,因为它位于
public\u html
文件夹之外。因此,首先移动它,然后查看配置是否有效(可能还有您的
php.ini
),请将
.htaccess
文件移动到“public\u html”文件夹中,但仍然没有影响。你是说我不需要定制
php.ini
,Symfony是说我需要将
mbstring.func\u重载设置为零(0)我在
php.ini
parameters.yml
中都尝试过,比如
mbstring.func\u重载:0
,但没有影响我已将
.htaccess
文件移到web文件夹中,但仍然没有影响,还请注意,我无法重新启动服务器,因此virtualhost选项无效(看起来,
SetEnv PHPRC
显然没有效果。你知道你是使用php作为apache模块还是通过CGI/FastCGI SAPI?需要与我的主机提供商确认,但它必须是apache,因为如果我在
.htaccess
文件站点中添加了一个错误命令,我希望它也能工作,但我有一个问题,可以吗即使我只能通过FTP访问
/home/user
,而什么也没有,我也能做到以上所有else@Saqib我还有一个补充(不确定你是否在聊天中读到),当此操作正常时:请确保保护您的安装,因为您的所有文件现在都可以从公共目录访问。您可以在中进行检查,以仅将web目录设置为公共目录。(例如,将您的安装移回
/home/user/
,并根据食谱说明更改设置。但是,当然,您需要首先解决CGI/FastCGI障碍。祝您好运!我已将
.htaccess
文件移到web文件夹中,但仍然没有任何影响,还请注意,我无法重新启动服务器。)因此virtualhost选项无效:(看起来,
SetEnv PHPRC
显然没有效果。你知道你是使用php作为apache模块还是通过CGI/FastCGI SAPI?需要与我的主机提供商确认,但它必须是apache,因为如果我在
.htaccess
文件站点中添加了一个错误命令,我希望它也能工作,但我有一个问题,可以吗能够