Put the following into your php.ini
[xdebug]
zend_extension="/Applications/MAMP/bin/php/php5.5.22/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so"
xdebug.profiler_enable=1
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.idekey=PHPSTORM
Showing posts with label php. Show all posts
Showing posts with label php. Show all posts
Thursday, April 9, 2015
Wednesday, July 17, 2013
Ansbile EC2 - setting up Nginx, MySQL, php, git
In this post, we will write a playbook that's going to set up a EC2 machine for a fully workable php environment.
Starting from a fresh machine with an attached ebs volume, we will do the following:
Begin by spinning a fresh EC2 AMI and attach a ebs volume to it. Read Ansible - how to launch EC2 instances and setup the php environment.
Format the new ebs volume with XFS and mount it as /vol
We will mount the new ebs volume /dev/xvdf as /vol and format it with XFS
- name: update machine with latest packages
action: command yum -y update
- name: install xfsprogs
action: yum pkg=xfsprogs state=latest
- name: format new volume
filesystem: fstype=xfs dev=/dev/xvdf
- name: edit fstab and mount the vol
action: mount name={{mount_dir}} src=/dev/xvdf opts=noatime fstype=xfs state=mounted
Install php, mysql and nginx
- name: install php
action: yum pkg=php state=latest
- name: install php-mysql
action: yum pkg=php-mysql state=latest
- name: install nginx
action: yum pkg=nginx state=latest
- name: ensure nginx is running
action: service name=nginx state=started
- name: install mysql server
action: yum pkg=mysql-server state=latest
- name: make sure mysql is running
action: service name=mysqld state=started
Create a mysql user and a database
- name: install python mysql
action: yum pkg=MySQL-python state=latest
- name: create database user
action: mysql_user user=admin password=1234qwer priv=*.*:ALL state=present
- name: create db
action: mysql_db db=ansible state=present
Copy the public and private keys into the targeted machine
We want the target machine to be able to do a git pull without username and password prompts.
mkdir ~/.ssh
ssh-keygen -t rsa -C "you@email.com"
You will see:
Two files will be generated: id_rsa, id_rsa.pub
Log in to Github and then Go to Account Settings -> SSH Keys
Add new key by giving it a name and pasting the content of id_rsa.pub
Test it by:
- name: install git
action: yum pkg=git state=latest
- name: copy private key
action: template src=~/.ssh/id_rsa.pub dest=~/.ssh/id_rsa.pub
- name: copy public key
action: template src=~/.ssh/id_rsa dest=~/.ssh/id_rsa
Checkout a project from github
- name: git checkout source
action: git repo=ssh://git@github.com:{your_git_repo}.git dest={{work_dir}} version=unstable
Full Ansible Playbook source:
Starting from a fresh machine with an attached ebs volume, we will do the following:
- Format the new ebs volume with XFS and mount it as /vol
- Install php, mysql and nginx
- Create a mysql user and create a database
- Copy the public and private keys into the targeted machine
- Checkout a project from github
Begin by spinning a fresh EC2 AMI and attach a ebs volume to it. Read Ansible - how to launch EC2 instances and setup the php environment.
Format the new ebs volume with XFS and mount it as /vol
We will mount the new ebs volume /dev/xvdf as /vol and format it with XFS
- name: update machine with latest packages
action: command yum -y update
- name: install xfsprogs
action: yum pkg=xfsprogs state=latest
- name: format new volume
filesystem: fstype=xfs dev=/dev/xvdf
- name: edit fstab and mount the vol
action: mount name={{mount_dir}} src=/dev/xvdf opts=noatime fstype=xfs state=mounted
Install php, mysql and nginx
- name: install php
action: yum pkg=php state=latest
- name: install php-mysql
action: yum pkg=php-mysql state=latest
- name: install nginx
action: yum pkg=nginx state=latest
- name: ensure nginx is running
action: service name=nginx state=started
- name: install mysql server
action: yum pkg=mysql-server state=latest
- name: make sure mysql is running
action: service name=mysqld state=started
Create a mysql user and a database
- name: install python mysql
action: yum pkg=MySQL-python state=latest
- name: create database user
action: mysql_user user=admin password=1234qwer priv=*.*:ALL state=present
- name: create db
action: mysql_db db=ansible state=present
Copy the public and private keys into the targeted machine
We want the target machine to be able to do a git pull without username and password prompts.
mkdir ~/.ssh
ssh-keygen -t rsa -C "you@email.com"
You will see:
Enter file in which to save the key (/root/.ssh/id_rsa):Just press Enter on the above prompts.
Enter passphrase (empty for no passphrase):
Two files will be generated: id_rsa, id_rsa.pub
Log in to Github and then Go to Account Settings -> SSH Keys
Add new key by giving it a name and pasting the content of id_rsa.pub
Test it by:
ssh -T git@github.comHere are the Ansible tasks:
- name: install git
action: yum pkg=git state=latest
- name: copy private key
action: template src=~/.ssh/id_rsa.pub dest=~/.ssh/id_rsa.pub
- name: copy public key
action: template src=~/.ssh/id_rsa dest=~/.ssh/id_rsa
Checkout a project from github
- name: git checkout source
action: git repo=ssh://git@github.com:{your_git_repo}.git dest={{work_dir}} version=unstable
Tuesday, July 16, 2013
Ansible - how to launch EC2 instances and setup the php environment
In this post, we will create a script that will launch an instance in the EC2 cloud and install php and nginx (Installing httpd is going to be very similar) on it.
First you will need to set be Ansible.
If you are using ubuntu, read Install Ansible on ubuntu EC2.
If you are using a Mac, read Installing and Running Ansible on Mac OSX and pinging ec2 machines.
You must:
Label this launch_playbook.yml
Execute the script.
First you will need to set be Ansible.
If you are using ubuntu, read Install Ansible on ubuntu EC2.
If you are using a Mac, read Installing and Running Ansible on Mac OSX and pinging ec2 machines.
You must:
- have python boto installed
- set up the AWS access keys in the environment settings
Adding a host
We will use the ec2 module. It runs against localhost, so we will add a host entry.
vi /etc/ansible/hosts
Append the following:
localhost ansible_connection=local
Launching a micro instance
Label this launch_playbook.yml
Execute the script.
ansible-playbook launch_playbook.ymlIn your AWS EC2 console, you will see an instance named ansible. Each task is executed in sequence.
Now add this new host in the ansible host file and label it webservers.
vi /etc/ansible/hosts
[webservers]
{the_ip_of_ec2_instance_we_just_created} ansible_connection=ssh ansible_ssh_user=ec2-user ansible_ssh_private_key_file={path_to_aws_private_key}
You don't have to do the above. In fact, you can use the group name "ec2-servers" for the following script. But the following script will need to be in the same file as the first script. I am just separating these files for easier configuration in the future.
Installing php, nginx, mysql
Label this configure_playbook.yml
Execute the script.
Remember to terminate the instance when you finish, else it will incur charges.
Execute the script.
ansible-playbook configure_playbook.ymlGo to the public address of this instance. You should see the nginx welcoming message.
Remember to terminate the instance when you finish, else it will incur charges.
Sunday, June 16, 2013
Composer Update doesn't install files
If you ever update with composer.phar and not seem to get any files fetched, it may be a cache issue.
Remove the composer cache folder.
Ex. rm -rf /root/.composer
Make sure you delete the whole .composer folder. Not just the cache folder inside.
Make sure you delete the whole .composer folder. Not just the cache folder inside.
Subscribe to:
Posts (Atom)