Monday, December 15, 2008

Macbook Pro with PHP and symfony 1.2 - PDO support with mySQL

I have recently purchased a macbook pro and wanted to set up my web development environment on it. A lot of people seem to download MAMP, but I have (so far) being able to avoid this.

Opened Terminal, and Apache 2.2.9 is already installed. (use httpd -v to see this)
Use:
sudo -u root -s
to shell in as root and not have to write sudo everywhere.
apachectl start

I needed to get PHP 5 running, even though it was installed it needed enabling. I edited /etc/apache2/httpd.conf and uncommented:

LoadModule php5_module libexec/apache2/libphp5.so

then restarted apache using:
apachectl restart

Now for mySQL installation. I went to mySQL and downloaded the 'community edition' Mac package and installed it. I also installed the startup script that came with the download. This allowed me to start mySQL using:

/Library/StartupItems/MySQLCOM/MySQLCOM start

I wanted to be able to run PHP from the command line, so I added the necessary modifications to local environment variables using setvar - look this one up.

I needed PECL and PEAR so I followed this article to get it installed:
http://clickontyler.com/blog/2008/01/how-to-install-pear-in-mac-os-x-leopard/

Pear is now under /usr/local/bin/pear - this will be handy to know when specifying the location of symfony later.

Installed symfony using the guide here:
pear channel-discover pear.symfony-project.com
pear install symfony/symfony-1.2.1

I would recommend a newcomer to symfony should follow the tutorial here

When you get to day 3, you will face the command:
php symfony propel:insert-sql

This will not work with the error:
Some problems occurred when executing the task:
build-propel.xml:275:1: [wrapped: could not find driver]
Read the logs to fix them

I could not find any logs, but the problem was a lack of PDO support for mySQL. After searching around, I found articles where people had tried to recompile mysql, recompile php, modify apache to be 32 bit instead of 64 bit, and other ideas. All would possibly work, but all looked quite complicated. Some comments were given saying this may not work on Leopard etc. So I kept searching. I found this article:

http://www.procata.com/blog/archives/2007/10/28/working-with-php-5-in-mac-os-x-105/


Because PECL was already installed (with PEAR above), I tried:
pecl install PDO_MYSQL
(note this is case sensitive)

got an error:

ERROR: `make INSTALL_ROOT="/var/tmp/pear-build-root/install-PDO-1.0.3" install' failed
ERROR: `/usr/local/temp/PDO_MYSQL/configure' failed

so I needed to bypass the standard pecl install. I followed: http://discussions.apple.com/thread.jspa?threadID=1539743&tstart=75

but this had the wrong path for the location of mysql, so modified it to:

1. Download PDO_MYSQL / http://pecl.php.net/package/PDO_MYSQL
2. cd ~/Downloads/PDO_MYSQL-x.x.x/PDO_MYSQL-x.x.x
3. phpize
4. ./configure '--with-pdo-mysql=shared,/usr/local/mysql'
5. make install

I modified the existing /etc/php.ini file (if this doesn't exist, make a file named ~/Sites/phpinfo.php with within it, and go to http://localhost/phpinfo.php in your web browser. It should show you where php.ini is located.
I modified extension_dir to:
extension_dir = "/usr/lib/php/extensions/no-debug-non-zts-20060613"
and added the line:
extension=pdo_mysql.so

(ignore all the pdo_mysql.dll modules as they are for a PC).

Now restart apache using:
apachectl restart

You should be able to run:
symfony propel:insert-sql

And PDO support should display with mysql listed within it.

-----------

The problem with the above is that the command:
symfony propel:data-load
would not work and, it seems this was because of a fault with versioning of PDO.

So to fix all of this I decided upon Mac Ports, which required the Developer Tools on the OS X Leopard installation CD.

After installing this, I went to macports.org and downloaded the tar package and installed it.

The commands to install were:

port selfupdate

port install mysql5 +server

sudo -u root mysql_install_db5

port install apache2

sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist

cp /etc/apache2/httpd.conf /opt/local/apache2/conf/

also found this good tutorial:
http://trac.macports.org/wiki/howto/MAMP

AFTER install it told us to do this:
If this is your first install, you might want
cd /opt/local/apache2/modules
/opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so

* copied the php.ini in /etc/php.ini to to /opt/local/etc/php.ini

port install php5 +apache2 +mysql5

The above command took quite a while, basically copy the tutorial referenced above.

Location of old apache was:
/private/etc/apache2
new apache is:
/opt/local/apache2

To start APACHE:
/opt/local/apache2/apachectl -k start

to allow "apachectl start" to work from anywhere, modify the path in ~/.profile and add the line at the bottom:

export PATH=/opt/local/apache2/bin:$PATH

This will mean apachectl in this folder will be run instead of /usr/sbin

the php.ini file used is:
/private/etc/php.ini

Edit php.ini and modify the following line to read:
mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock

To run mysql5, use:
mysql5 -u root

You can also set up PHPMyadmin, which will be stored in /opt/local/www/phpmyadmin when you run:
port install phpmyadmin

and follow the documentation at: http://trac.macports.org/wiki/howto/MAMP

To get pear working, you need to modify what is shown in:
pear config-show
then you can modify with:
pear config-set attribute value

Saturday, June 21, 2008

UK Ubuntu 8 MythTV install with Nova-S-Plus

UK Ubuntu 8 MythTV install with Nova-S-Plus satellite card and a working satellite dish pointed at Astra.

References are:

Similar tutorial
http://stevepugh.co.uk/mythtv/

Older community MythTV documentation
https://help.ubuntu.com/community/MythTV_Feisty_Backend_Frontend
This suggests partitioning with certain file systems - this may be better than a "standard wipe everything" approach.

DVB and mplayer
http://davidwinter.me.uk/articles/2008/02/09/dvb-and-mplayer/

A good list of programs to check you have is available at:
http://www.mythic-beasts.com/~mark/random/mythtv/

If you have a new motherboard, make sure you plug in the sound plug from the front of the case, and ensure any on-board audio is enabled in the bios.

GET UBUNTU 8 installed

use the standard wipe everything approach from the disk

login

change the password for root, so you can use "su -" and not have to use sudo.
passwd root

change to root account.
su -

You should really do these, but I sometimes don't until the end:
apt-get upgrade
apt-get update

My kernel number is found as: 2.6.15-26-386
using:
uname -a

restart
do the update it requests in gui.

Now install the DVB utils so that you can confirm everything is working before trying to get MythTV to work:
apt-get install dvb-utils

mkdir /root/.szap
scan /usr/share/doc/dvb-utils/examples/scan/dvb-s/Astra-28.2E > /root/.szap/channels.conf
This should generate a list of channels in /root/.szap/channels.conf, this will take a while, let it run to the end.


CHANNEL groups I FOUND WERE:
12324 29950
11914 27500
11934
12285
12090
12148
10920 22000
12226 27500
12382
10935
12265
12187 = paracomedy
12207
11758
12168
12070 - sky box office
10861 - talksport
10743 - RTE 0 scrambled
10802 - bbc R5 Live - bbc1 scotland, wales
10847 -
11222 - urban tv
12031
11488 - info tv2
12643 - pitchgaming 2
10964 - five
12402 - 12199
10832 - ITV1 Border
10891 - ITV1 BorderSco
10906 - ITV3+1
10714 - ITV2_1
10758 - ITV1 Anglia E
11992 -
10729 - More 4
11642 - Flava


If the "channels.conf" file looks OK, verify you can find and lock on to a channel.:
cp /root/.szap ~
szap "BBC NEWS"
(where "BBC NEWS" is one of the lines in channels.conf)

get out of root, and back to the logged in user account (eg: named username) you were in before using su -.
exit

Try viewing video with mplayer:
apt-get install mplayer

initially run
mplayer dvb://
it will complain, but create the .mplayer directory, then:
cp /root/.szap/channels.conf ~/.mplayer/
mplayer dvb://

sudo apt-get install mythtv

don't bother entering a password for mysql. use all the defaults when installing.

Say yes, when asked if using other computers to run with MythTV.
don't make a password for the mysql root user, but I did, so read up about problems you may have when you set it.

instructs that to run backend, use: "sudo /etc/init.d/mythtv-backend start"

eo5PZpmi = mysql password for mythtv-network
stored in /etc/mythtv/mysql.txt

says to use: "sudo dpkg-reconfigure mythtv-common" if wanting other machine to use existing mythtv-network.

run:
mythtv-setup
- should ask you if you are ok with setting the user in the mythtv group.

Keep others as defaults.

GENERAL:
These should mostly be left at the default settings, although you may need to change (or create with appropriate permissions) the directories to hold recordings and hold the Live-TV buffers. For the UK, TV format should be PAL, VBI format should be PAL Teletext and the Channel frequency table should be europe-west. On the page marked "Job Queue (Host-Specific) I turn off "Allow Commercial Detection jobs" since I haven't found that the commercial detection works very well, and the mythcommflag processes are running more or less all the time.

CAPTURE CARDS:
Select (New capture card)
In Capture Card Setup, select Card type as: DVB DTV capture card (v3.x)
Press DiSEqC button
Select (Unconnected)
Select LNB
In LNB Configuration, keep defaults as Universal (Europe)

VIDEO SOURCES
Select (New video source)
Name it "vid"
Select Listings grabber as: "No grabber" for now
Channel frequency table: europe-west

INPUT
Select [DVB:0(DVBInput) -> (None)
Select Video source as: vid
Keep others as defaults
Select "scan for channels"
In Scan Configuration, select Scan Type as: Import channels.conf
File location: /root/.szap/channels.conf
select to scan, and wait about 15 minutes

exit and run:
mythfilldatabase - you may be asked to do this anyway.
mythbackend should also ask to run after all of this

run:
mythfrontend

Thursday, June 12, 2008

PDT and eclipse for symfony

> PDT has the following pre-reqs
>
> # Java 5 JRE
> # Eclipse SDK v3.3.1.1
> # EMF SDO XSD 2.3.1
> # GEF 3.3.1
> # DTP 1.5.1
> # WTP 2.0.1

Installing PDT - care of: KRavEN at http://www.symfony-project.org/forum/index.php/m/47986/

Download Eclipse Platform from here: http://download.eclipse.org/eclipse/downloads/drops/R-3.3.1. 1-200710231652/index.php
Get the "Platform Runtime Binary", you don't need one of the others as it just includes things you probably won't be using.

Download the attached bookmarks.xml from this thread.

Extract the Eclipse Platform Runtime archive to a folder and run the Eclipse binary in the folder. There is no installer to run.

In the menu go to Help-> Software Updates -> Find and Install

Bullet "Search for new features to Install" and click Next

Click the "Import Sites" button on the right side and choose the bookmarks.xml file you downloaded.

Check all the boxes in the list and click Finish at the bottom.

When it comes up with the list start at the bottom and open up each arrow. You only need to open the first arrow for each item. This is required for the "Select Required" to work.

Now check the first box for "Zend Update Site" and click "Select Required" on the right. Once it is finished and everything is checked, uncheck the "Zend Update Site" box.

Drill down into Spket and choose only Spket IDE.

Uncheck the outer checkboxes for "Subversive update site 0.7.x" and "Subversive update site 2.0.x".

Check the outer box for Symfoclipse.

Drill down into Subclipse and choose only Subclipse.

Drill down into Target Management Updates-> TM and RSE 2.0.2 and choose the protocols you want to have for Remote System Explorer.

If there are any unresolved dependencies at this point click "Select Required" again.

Finally click finish and have it install all the stuff.

When you're done you should be able to follow the directions in the symfony wiki for including symfony in PDT to get the code completion working. You'll also want to cleanup the update site list and remove all the duplicates as installing features adds new update sites to the list.

For javascript code completion for your favorite ajax library see the Spket.com site

The attachment can be found at:
http://www.symfony-project.org/forum/index.php/fa/543/

Monday, February 11, 2008

Thursday, January 03, 2008

ebay search

http://search.ebay.co.uk/ws/search/SaleSearch?fsoo=1&fsop=1&sacat=1049&satitle=beatles

http://open.api.ebay.com/shopping?callname=FindItemsAdvanced&version=527&siteid=3&appid=EBayUK38f-ec41-466e-8e5c-a2a92a56495&QueryKeywords=beatles&responseencoding=XML&CategoryID=1049