This is a build pack provides Zend Server on Cloud Foundry. Current version is 6.1. In the future the web server and Zend Server binaries will be probably be moved to the stack. This will save space for each container and make pushes and restart almost instant. For the time being they are included in the build pack for portability and ease of installation.
- Zend Server 6.1 Enterprise edition.
- Zend Server 6.1 configuration files
- PHP 5.4
- Nginx web server
You can optionally install the cartridge in yout local cloud foundry installation if you want it to be available as a system build pack. This enables cartridge "detection" and adds it to the menu of cartridges presented by the cf utility. If you don't wish to install then skip this stage and go directly to the usage section.
- Working cloud foundry v2 environment with dea_ng and gorouter
- The lucid64 cloud foundry stack should be installed and enabled - check settings in /vagrant/dea_ng/config/dea.yml
- xz compression utility - it's installed automatically by vagrant if you follow the guide below
The buildpack is tested against a system generated by the vagrant installer: http://blog.cloudfoundry.com/2013/06/27/installing-cloud-foundry-on-vagrant/
Clone the git repo into the buildpack directory on your dea_ng node using the command:
git clone https://github.com/davidl-zend/zend-server-mysql-buildpack-dev
Alternatively you can clone the repo into a webserver in your environment and specify the buildpack to the cf client.
f.e cf push --buildpack=http://url-to-cloned-repo
or (you can save this value in the app's manifest.yml).
- Create a folder on your workstation and "cd" into it.
- Create an empty file named "zend_server_php_app" (if you don't do this then you'll have to manually specify which buildpack to use for the app).
- Issue the
cf push --buildpack=https://github.com/davidl-zend/zend-server-mysql-buildpack-dev
command (choose to save your manifest when asked to by the cf client).It is recommended that you allocate at least 512M of RAM. You can optionally bind a mysql service (cleardb/mysql/MariaDB) to the app - this will enable advanced experimental features such as app scaling, persistence of settings changed using the gui, persistence of apps deployed using Zend Server's deployment mechanism. - Edit the "manifest.yml" that was generated by step 3 - add the "env" section and set the values to be used for the Zend Server GUI password.
---
env:
ZS_ACCEPT_EULA: 'TRUE'
ZS_ADMIN_PASSWORD: '1234'
applications:
- name: dave2
instances: 1
memory: 512M
host: dave2
domain: vcap.me
path: .
- wait for the app to start.
- Once the app is started you can access the Zend Server GUI at http://url-to-your-app/ZendServer, For example : http://dave2.vcap.me/ZendServer . If you forgot to perform step 4 then the password for the GUI will be "changeme".
- Enter a user name and password to use to authenticate with the GUI.
- If you saved your manifest in step 3 then you can issue the "cf push" command without specifying the --buildpack parameter to update your app.
"cf set-env dave1 ZS_ADMIN_PASSWORD 1234"
- Code tracing might not work properly in this version.
- Several issues might be encountered if you don't bind mysql providing service to the app (cleardb/mysql/MaraiaDB):
- You can change settings using the gui and apply them - but they won't survive application pushes and restarts nor will they be propagated to new application instances.
- Application packages deployed using Zend Server's deployment mechanism (zpk packages) will not be propagated to new app instances.
- Zend Server will not operate in cluster mode.
- Application generated data is not persistent (this is a limitation of Cloud Foundry) unless saved to a third party storage provider (like S3).
- Mysql is not used automatically - If you require MySQL then you'll have to setup your own server and configure your app to use it.
- Each container has their own full copy of Zend Server at the moment so droplet size is about 161MB for an empty app (this should not be an issue in public cloud foundry platforms).