Symfony 3 является высокопроизводительным PHP фрэймворком с открытым исходным кодом и используется для разработки веб — приложений 2.0, позволяет разрабатывать быстрее и лучше , чем программное обеспечение с flat PHP.
В этом учебнике мы шаг за шагом, покажем вам , как легко установить framework Symfony 3 с Nginx на вашем основе виртуального сервера Ubuntu.
На момент написания этого учебника, последняя стабильная версия Symfony 3.0.1 и требует:
Если Apache установлен на вашем сервере, остановите службу Apache и удалить пакеты Apache:
/etc/init.d/apache2 stop apt-get remove apache2*
Убедитесь , что ваш Ubutu VPS полностью в актуальном состоянии, используя следующие команды:
apt-get update apt-get upgrade
Для того чтобы установить Nginx, PHP-FPM, curl и MySQL на вашем сервере, выполните следующую команду:
apt-get install nginx php5-fpm php5-cli php5-mcrypt php5-gd curl mysql-client-5.5 mysql-server-5.5 mysql-server-core-5.5
Найдите файл конфигурации PHP с помощью следующей команды:
php5-fpm -i | grep php.ini Configuration File (php.ini) Path => /etc/php5/fpm Loaded Configuration File => /etc/php5/fpm/php.ini
Отредактируйте конфигурационный файл /etc/php5/fpm/php.ini с помощью следующей команды:
vi /etc/php5/fpm/php.ini
Затем, добавите/измените следующие строки:
memory_limit = 128M cgi.fix_pathinfo = 0 safe_mode = Off max_execution_time = 120 max_input_time = 120 date.timezone = "Europe/Moscow"
Выполните следующую команду, чтобы перезапустить сервис PHP-FPM для того, чтобы изменения вступили в силу:
/etc/init.d/php5-fpm restart
Установите последнюю стабильную версию Symfony на виртуальном сервере, используя следующие команды:
sudo curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony sudo chmod a+x /usr/local/bin/symfony
Создайте новый проект Symfony:
symfony new project_name
mv /project_name /var/www/your-domain.com
Установите правильную собственность файлов и директорий внутри директории ‘/var/www/your-domain.ru‘:
chown chown www-data:www-data -R /var/www/your-domain.com/
Из соображений производительности, наша рекомендация состоит в том, чтобы запустить PHP-FPM в режиме сокета, вместо доступа через <IP_address>: ПОРТ.
Удалите блок сервера Nginx по умолчанию, а затем создайте новый файл конфигурации Nginx и добавьте следующий виртуальный блок для вашего доменного имени :
rm /etc/nginx/sites-enabled/default vi /etc/nginx/sites-available/your-domain.ru
и добавьте следующие строки:
server { listen 80; server_name your-domain.ru; client_max_body_size 20M; root /var/www/your-domain.ru/web; index index.php index.html; access_log /var/log/nginx/your-domain.ru-access.log; error_log /var/log/nginx/your-domain.ru-error.log; set $yii_bootstrap "index.php"; charset utf-8; location / { try_files $uri @rewriteapp; } location @rewriteapp { rewrite ^(.*)$ /app.php/$1 last; } location ~ ^/(app|app_dev|config)\.php(/|$) { fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_split_path_info ^(.+\.php)(/.*)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param HTTPS off; } location ~ \.php { fastcgi_index index.php; fastcgi_split_path_info ^(.+\.php)(.*)$; if (-f $document_root$fastcgi_script_name){ set $fsn $fastcgi_script_name; } include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location ~ /\. { deny all; access_log off; log_not_found off; } }
Для того чтобы включить вновь созданный блок Nginx, создайте новую символическую ссылку с помощью следующей команды:
ln -s /etc/nginx/sites-available/your-domain.ru /etc/nginx/sites-enabled/your-domain.ru
Проверьте конфигурацию Nginx:
# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
и перезапустите веб-сервер Nginx для того, чтобы изменения вступили в силу:
/etc/init.d/nginx restart
Откройте http://your-domain/app.php и вы должны получить доступ к странице приветствия Symfony 3. Для того, чтобы узнать, как создать свою первую страницу в Symfony прочитать документацию здесь.
Все. framework установлен на Ubuntu 14.04.