Contact Robert Hartung

x Cancel
posted 2 years ago

vhost creating with php5-fcgi for apache2

                    #!/bin/sh
    
    ROOT_WWW="/var/www"
    ROOT_USER="$ROOT_WWW/$1"
    NAME_DOCS="htdocs"    

    useradd -d "$ROOT_WWW/$1" $1
    
    adduser www-data $1
    
    mkdir -p "$ROOT_USER/conf"
    mkdir "$ROOT_USER/$NAME_DOCS"
    mkdir "$ROOT_USER/logs"
    mkdir "$ROOT_USER/tmp"
    mkdir "$ROOT_USER/php-fcgi"
    
    chmod 750 "$ROOT_USER"
    chown "root:$1" $ROOT_USER
    chown -R "$1:$1" "$ROOT_USER/$NAME_DOCS"
    chown "$1:$1" "$ROOT_USER/conf"
    chown "$1:$1" "$ROOT_USER/tmp"
    chown "$1:$1" "$ROOT_USER/logs"
    chown "$1:$1" "$ROOT_USER/php-fcgi"
    chmod -R 750 "$ROOT_USER/$NAME_DOCS"
    chmod 750 "$ROOT_USER/tmp"
    chmod 750 "$ROOT_USER/logs"
    chmod 750 "$ROOT_USER/php-fcgi"
    chmod 550 "$ROOT_USER/conf"
    
    cp php.ini "$ROOT_USER/conf/"
    # in my php.ini I set --VHOST-- to wherever the vhost belongs e.g:
    # open_basedir = /var/www/--VHOST--/htdocs/:/var/--VHOST--/tmp/
    # upload_tmp_dir = /var/www/--VHOST--/tmp
    # session.save_path = /var/www/--VHOST--/tmp
    
    sed 's/--VHOST--/$1/g' "$ROOT_USER/conf/php.ini" > TMPFILE && mv TMPFILE "$ROOT_USER/conf/php.ini"
    rm TMPFILE
    
    
    chown $1:$1 "$ROOT_USER/conf/php.ini"
    chmod 440 "$ROOT_USER/conf/php.ini"
    
    cat > $ROOT_USER/php-fcgi/php-fcgi-starter << EOF
    #!/bin/sh
    PHPRC="$ROOT_USER/conf/"
    export PHPRC
    export TMPDIR=$ROOT_USER/tmp
    exec /usr/bin/php5-cgi
    EOF
    
    chown $1:$1 $ROOT_USER/php-fcgi/php-fcgi-starter
    
    chmod 750 $ROOT_USER/php-fcgi/php-fcgi-starter
    
    chattr +i -V $ROOT_USER/php-fcgi/php-fcgi-starter
    
    cat > /etc/apache2/sites-enabled/$1 << EOF
    <VirtualHost *:80>
    ServerAdmin webmaster@$1
    ServerName $1
    ServerAlias www.$1
    SuexecUserGroup $1 $1
    AddHandler fcgid-script .php
    DocumentRoot "$ROOT_USER/$NAME_DOCS"
    DirectoryIndex index.htm index.html index.php
    <Directory "$ROOT_USER/$NAME_DOCS">
          AllowOverride all
      Options Indexes MultiViews FollowSymLinks +ExecCGI
      FCGIWrapper $ROOT_USER/php-fcgi/php-fcgi-starter .php
      Order allow,deny
      allow from all
    </Directory>
    ErrorLog $ROOT_USER/logs/error.log
    LogLevel warn
    CustomLog $ROOT_USER/logs/access.log combined
    ServerSignature On
    </VirtualHost>
    EOF
    
    echo "CREATED VHOST $1"
    
    # You should do:
    # passwd $1                
Raw

This is a little script I wrote a few minutes ago, it makes it really easy to create vhosts in your preferred directory :-) Saved me a lot of time so far!

posted 2 years ago

MySQL alternative for MySQL's built in RAND() function

http://www.rhcms.de/blog.php

DROP PROCEDURE IF EXISTS proc_get_random_post_id;

DELIMITER //

CREATE PROCEDURE proc_get_random_post_id (IN cnt INT)
BEGIN
  DECLARE max_id INTEGER;

  DECLARE EXIT HANDLER FOR SQLEXCEPTION
  BEGIN
    CALL proc_get_random_post_id(cnt);
  END;

  IF cnt >= 1 THEN
    DROP TEMPORARY TABLE IF EXISTS random;
    CREATE TEMPORARY TABLE random ( post_id INTEGER(11) unsigned, UNIQUE KEY(post_id) );

    insert_loop : LOOP
      IF cnt < 1 THEN
        LEAVE insert_loop;
      END IF;

      SELECT MAX(post_id) FROM posts INTO max_id;

      INSERT INTO random
        SELECT
         p.post_id
        FROM
          posts AS p
        JOIN
          (SELECT (RAND() *  max_id) AS random_id) AS r
        WHERE
          p.post_id >= r.random_id
        ORDER BY
          p.post_id
        LIMIT
          1;

      SET cnt = cnt - 1;
    END LOOP insert_loop;

    SELECT post_id FROM random;
  END IF;
END//

DELIMITER ;
Raw