Today I discovered the PHP range function…
Monthly Archives: May 2014
Running Apache as ME!
On my development machine I want Apache to run under my user id so I can automatically generate files (and have permission to write them).
I configured Apache like this:
root@mercy:/etc/apache2# grep -R www-data . ./envvars:export APACHE_RUN_USER=www-data ./envvars:export APACHE_RUN_GROUP=www-data root@mercy:/etc/apache2# vim envvars export APACHE_RUN_USER=jj5 export APACHE_RUN_GROUP=jj5 root@mercy:/etc/apache2# apache2ctl graceful /var/lock/apache2 already exists but is not a directory owned by jj5. Please fix manually. Aborting. root@mercy:/etc/apache2# chown jj5:jj5 /var/lock/apache2 root@mercy:/etc/apache2# apache2ctl graceful
Easy-peasy!
Wait… that didn’t work. The problem was apache2ctl graceful didn’t pick up the new envvars file, this fixed it:
root@mercy:/etc/apache2# /etc/init.d/apache2 restart
Setting the MySQL timezone per connection
Reading about Setting the MySQL timezone per connection which I had to do like this:
db()->exec( "set time_zone = '+0:00'" );
MySQL Connection Character Sets and Collations
Reading about MySQL Connection Character Sets and Collations…
Linux RAM Disk
Reading about how to create a RAM disk on Linux:
# mount -o size=200M -t tmpfs none /mnt/tmpfs
PHP PDO MySQL Blob
Read PHP MySQL BLOB today to learn how to work with BLOBs. Basically:
public function insertBlob($filePath,$mime){
$blob = fopen($filePath,'rb');
$sql = "INSERT INTO files(mime,data) VALUES(:mime,:data)";
$stmt = $this->conn->prepare($sql);
$stmt->bindParam(':mime',$mime);
$stmt->bindParam(':data',$blob,PDO::PARAM_LOB);
return $stmt->execute();
}
function updateBlob($id,$filePath,$mime) {
$blob = fopen($filePath,'rb');
$sql = "UPDATE files
SET mime = :mime,
data = :data
WHERE id = :id";
$stmt = $this->conn->prepare($sql);
$stmt->bindParam(':mime',$mime);
$stmt->bindParam(':data',$blob,PDO::PARAM_LOB);
$stmt->bindParam(':id',$id);
return $stmt->execute();
}
public function selectBlob($id) {
$sql = "SELECT mime,
data
FROM files
WHERE id = :id";
$stmt = $this->conn->prepare($sql);
$stmt->execute(array(":id" => $id));
$stmt->bindColumn(1, $mime);
$stmt->bindColumn(2, $data, PDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);
return array("mime" => $mime,
"data" => $data);
}
info: mpt raid status change
Getting spammed courtesy my Debian VMWare image, notifying me of an “mpt raid status change”. Looked here and fixed the problem with:
# /etc/init.d/mpt-statusd stop # update-rc.d -f mpt-statusd remove
PHP Regex Pattern Modifiers
Today I needed the Pattern Modifiers documentation, particularly for ‘U’, i.e. ungreedy.
Hacker’s Delight
Heard about Hacker’s Delight, will look into it when I have more time…
Install Node and NPM
Today I followed these instructions to install Node.js and NPM:
echo "deb http://ftp.au.debian.org/debian wheezy-backports main" >> /etc/apt/sources.list apt-get update apt-get install nodejs-legacy curl --insecure https://www.npmjs.org/install.sh | bash