In my other howto, I installed Apache, PHP and MongoDB. I now need to setup MySQL so that I can develop a WordPress theme and plugin on my local machine. Here are the few steps I used:
Apache, PHP and MongoDB on Mac OS X 10.6 Snow Leopard
MongoDB (from “humongous”) is a scalable, high-performance, open source, schema-free, document-oriented database.
There’s a lot of buzz brewing about it, so I wanted to give it a try with PHP on my development Mac. The following is how I went about installing Apache, PHP and MongoDB on Snow Leopard. You must have installed the Xcode developer tools (found on the Snow Leopard install DVD) and MacPorts for this to all work.
Enable PHP error logging
In php.ini:
display_errors = Off
log_errors = On
error_log = /var/log/php-errors.log
Make the log file, and writable by www-data:
sudo touch /var/log/php-errors.log
sudo chown www-data:www-data /var/log/php-errors.log
PHP and nginx on Ubuntu: the easy way
I’ve now changed my slice from running lighttpd to nginx. Here’s the simplest way, in around 6 commands, to get PHP up and running via FastCGI.
Install and setup
Install PHP 5:
sudo aptitude install php5-cgi
Install nginx:
sudo aptitude install nginx
Create PHP 5 FastCGI start-up script:
sudo nano /etc/init.d/php-fastcgi
Inside, put:
#!/bin/bash
BIND=127.0.0.1:9000
USER=www-data
PHP_FCGI_CHILDREN=15
PHP_FCGI_MAX_REQUESTS=1000
PHP_CGI=/usr/bin/php-cgi
PHP_CGI_NAME=`basename $PHP_CGI`
PHP_CGI_ARGS="- USER=$USER PATH=/usr/bin PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS $PHP_CGI -b $BIND"
RETVAL=0
start() {
echo -n "Starting PHP FastCGI: "
start-stop-daemon --quiet --start --background --chuid "$USER" --exec /usr/bin/env -- $PHP_CGI_ARGS
RETVAL=$?
echo "$PHP_CGI_NAME."
}
stop() {
echo -n "Stopping PHP FastCGI: "
killall -q -w -u $USER $PHP_CGI
RETVAL=$?
echo "$PHP_CGI_NAME."
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Usage: php-fastcgi {start|stop|restart}"
exit 1
;;
esac
exit $RETVAL
Make start-up script executable:
sudo chmod +x /etc/init.d/php-fastcgi
Launch PHP:
sudo /etc/init.d/php-fastcgi start
Launch at start-up:
sudo update-rc.d php-fastcgi defaults
That’s it. All installed and ready to go.
Test
In your server config, add the following:
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name;
include fastcgi_params;
}
Restart nginx:
sudo /etc/init.d/nginx restart
Create a file in your web root (in the example above, /var/www/nginx-default/test.php):
<?php
phpinfo();
Visit the page in your browser and you should see the standard PHP info page. And you’re done.
Source: Aberration
Authentication with CodeIgniter
Here’s how I do some basic authentication for a controller in CodeIgniter. It basically consists of creating a new class that extends the default Controller class. You then sub-class this on any controller that requires authentication.
Quick lighttpd, PHP, iMagick setup on Ubuntu 8.10 Intrepid
Install lighttpd:
sudo aptitude install lighttpd
Install PHP and ImageMagick:
sudo aptitude install php5-common php5-dev php5-mysql php5-sqlite php5-cgi php5-curl php5-gd php-pear libmagick9-dev
Install iMagick:
sudo pecl install imagick
Press enter on prompt.
Add the following to the bottom of /etc/php5/cgi/php.ini:
extension=imagick.so
Then:
sudo lighttpd-enable-mod fastcgi
sudo /etc/init.d/lighttpd reload
A simple PHP delicious REST example with pecl_http
<?php
$username = 'your_username';
$password = 'your_password';
$url = "https://$username:$password@api.del.icio.us/v1/posts/recent";
$request = new HttpRequest($url, HTTP_METH_GET);
$response = $request->send();
print $response->getBody();
?>
You’ll probably need to view the source in your browser to see the output.
The second argument isn’t required in this call, because HttpRequest defaults to a GET request anyway, but it’s just helpful to see where you can specify the different HTTP methods. The others being, post, put and delete.