Giter VIP home page Giter VIP logo

phalcon-vm's Introduction

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)

phalcon-vm's People

Contributors

eugene-manuilov avatar harabo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

phalcon-vm's Issues

Export / import sites

Implement ability to export site settings as a json file and ability to import it back. Only one site can be exported in a single json fIle.

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?

Bare site

Add ability to create a new site without using skeletons. Eventually it shoulD consist from a single index.php file with no content.

Dashboard shortcuts

Update dashboard to display services status and existing sites with ability to quickly switch to a service or a site

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]

phpMyAdmin

How to go to the web interface of phpMyAdmin?

Export settings

We need to implement ability to export all service related settings (not including sites and vagrant settings).

Import settings

Implement ability to import settings from a json file. It should import only service related settings (not including sites and vagrant settings)

Vagrant machine configuration

All basic vagrant settings (like cpus number, memory limit, ip address?, etc) should be configurable via Web interface.

Research PHPBrew integration

Investigate possibility to use PHPBrew to support multiple versions of PHP and ability to select specific version of PHP for a site.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.