主页/PHP笔记/PHP问答/框架Symfony/如何将Symfony应用部署到Ubuntu服务器上

如何将Symfony应用部署到Ubuntu服务器上

Bug编译狮

Bug编译狮

将Symfony应用部署到Ubuntu服务器上是一个相对复杂的过程,但以下是一些基本的步骤和建议:

1. 确保你的系统是最新的

sudo apt update
sudo apt upgrade -y

2. 安装必要的软件包

sudo apt install apache2 php php-mysql git unzip curl -y

3. 配置Apache2

sudo nano /etc/apache2/sites-available/000-default.conf

找到 <VirtualHost *:80> 块,并添加以下配置:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/symfony_app
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

保存并退出编辑器。

4. 创建Symfony项目

如果你还没有创建Symfony项目,可以使用Composer来安装:

cd /var/www/html/
composer create-project symfony/skeleton my_symfony_app --prefer-dist

5. 配置MySQL数据库

sudo mysql_secure_installation

按照提示进行操作,设置root密码和其他安全选项。

6. 运行数据库迁移

进入项目目录并运行迁移命令:

cd /var/www/html/my_symfony_app
php bin/console doctrine:migrations:migrate

7. 启动Nginx(可选)

如果需要使用Nginx作为反向代理,可以安装并配置它:

sudo apt install nginx -y
sudo nano /etc/nginx/sites-available/default

添加以下配置:

server {
    listen 80;
    server_name your_domain.com;

    root /var/www/html/my_symfony_app/public;
    index index.php index.html index.htm;

    location = /favicon.ico { access_log off; }
    location = /robots.txt { access_log off; }

    location ~ /.ht {
        deny all;
    }

    try_files $uri $uri/ /index.php?$query_string;
}

location ~ .php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}

保存并退出编辑器。

8. 测试配置

sudo systemctl restart apache2
sudo systemctl restart nginx

访问你的域名或IP地址,确保Symfony应用正常工作。

示例代码:配置PHP-FPM

如果你使用的是较旧的PHP版本,可能需要手动配置PHP-FPM。以下是一个简单的示例:

  1. 编辑/etc/php/7.4/fpm/pool.d/www.conf文件:
[www]
listen = 9000
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 30
  1. 重启PHP-FPM服务:
sudo systemctl restart php7.4-fpm

通过以上步骤,你应该能够成功地将Symfony应用部署到Ubuntu服务器上。根据你的具体需求,你可能还需要进一步调整配置和优化。

黑板Bug讲师

黑板Bug讲师

介绍

部署一个使用Symfony框架的应用程序到Ubuntu服务器涉及几个关键步骤。本教程将从预置条件指导您完成过程,从成功运行您的Symfony应用程序到Ubuntu服务器上。我们假设您已经有一个准备好的Symfony应用。

前置条件

您的Symfony应用。

您的服务器需要的SSH凭证。

基本的命令行知识。

请通过终端访问您的Ubuntu服务器。

VPS(虚拟私有服务器)或运行Ubuntu的物理服务器。

主要步骤

步骤1:设置服务器

首先,更新包管理器的数据并升级任何已有的软件包:

sudo apt-get update
sudo apt-get upgrade

在服务器包更新后,安装必要的软件:

sudo apt-get install apache2 php libapache2-mod-php php-cli
sudo apt-get install php-intl php-xml php-mysql php-mbstring php-curl php-zip

启用Apache的rewrite模块,以允许Symfony的.htaccess重定向功能:

sudo a2enmod rewrite

步骤 2:数据库设置(可选)

如果你的应用程序使用数据库,安装MySQL或MariaDB并创建项目的数据库:

sudo apt-get install mysql-server
mysql -u root -p
CREATE DATABASE symfony;
GRANT ALL PRIVILEGES ON symfony.* TO 'symfony_user'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
EXIT;

步骤 3:配置 Apache

创建您的Symfony应用程序的虚拟主机配置:

<VirtualHost *:80>
    ServerName yourdomain.com
    DocumentRoot /var/www/symfony/public
    <Directory /var/www/symfony/public>
        AllowOverride All
        Order Allow,Deny
        Allow from All
    </Directory>
</VirtualHost>

启用站点并重启Apache以加载新配置:

sudo a2ensite yourdomain.conf
sudo systemctl restart apache2

步骤 4:部署 Symfony 应用程序

将Symfony应用程序传输到服务器:使用rsync或FTP。

rsync -avz /path/to/symfony user@yourserver:/var/www/symfony

设置Symfony的var目录的正确权限:

sudo chown -R www-data: /var/www/symfony/var

安装Composer依赖(如果未安装,请首先确保已安装它):

cd /var/www/symfony
composer install --no-interaction --prefer-dist --optimize-autoloader

步骤 5:环境配置

创建一个环境变量文件来存储敏感信息:

cp /var/www/symfony/.env /var/www/symfony/.env.local

编辑 .env.local 文件,设置生产所需的参数:例如数据库URL。

nano /var/www/symfony/.env.local

高级配置(CI/CD)

在高级场景下,你可以使用工具如Jenkins、GitLab CI/CD或GitHub Actions来设置持续集成/持续部署(CI/CD)管道。确保你的应用代码存储在一个Git仓库中,并自动化测试和部署流程。

这是一个使用GitHub Actions脚本的基本示例:

name: Symfony CI

on:
  push:
    branches: [ master ]

tasks:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        php: ['7.4']

    steps:
    - uses: actions/checkout@v2
    - name: Setup PHP with extensions
      uses: shivammathur/setup-php@v2
      with:
        php-version: 
    - name: Validate composer.json and composer.lock
      run: composer validate
    - name: Install dependencies
      run: composer install --prefer-dist --no-progress --no-suggest
    - name: Execute tests
      run: ./vendor/bin/simple-phpunit

结论。

按照这些步骤,您成功地在Ubuntu服务器上部署了Symfony应用。请记得定期维护您的应用程序,包括更新依赖项、应用安全补丁和优化服务器性能。

长工码奴1523

长工码奴1523

要在Ubuntu服务器上部署Symfony应用,你需要遵循以下步骤:

1. 安装必要的软件包

首先,确保你的服务器满足以下要求:

  • PHP 7.4 或更高版本(建议使用 PHP 8.0)。
  • Git 工具。

安装所需的软件包:

sudo apt-get update
sudo apt-get install -y git php7.4-fpm libapache2-mod-php7.4 php7.4-mbstring php7.4-zip php7.4-curl php7.4-gd php7.4-bcmath php7.4-xml php7.4-intl php7.4-cli php7.4-mysql php7.4-soap php7.4-xdebug php7.4-curl php7.4-xmlrpc php7.4-ldap

2. 配置Apache服务器

创建一个名为 sites-available 的文件夹,并添加以下内容来配置Apache服务器:

sudo nano /etc/apache2/sites-available/symfony.conf

然后,将以下内容替换为你的服务器环境设置和应用程序的URL:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

<VirtualHost *:80>
    ServerName yourdomain.com
    ServerAdmin webmaster@example.com

    # Apache configuration goes here...

    <Directory "/var/www/html">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
    </Directory>

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

3. 创建虚拟主机目录

在 Ubuntu 上创建一个新目录,例如 /var/www/html 来存放 Symfony 应用程序的内容。

sudo mkdir -p /var/www/html

4. 更新PHP配置

在服务器上更新 PHP 配置文件,使 PHP 能够处理 HTTP 请求。

sudo nano /etc/php/7.4/fpm/php.ini

将以下行更改为适用于你的 PHP 版本的值:

extension=php_mbstring.dll

并保存更改。

5. 运行防火墙规则

确保允许外部访问到你的服务器上的 Symfony 应用程序。打开防火墙规则,使其允许任何 IP 地址进行 HTTP 访问。

sudo ufw allow 80/tcp
sudo ufw default deny
sudo ufw default allow from any

6. 部署 Symfony 应用

运行以下命令来部署 Symfony 应用:

sudo ln -s /usr/share/nginx/html /var/www/html/
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
sudo service apache2 restart

7. 检查与验证

运行以下命令检查您的应用程序是否正常工作:

curl http://yourdomain.com

如果一切正常,你应该能看到 Symfony 应用程序的欢迎页面。

完成上述步骤后,你的 Symfony 应用应已成功部署到 Ubuntu 服务器上。