2016-11-22 18 views
0

EDIT2:安装并启用了APC。解决方案是什么?fsockopen()错误500当我在部署到Ubuntu VPS后尝试访问我的Symfony应用程序

我正在尝试将一个symfony应用程序部署到VPS。 我从git中部署了代码,我安装了供应商并检查/web/config.php来修复Symfony需求中的所有主要和推荐问题。这全是绿色的。

但是,当我尝试访问[VPS_IP] /my_project/web/app.php时,我得到一个页面无法正常工作。 [my_ip]目前无法处理该请求。

我也尝试配置虚拟主机,并尝试访问我的[my_ip]上的Symfony应用程序只作为URL地址,我得到相同的结果。

我已经启用了apache 2 mod重写,我已经添加并启用了所有必需的php扩展,我在php.ini中设置了date.timezone,我也查看了dev.log文件和tehre我有这个错误可能是原因:

[2016-11-22 14:45:49] php.DEBUG: fsockopen(): unable to connect to 127.0.0.1:800   0 (Connection refused) {"type":2,"file":"/var/www/html/giftbundle/vendor/symfony   /symfony/src/Symfony/Bundle/FrameworkBundle/Command/ServerCommand.php","line":59   ,"level":28928} [] 

任何人都可以提供一些帮助吗?

config.yml

imports: 
    - { resource: parameters.yml } 
    - { resource: security.yml } 
    - { resource: services.yml } 
    - { resource: "@MyVendorBundle/Resources/config/services.yml" } 

# Put parameters here that don't need to change on each machine where the app is deployed 
# http://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration 
parameters: 
    locale: en 

framework: 
    #esi:    ~ 
    #translator:  { fallbacks: ["%locale%"] } 
    secret:   "%secret%" 
    router: 
     resource: "%kernel.root_dir%/config/routing.yml" 
     strict_requirements: ~ 
    form:   ~ 
    csrf_protection: ~ 
    validation:  { enable_annotations: true } 
    serializer:  { enable_annotations: true } 
    templating: 
     engines: ['twig'] 
     #assets_version: SomeVersionScheme 
    default_locale: "%locale%" 
    trusted_hosts: ~ 
    trusted_proxies: ~ 
    session: 
     # handler_id set to null will use default session handler from php.ini 
     handler_id: ~ 
     save_path: "%kernel.root_dir%/../var/sessions/%kernel.environment%" 
    fragments:  ~ 
    http_method_override: true 
    assets: ~ 

# Twig Configuration 
twig: 
    debug:   "%kernel.debug%" 
    strict_variables: "%kernel.debug%" 
    form_themes: 
     - 'bootstrap_3_layout.html.twig' 

# Doctrine Configuration 
doctrine: 
    dbal: 
     driver: pdo_mysql 
     host:  "%database_host%" 
     port:  "%database_port%" 
     dbname: "%database_name%" 
     user:  "%database_user%" 
     password: "%database_password%" 
     charset: UTF8 
     # if using pdo_sqlite as your database driver: 
     # 1. add the path in parameters.yml 
     #  e.g. database_path: "%kernel.root_dir%/data/data.db3" 
     # 2. Uncomment database_path in parameters.yml.dist 
     # 3. Uncomment next line: 
     #  path:  "%database_path%" 

    orm: 
     auto_generate_proxy_classes: "%kernel.debug%" 
     naming_strategy: doctrine.orm.naming_strategy.underscore 
     auto_mapping: true 

# Swiftmailer Configuration 
swiftmailer: 
    transport: "%mailer_transport%" 
    host:  "%mailer_host%" 
    username: "%mailer_user%" 
    password: "%mailer_password%" 
    spool:  { type: memory } 

# app/config/config.yml 
#knp_menu: 
    # use "twig: false" to disable the Twig extension and the TwigRenderer 
# twig: 
#  template: knp_menu.html.twig 
    # if true, enables the helper for PHP templates 
# templating: false 
    # the renderer to use, list is also available by default 
# default_renderer: twig 

assetic: 
    debug:   '%kernel.debug%' 
    use_controller: '%kernel.debug%' 
    filters: 
     cssrewrite: ~ 

gregwar_captcha: ~ 

liip_imagine: 
    filter_sets: 
     cover_filter: 
      filters: 
       thumbnail: 
        size: [600, 400] 
        mode: inset 
     prod_thumbnail: 
      filters: 
       thumbnail: 
        size: [50, 50] 
        mode: inset 

#web_profiler: 
# toolbar: true 
# position: bottom 
# intercept_redirects: false 
# excluded_ajax_paths: ^/bundles|^/_wdt  

parameters.yml

# This file is auto-generated during the composer install 
parameters: 
    database_host: [another remote DB IP] 
    database_port: 3306 
    database_name: [remote DB name] 
    database_user: [Remote DB user] 
    database_password: [remote DB PSW] 
    mailer_transport: sendmail 
    mailer_host: 127.0.0.1 
    mailer_user: null 
    mailer_password: null 
    secret: rodacsoft 
    facebook_app_id: [fb_app_ID] 
    facebook_app_secret: [fb_secret] 

VPS /etc/apache2/sites-available/000-default.conf

<VirtualHost *:80> 

    DocumentRoot /var/www/html/giftbundle/web 
    <Directory /var/www/html/giftbundle/web> 
     AllowOverride None 
     Order Allow,Deny 
     Allow from All 

     <IfModule mod_rewrite.c> 
      Options -MultiViews 
      RewriteEngine On 
      RewriteCond %{REQUEST_FILENAME} !-f 
      RewriteRule ^(.*)$ app.php [QSA,L] 
     </IfModule> 
    </Directory> 

    # uncomment the following lines if you install assets as symlinks 
    # or run into problems when compiling LESS/Sass/CoffeScript assets 
    # <Directory /var/www/project> 
    #  Options FollowSymlinks 
    # </Directory> 

    ErrorLog /var/log/apache2/symfony_error.log 
    CustomLog /var/log/apache2/symfony_access.log combined 
</VirtualHost> 

编辑:在Symfony_error.log我有这个。不知道如何解决它或如果它是相关的。

[Tue Nov 22 14:46:06.216187 2016] [:error] [pid 21788] [client 159.153.60.77:18035] PHP Fatal error: Uncaught Symfony\\Component\\DependencyInjection\\Exception\\ServiceNotFoundException: The service "validator.builder" has a dependency on a non-existent service "validator.mapping.cache.apc". in /var/www/html/giftbundle/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php:58\nStack trace:\n#0 /var/www/html/giftbundle/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php(51): Symfony\\Component\\DependencyInjection\\Compiler\\CheckExceptionOnInvalidReferenceBehaviorPass->processReferences(Array)\n#1 /var/www/html/giftbundle/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php(51): Symfony\\Component\\DependencyInjection\\Compiler\\CheckExceptionOnInvalidReferenceBehaviorPass->processReferences(Array)\n#2 /var/www/html/giftbundle/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Compiler/CheckExceptionOnIn in /var/www/html/giftbundle/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php on line 58 
+0

从错误日志中,我认为您的Symfony项目启用了APC缓存,并且您的服务器没有安装apc缓存 –

+0

@Szanto apcache从我在phpinfo中看到的状态启用。我怎么去解决这个问题呢?改变它使用的Symfony应用缓存与别的东西,以防我的服务器不在我认为的东西之外? –

+0

@SzántóZoltán或者更好的是,我如何配置Symfony使用服务器Memcache? –

回答

0

检查缓存文件夹是否可由apache(www-data)用户写入。您无法访问[VPS_IP] /my_project/web/app.php,因为您已将web /文件夹定义为apache配置中的根文件夹。您应该使用您的域名在apache配置中定义ServerName和ServerAlias,或尝试直接访问[VPS_IP] /app.php。 也输入您的IP到app_dev并访问[VPS_IP] /app_dev.php以获取更明确的错误。

+0

缓存文件夹是可写的,我解决了权限问题。我也尝试过使用IP而不是Web文件夹,因为我配置了我的虚拟主机。同样的问题。我会尝试获取app_dev.php来检查,但是,如果供应商使用--no-dev安装,会给我提供信息? –

+0

我添加了app_dev.php,当我访问页面加载时,但没有格式和资源,即使它们存在于Web文件夹中。 那么,为什么没有app_dev它不工作? –

+0

我修复了app_dev上的文档根路径和资产加载问题。PHP,但是当我尝试访问定期prod我得到**页面无法正常工作。 [my_ip]目前无法处理该请求。** –

相关问题