外部环境上的Symfony内置Web服务器

奥图耶

我使用FOSRestBundle在本地配置了Web服务,并且运行良好。我唯一需要写的开始我的服务的就是

php bin/console server:run xxx.xxx.x.xx:port 

一切都准备好了。

但是后来我在阅读有关symfony Web服务器的一些文档,这些信息使我感到困惑:

内置的Web服务器旨在在受控环境中运行。它不适合在公共网络上使用。

我应该如何在我的云环境中使用它?如果我想将此公开,我应该如何在不使用此内置服务器的情况下启动我的REST服务?

什么等效于“ server:run”命令?如果我只是将代码放在这里,它将无法正常工作。我需要为我的REST API启动服务器。

卡梅伦·赫德(Cameron Hurd)

server:run在生产环境中,命令的等效性要涉及更多一点。面向公众的计算机上的Web服务器比本地开发服务器负有更多的责任,因此需要更多的配置。

为了生产(或什至登台),请使用可用于生产的Web服务器,例如ApacheNginx

在这里,我将在基于Debian的(Ubuntu)系统上共享apache的默认设置,并详细说明一些常见的陷阱。

  1. 安装LAMP组件

    ssh 到您的计算机中,然后运行此命令以确保已安装apache,php,mysql等!

    首先,从存储库中获取最新数据:

    sudo apt-get update

    您需要在其上运行symfony的LAMP组件:

    sudo apt-get install apache2 mysql-server libapache2-mod-auth-mysql php5-mysql php5 libapache2-mod-php5 php5-mcrypt

    如果它要求您提供密码,请确保存储MySQL根目录。(如果您尚未安装它。)

  2. 配置MySQL

    sudo mysql_install_db 初始化MySQL的系统/帮助表等

    sudo /usr/bin/mysql_secure_installation 删除测试表,重新加载特权表。

    跳入MySQL Shell并为您的应用程序创建一个用户和数据库。

    mysql -u root -p,并在出现提示时提供root pw。

    mysql> CREATE USER 'otuyh'@'localhost' IDENTIFIED BY 'password';otuyh使用密码创建您的用户password

    mysql> CREATE DATABASE otuyh_app; 将创建您的应用程序需要运行的数据库。

    mysql> GRANT ALL PRIVILEGES ON otuyh_app.* TO 'otuyh'@'localhost';

    mysql> FLUSH PRIVILEGES;

  3. 配置Apache(的生产版本server:run

    将您的项目克隆或上传到/var/www/html

    编辑/etc/apache2/sites-enabled/000-default.conf并更改该行:

    DocumentRoot /var/www/htmlDocumentRoot /var/www/html/web

    这会告诉apache哪个目录可以处理来自您应用程序Web文件夹的请求。

    此外,改变线ServerName white-macbookServerName example.com其中example.com是域名在你的服务器指向。

    最后,AllowOverride All在其中也添加一行以明确声明您的.htaccess文件也可以为Web服务器添加指令。

    将.htaccess文件拖放到您的web/文件夹中,如下所示:

    <IfModule mod_rewrite.c>
        Options +FollowSymlinks
        RewriteEngine On
    
        RewriteBase /
    
        # Explicitly disable rewriting for front controllers
        RewriteRule ^app_dev.php - [L]
    
        RewriteCond %{REQUEST_FILENAME} !-f
        # Change below before deploying to production
        RewriteRule ^(.*)$ app_dev.php [QSA,L]
    </IfModule>
    

    当您准备将环境更改为生产环境时,请更改app_dev为just app

    确保更改了config:后重新启动apache2服务sudo service restart apache2

    运行常规的sf2模式创建,composer安装等。

    然后,确保提供文件的apache用户确实有权访问它们!

    另外,在运行composer *cache:clear作为一个服务文件之外的用户运行时,写权限可能会混杂在一起,并且www-data需要此权限才能写日志并获取缓存的文件。快速解决方案:

    chown -R your-unix-user:www-data ./app find ./app/cache -type d -exec chmod 775 {} \; find ./app/logs; -type d -exec chmod 775 {} \; find ./app/cache -type f -exec chmod 664 {} \ find ./app/logs -type f -exec chmod 664 {} \

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Symfony:Apache与内置PHP服务器

来自分类Dev

Symfony:Apache与内置PHP服务器

来自分类Dev

配置PHP内置的Web服务器

来自分类Dev

服务器环境上的Guava AbstractScheduledService

来自分类Dev

防止Symfony2内置服务器崩溃

来自分类Dev

Symfony:网络服务器上的 Prod 环境产生空白页面

来自分类Dev

从外部访问Web服务器

来自分类Dev

PHP内置的Web服务器错误报告

来自分类Dev

如何在PhpStorm中设置内置的Web服务器

来自分类Dev

Web服务器内置的具有PHP的Silex

来自分类Dev

PHP内置Web服务器是否有内存限制?

来自分类Dev

停止Mac Mavericks上的内置php服务器-Livecode

来自分类Dev

PHP 5.4内置服务器上的友好URL

来自分类Dev

在服务器上复制Symfony项目?

来自分类Dev

在我的Web服务器上,如何在图形环境中运行脚本?

来自分类Dev

如何在同一服务器上配置多个symfony2项目(开发环境)

来自分类Dev

在WSL和本地Symfony Web服务器上使用https

来自分类Dev

Web服务器上的图像处理

来自分类Dev

在Web服务器上安装Jenkins

来自分类Dev

Web服务器上的本地数据

来自分类Dev

Ubuntu 16.04上的Web服务器?

来自分类Dev

Azure VM 上的 Web 服务器

来自分类Dev

在IntelliJ环境中模拟用于ajax的Web服务器

来自分类Dev

CSS从开发环境到Web服务器都不同

来自分类Dev

无法永久更改16.04服务器上的语言环境

来自分类Dev

在不同的服务器上使用SSIS环境变量

来自分类Dev

无法永久更改16.04服务器上的语言环境

来自分类Dev

Debian服务器上的假桌面环境?

来自分类Dev

环境层:用于设置Elastic Beanstalk TVM的Web服务器还是辅助服务器?