Tag Archives: PHP

Installing LAMP on Ubuntu

6 Sep

So I been getting rather annoyed with CentOs recently, mainly due to the lack of PHP support above 5.1.6, especially with all the cool features of 5.3. Also I always seem to have massive trouble installing anything like Mcypt or Memcache.

So I thought I’d give Ubuntu a go and I’m now a convert! Everything went smoothly, not one issue or problem. The support forums are brilliant and almost all questions have already been answered. I dont know whether I’ve just got lucky (I guess only time will tell) but Ubuntu is now my first port of call when setting up a new server.

Below is a line by line tutorial on how I got setup with Ubuntu 10.04 Lucid. I don’t go into too much details on how to edit the files using nano or vi but you can have a look on my previous posts or online, otherwise you can sftp in using root and change the files that way, (my preferred method).

Install Lamp on Ubuntu

sudo tasksel install lamp-server
You will need to enter a root mysql password for mysql

Change Apache Default Web Location on Ubuntu

If you need to change the default root location from /var/www to something else you can do so in the following file location. This is useful for using frameworks such as Zend Framework.

/etc/apache2/sites-available/default

Create file and add Fully Qualified Domain Name to Apache config (auto adds all in conf.d)

Create a new file call fqdn in:

/etc/apache2/conf.d/

In the top of the file write the following where mydomain.com is the domain name pointing to this server.

servername mydomain.com

Enable mod_rewrite on Ubuntu

a2enmod rewrite

Edit “AllowOverride None” for default site (usually the first 2 found on line 4 and line 10). Change to the following

AllowOverride All

Found in:

/etc/apache2/sites-available/default

Disable Directory Listing on Ubuntu

Inside: /etc/apache2/sites-available/default
Add "-" before the word Indexes

Options -Indexes

Restart Apache on Ubuntu

sudo /etc/init.d/apache2 restart

Install Memcached on Ubuntu

apt-get install memcached
apt-get install php5-memcache

Install Mcrypt on Ubuntu

sudo apt-get install php5-mcrypt

Install APC on Ubuntu

apt-get install php-apc
/etc/init.d/apache2 restart

When you get erros you need to type

apt-get install re2c
apt-get install gawk

Restart Apache

sudo /etc/init.d/apache2 restart

Other Useful Info on Ubuntu

PHP.ini Location in Ubuntu

/etc/php5/apache2/php.ini

How to install Memcached on Xampp on Windows 7

26 Aug

For one of my Zend Framework web applications I’m going to install memcached. I am currently using file cache however think memcached is a much better way to go. This post is one in a series:

  1. Installing Memcached on Windows 7 and Xampp
  2. Setting up Memcached Cache in Zend Framework
  3. Installing Memcached on Centos 5.

Installing Memcached on Xampp and Windows 7

1a. Go to your php.ini file usually located in C:/xampp/php/php.ini
find this line:

;extension=php_memcache.dll

and replace it with:

extension=php_memcache.dll

1b. If you cannot find this line simply add the following line to below where all the ;extension= lines.

extension=php_memcache.dll

2.  Add the following to just below the new line

[Memcache]
memcache.allow_failover = 1
memcache.max_failover_attempts=20
memcache.chunk_size =8192
memcache.default_port = 11211

3. Download the necessary php_memecache.dll file from the following location.


http://downloads.php.net/pierre/

For windows 7 I used the following file:


http://downloads.php.net/pierre/php_memcache-cvs-20090703-5.3-VC6-x86.zip

4. Unzip the php_memcache.dll file and put it into your php ext folder. Usually C:/xampp/php/ext/

5. Download memcached for windows here (make sure it’s the win32 binary):


http://code.jellycan.com/memcached/

6. Unzip and put the memcache.exe file into a desired directory (e.g. c:/memcached/)

7. Open command line in Windows Administrator Mode.

Click start, type in ‘Search programs and Files’ box, wait for the program cmd.exe to appear, right hand click on the icon and select run as administrator

8. Install the memcache service

Type the following into the command line

c:\memcached\memcached.exe -d install

If you dont get any errors it means it’s worked.

9. Start memcached

Type the following into the command line

c:\memcached\memcached.exe -d start, or net start “memcached Server”

10. Restart Xampp Apache

11. Test Memcache

Create a php file and paste the following code. Then go to the page. If you do not see any errors then it has worked.

<?php
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");

$version = $memcache->getVersion();
echo "Server's version: ".$version."<br/>\n";

$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;

$memcache->set('key', $tmp_object, false, 10) or 
die ("Failed to save data at the server");
echo "Store data in the cache (data will expire in 10 seconds)
<br/>\n";

$get_result = $memcache->get('key');
echo "Data from the cache:<br/>\n";

var_dump($get_result);
?>

12. Just in case it doesn’t work: One other thing I did was to run the C:/memcached/memcached.exe file as administrator. This opens the ports on the windows firewall which might solve some problems.

Enable mod_rewrite in xampp

25 Aug

For some reason my install of XAMPP didn’t have mod_rewrite automatically enabled? Not really sure why  but basically below are the instructions on how to enable .htaccess mod_rewrite in xampp.

1. Go to the directory of installation <C:\xampp>\apache\conf

2. Open and edit httpd.conf in a text editor

3. Find the line which contains

#LoadModule rewrite_module modules/mod_rewrite.so

and (uncomment) change to

LoadModule rewrite_module modules/mod_rewrite.so

4. Find all occurrences of

AllowOverride None

and change to

AllowOverride All

I think it appears 2 or 3 times on the configuration file.

5. Restart xampp

That’s it you should be good to go.

PHP Soap Server Error – Procedure not present

7 Jul

I’m currently building a soap service using zend framework. I am developing on a local windows envirment using xampp. When adding a new method to the web service class I was able to call it locally and everything worked a treat, however as soon as I uploaded it to the Centos box it broke with the following error:

"Procedure 'xxx' not present"

Error would look more or less like this:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Server</faultcode>
<faultstring>Procedure 'gettwotandomitems' not present</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Basically PHP is caching the generated WSDL file and you need to delete the cache. All of the cached files for me where kept in /tmp however you can double check by looking in the phpinfo() file.

To fix that problem delete all of the cahced files, then try the soap call again and everything should work fine.

Hope it helps.

Credit goes to: http://artur.ejsmont.org/blog/content/php-soap-error-procedure-xxx-not-present

How to edit php.ini from ssh

18 Jun

Type:

1. “cd /etc”
2. “ls”

Check that there is the php.ini listed if not you will have to ask your hosting provider where it is.

3. “vi php.ini”

Find the bit in php.ini you would like to edit.

4. “i” – This enables you to edit the php.ini file

5. After changing the file, please Esc.

6: “:wq” – (w = saves the file, q = quit)

7. reboot your server and your done.