让我的php服务器成为symfony服务器

时间:2017-08-06 01:33:36

标签: php symfony server ubuntu-server

我正在尝试让我的php服务器成为Symfony服务器 我安装了Symfony,我在/ var / www / project_name中创建了一个项目 如果我使server:run my_local_ip:8000服务器正常运行,我也可以通过另一个网络上的计算机使用http://public_ip:8000来访问它,相反,如果我写http://public_ip,它会继续我的index.php。
嗯,现在,我就是这样,如果我写http://public_ip它会继续http://public_ip:8000或至少可以使Symfony在端口80上运行或使Symfony在php内置服务器上运行。
我试图创建一个虚拟主机,我创建了这个文件:
project_name.conf

<VirtualHost *:80>
    # The ServerName directive sets the request scheme, hostname and port that
    # the server uses to identify itself. This is used when creating
    # redirection URLs. In the context of virtual hosts, the ServerName
    # specifies what hostname must appear in the request's Host: header to
    # match this virtual host. For the default virtual host (this file) this
    # value is not decisive as it is used as a last resort host regardless.
    # However, you must set it for any further virtual host explicitly.
    ServerName project_name
    <IfModule mod_rewrite.c>
      RewriteEngine on
      RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
      RewriteRule .* - [F]
    </IfModule>
    DocumentRoot /var/www/project_name
    <Directory /var/www/project_name>
      Options Indexes FollowSymlinks Multiviews
      AllowOverride All
      Require all granted
    </Directory>
    # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
    # error, crit, alert, emerg.
    # It is also possible to configure the loglevel for particular
    # modules, e.g.
    #LogLevel info ssl:warn

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    # For most configuration files from conf-available/, which are
    # enabled or disabled at a global level, it is possible to
    # include a line for only one particular virtual host. For example the
    # following line enables the CGI configuration for this host only
    # after it has been globally disabled with "a2disconf".
    #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

但它不起作用,如果我写http://public_ip它总是运行我的index.php 你能给我一个帮助吗?

已完成的解决方案 - 感谢@Alberto Fecchi回答:

  1. 编辑00-default.conf
  2. 粘贴您在Alberto Fecchi的答案中找到的内容,并添加此
  3. #IT NEEDS "<" BEFORE TAG
    Directory /var/www/tcgfiga/web/bundles>
       IfModule mod_rewrite.c>
         RewriteEngine Off
      </IfModule>
    /Directory>
    
    1. 然后制作“sudo service apache2 restart”。有时候这是必要的,有时候不是
    2. 进入文件夹“/ var / www / project / web /”并搜索“.htaccess”文件
    3. 您应该将其删除,但如果是这样,您的应用程序将无法运行,并且您会看到该文件夹​​的内容并进行分页,请重新创建并打开它。你必须搜索
    4. <IfModule !mod_rewrite.c>
        <IfModule mod_alias.c>
          # When mod_rewrite is not available, we instruct a temporary redirect of
          # the start page to the front controller explicitly so that the website
          # and the generated links can still be used.
          RedirectMatch 302 ^/$ /app.php/
          # RedirectTemp cannot be used instead
        </IfModule>
      </IfModule>
      
      1. 评论第RedirectMatch 302 ^/$ /app.php/
      2. 现在有效:)

1 个答案:

答案 0 :(得分:1)

使用此虚拟主机:

<VirtualHost *:80>

    ServerName project_name
    <IfModule mod_rewrite.c>
      RewriteEngine on
      RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
      RewriteRule .* - [F]
    </IfModule>
    DocumentRoot /var/www/project_name/web
    <Directory /var/www/project_name/web>
        Options Indexes FollowSymlinks Multiviews
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

使用sudo a2ensite project_name启用它并使用sudo service apache2 restart重启(各种操作系统上的命令可能不同)。

现在,您可以访问http://public_ip查看“生产”应用程序。