Vagrant configuration for PHP7, Phalcon 3.x and Zephir development.

Overview

Phalcon VM 2.0.1

Phalcon VM is an open source Vagrant configuration which contains wide range of tools required in modern web development. Like a Swiss Army Knife, Phalcon VM allows you to easily activate and use tools required for you project.

The primary goal of this project is to provide an approachable development environment with a modern server configuration for project written with PHP7 and Phalcon 3.x framework. The project also contains compiled Zephir executable, which allows you to go even further, beyond just PHP. However it doesn't mean that you have to use only Phalcon framework, you can use it with your framework of choice.

What will be installed?

After initial provision of your vagrant machine, you will have a fresh Ubuntu 16.04 instance with initial applications set required for very basic development. It includes Nginx server, PHP7 and its extensions (including Phalcon 3.x), Zephir, Composer (with Phalcon Dev Tools installed globally) and a few more. It will also contain a default site which will allow you to configure your environment as you want.

The default site will allow you to activate and configure Varnish cache, MySQL, PostgreSQL or MongoDb databases (along with phpMyAdmin and phpPgAdmin tools), Redis and/or Memcached caching systems (along with phpMemcachedAdmin tool), Gearman and/or RabbitMQ jobs servers, Elasticsearch and/or Sphinxsearch search engines.

Here is full list of what is and can be installed:

  1. Ubuntu 16.04 LTS (Xenial Xerus)
  2. nginx (mainline version)
  3. Varnish 4.x
  4. Phalcon PHP 3.x
  5. Phalcon Dev Tools 3.x
  6. Zephir 0.9.x
  7. php-fpm 7.0.x
  8. PHP memcache extension
  9. PHP xdebug extension
  10. PHP imagick extension
  11. PHPUnit
  12. MySQL
  13. PostgreSQL
  14. MongoDB
  15. Redis
  16. Memcached
  17. Gearman
  18. RabbitMQ
  19. Elasticsearch
  20. Sphinxsearch
  21. git
  22. subversion
  23. ngrep
  24. dos2unix
  25. Composer
  26. phpMyAdmin
  27. phpPgAdmin
  28. phpMemcachedAdmin
  29. Opcache Status
  30. Webgrind
  31. NodeJs
  32. Grunt
  33. Gulp

Setup Phalcon VM

  1. Start with any local operating system such as Mac OS X, Linux, or Windows.
  2. Install VirtualBox 5.0.x.
  3. Install Vagrant 1.8.5+.
    • vagrant will now be available as a command in your terminal, try it out.
    • Note: If Vagrant is already installed, use vagrant -v to check the version. You may want to consider upgrading if a much older version is in use.
  4. Clone or extract the Phalcon VM project into a local directory.
    • git clone [email protected]:eugene-manuilov/phalcon-vm.git phalcon-vm.
    • OR download and extract the repository zip file to a local directory on your computer.
  5. In a command prompt, change into the new directory with cd phalcon-vm.
  6. Start the Vagrant environment with vagrant up.
    • Be patient as the magic happens. This could take a while on the first run as your local machine downloads the required files.
    • Watch as the script ends, as an administrator or su password may be required to properly modify the hosts file on your local machine.
  7. Visit the default site in your browser, you should see a dashboard where you can select what tools are needed for your project.

Create Custom Site

You can easily create a new site in the default dashboard. To do this, go to the http://phalcon-vm/ site and click on + Add New Site link in the sidebar. After doing it you should see a popup which prompts you to enter new site details. So you need to enter required fields like site name, directory and domains to be able to create a new site. After entering that data you need to click on ADD button and new site will appear in the sidebar. Finally you need to click SAVE CHANGES button in the top right corner to save your changes on disk. After doing it your new site will be created on next provision. So the last step is to stop your current vagrant machine by using vagrant halt command and start it again with provisioning flag by using vagrant up --provision command.

Please, pay attention to the domains field in the site form. It allows you to enter multiple domains for your site. To do it, just separate your domains with spaces like this: example.dev test.example.dev jobs.example.dev. In this case all these domains will be properly added to your local maching hosts file and added to the nginx setup on your vagrant machine.

The new site form is also allows you to create new site using existing repository. Just enter a link to your repository into appropriate field and select proper VCS provider and it will be used to build your site on next provision. One caveat here: please, don't forget to copy your private SSH keys to the ssh/ folder if you want to use SSH connection to your repository.

Troubleshooting on Windows

Vagrant gets stucks

If any vagrant command gets stuck on your Windows machine, then you need to check your PowerShell version. Major version needs to be equal or grater than 3. Use $PSVersionTable.PSVersion to determine the engine version.

LICENSE

The MIT License (MIT)

You might also like...
Laravel package to search through multiple Eloquent models. Supports sorting, pagination, scoped queries, eager load relationships and searching through single or multiple columns.

Laravel Cross Eloquent Search This Laravel package allows you to search through multiple Eloquent models. It supports sorting, pagination, scoped quer

This script was made to aid the process of migrating PHP and MySQL based websites

This script was made to aid the process of migrating PHP and MySQL based websites. Works with most common CMSes.

A metadata catalog and search engine for geospatialized data

resto is a metadata catalog and a search engine dedicated to geospatialized data. Originally, it’s main purpose it to handle Earth Observation satellite imagery but it can be used to store any kind of metadata localized in time and space.

Phalcon Builder - is a packaging system that make it easy and quick to build Phalcon packages such as rpms, debs, etc. Phalcon's distribution that hosted at PackageCloud.
Phalcon Builder - is a packaging system that make it easy and quick to build Phalcon packages such as rpms, debs, etc. Phalcon's distribution that hosted at PackageCloud.

Phalcon Builder - is a packaging system that make it easy and quick to build Phalcon packages such as rpms, debs, etc. Phalcon's distribution that hos

Vagrant-boxes - Setup scripts and docs for my vagrant boxes, primarily aimed at Web/SilverStripe developement

zauberfisch's vagrant boxes zauberfisch/silverstripe-debian64 Debian 10 x86_64 LAMP Box with many extra features, pre-configured for SilverStripe Sour

Scotch Box is a preconfigured Vagrant Box with a full array of LAMP Stack features to get you up and running with Vagrant in no time.
Scotch Box is a preconfigured Vagrant Box with a full array of LAMP Stack features to get you up and running with Vagrant in no time.

Scotch Box is a preconfigured Vagrant Box with a full array of LAMP Stack features to get you up and running with Vagrant in no time.

Phalcon 3, PHP7, Docker sample starter application

Phalcon Docker Nginx starter app Docker image based on: Ubuntu 16.04 Phalcon 3 PHP 7 Nginx + PHP FPM Supervisord Dependencies Docker. For installation

Zephir is a compiled high level language aimed to the creation of C-extensions for PHP.

Zephir - is a high level programming language that eases the creation and maintainability of extensions for PHP. Zephir extensions are exported to C c

Zephir is a compiled high level language aimed to the creation of C-extensions for PHP.

Zephir - is a high level programming language that eases the creation and maintainability of extensions for PHP. Zephir extensions are exported to C c

Vagrant is a tool for building and distributing development environments.

Vagrant Website: https://www.vagrantup.com/ Source: https://github.com/hashicorp/vagrant HashiCorp Discuss: https://discuss.hashicorp.com/c/vagrant/24

A Phalcon paginator adapter for Phalcon Collections

Phalcon Collection Paginator A Phalcon paginator adapter for Phalcon Collections Why create this? Being familiar with the various Pagination data adap

Setupify is a Phalcon provisioning and development tool.
Setupify is a Phalcon provisioning and development tool.

Setupify Provisioning Tool WARNING: Setupify is currently in a state of experimentation. Use tag release. Setupify is a collection of bash scripts for

EMR and PM Software written in PHP7

ReadMe IMWEMR is EMR/PM software, along with integrated iascemr (surgerycenter) and optical, repo is ready and preconfigured for subdomain http://demo

🧾 Online test site with the human sciences theme. Using: HTML5, CSS3, Js., PHP7 and MySQL. 🚀
🧾 Online test site with the human sciences theme. Using: HTML5, CSS3, Js., PHP7 and MySQL. 🚀

form-ciencias-humanas 🚀 Technologies Lunacy HTML5 CSS3 PHP7 MYSQL Animate.css Illustrations from icons8: Earth care from Anna Antipina Earth and Moon

PHP 祖传代码跑路拯救者,支持 PHP5 & PHP7
PHP 祖传代码跑路拯救者,支持 PHP5 & PHP7

PHP 祖传代码跑路拯救者,支持 PHP5 & PHP7 以下是我的线上实测版本 5.3.29 CLI 5.3.29 PHP-FPM 5.4.32 CLI 5.4.32 PHP-FPM 5.6.40 CLI 5.6.40 PHP-FPM 7.2.5 CLI 7.2.5 PHP-FPM 安装 如果安装

Magento2 + Varnish + PHP7 + Redis + SSL (cluster ready)

Docker Magento2: Varnish + PHP7 + Redis + SSL cluster ready docker-compose infrastructure Infrastructure overview Container 1: MariaDB Container 2: Re

The fastest pure PHP database framework with a powerful static code generator, supports horizontal scale up, designed for PHP7
The fastest pure PHP database framework with a powerful static code generator, supports horizontal scale up, designed for PHP7

Maghead 4.0.x IS CURRENTLY UNDER HEAVY DEVELOPMENT, API IS NOT STABLE Maghead is an open-source Object-Relational Mapping (ORM) designed for PHP7. Mag

xhprof for PHP7

xhprof for PHP7 XHProf is a function-level hierarchical profiler for PHP and has a simple HTML based navigational interface. The raw data collection c

A QR Code generator for PHP7.4+

chillerlan/php-qrcode A PHP 7.4+ QR Code library based on the implementation by Kazuhiko Arase, namespaced, cleaned up, improved and other stuff. Docu

Comments
  • Composer error while vagrant up

    Composer error while vagrant up

    default: Notice: /Stage[main]/Phalconvm::Tools::Composer/Exec[composer-config]/returns: executed successfully default: Error: '/usr/bin/composer -q global require codeception/codeception' returned 1 instead of one of [0] default: Error: /Stage[main]/Phalconvm::Tools::Composer/Exec[codeception]/returns: change from notrun to 0 failed: '/usr/bin/composer -q global require codeception/codeception' returned 1 instead of one of [0]

    opened by maxi032 0
  • Release 2.0-beta3

    Release 2.0-beta3

    • Added ability to select what port should be forwarded
    • Added auto-generation of blowfish secret for phpMyAdmin
    • Properly implemented Varnish setup
    • Made minor improvements in UI
    opened by eugene-manuilov 0
  • Infinite loop when running `vagrant up`

    Infinite loop when running `vagrant up`

    Hello @eugene-manuilov,

    I have an issue with vagrant up after cloning your repository:

    Yaroslavs-MacBook-Pro:yaro$ vagrant up
    Installing plugins: vagrant-hostsupdater vagrant-vbguest
    Installing plugins: vagrant-hostsupdater vagrant-vbguest
    Installing plugins: vagrant-hostsupdater vagrant-vbguest
    Installing plugins: vagrant-hostsupdater vagrant-vbguest
    Installing plugins: vagrant-hostsupdater vagrant-vbguest
    Installing plugins: vagrant-hostsupdater vagrant-vbguest
    ...
    and so on
    

    Do you have any idea what is this about?

    opened by glodov 0
Releases(2.0.1)
Owner
Eugene Manuilov
Eugene Manuilov
Sphinx Search library provides SphinxQL indexing and searching features

Sphinx Search Sphinx Search library provides SphinxQL indexing and searching features. Introduction Installation Configuration (simple) Usage Search I

Ripa Club 62 Mar 14, 2022
Store and retrieve objects from Algolia or Elasticsearch

Store and retrieve objects from a search index This is an opinionated Laravel 5.1 package to store and retrieve objects from a search index. Currently

Spatie 440 Dec 30, 2022
Unmaintained: Laravel Searchy makes user driven searching easy with fuzzy search, basic string matching and more to come!

!! UNMAINTAINED !! This package is no longer maintained Please see Issue #117 Here are some links to alternatives that you may be able to use (I do no

Tom Lingham 533 Nov 25, 2022
Easily add weighted searches through model attributes and relationships

Laravel Searchable ?? Easily add weighted searches through model attributes and relationships. This package currently supports MySQL and PostgreSQL. I

H-FARM 93 Nov 1, 2022
Build and execute an Elasticsearch search query using a fluent PHP API

PACKAGE IN DEVELOPMENT, DO NOT USE YET Build and execute ElasticSearch queries using a fluent PHP API This package is a lightweight query builder for

Spatie 94 Dec 14, 2022
symfony solarium integration and solr management

solarium-bundle symfony bundle for solarium integration and solr management. current state of this bundle for now this bundle is me messing about with

null 2 Jan 11, 2022
Fulltext indexing and searching for Laravel

Laravel fulltext index and search This package creates a MySQL fulltext index for models and enables you to search through those. Install Install with

SWIS 171 Jan 4, 2023
Search among multiple models with ElasticSearch and Laravel Scout

For PHP8 support use php8 branch For Laravel Framework < 6.0.0 use 3.x branch The package provides the perfect starting point to integrate ElasticSear

Sergey Shlyakhov 592 Dec 25, 2022
This package offers advanced functionality for searching and filtering data in Elasticsearch.

Scout Elasticsearch Driver ?? Introducing a new Elasticsearch ecosystem for Laravel. ?? This package offers advanced functionality for searching and f

Ivan Babenko 1.2k Dec 20, 2022
This is an open source demo of smart search feature implemented with Laravel and Selectize plugin

Laravel smart search implementation See demo at: http://demos.maxoffsky.com/shop-search/ Tutorial at: http://maxoffsky.com/code-blog/laravel-shop-tuto

Maksim Surguy 215 Sep 8, 2022