User login

Complete

To be used with care. Pages are complete only when they meet the posting guidelines.

How to give a user global FTP privileges (with vsftpd)

This guide applies to CentOS (a generic version of Red Hat Enterprise Linux, or RHEL) and vsftpd.

There's actually not much reason to give a Linux user FTP access to your entire server; each user can access its own directory, which is fine for user mywebsite. But this can be useful for an admin to create a generic FTP user, with a different username and password from any users with sudo to root capabilities.

cd etc
sudo vi vsftpd/vsftpd.conf

In /etc/vsftpd/vsftpd.conf, uncomment these lines (press i to enter insert/edit mode):

This guide applies to CentOS (a generic version of Red Hat Enterprise Linux, or RHEL) and vsftpd.

There's actually not much reason to give a Linux user FTP access to your entire server; each user can access its own directory, which is fine for user mywebsite. But this can be useful for an admin to create a generic FTP user, with a different username and password from any users with sudo to root capabilities.

cd etc
sudo vi vsftpd/vsftpd.conf

In /etc/vsftpd/vsftpd.conf, uncomment these lines (press i to enter insert/edit mode):

Quick Site Recipe Shell Command Generator

Update: This has of course been quite obsoleted by drush, which Agaric is building our own scripts around (we would like to build them into Drush as much as possible), and we should eventually note on our main drush post.

I hope to turn this into a module with a form, for now it's just a PHP page that can only be edited by an admin with PHP privileges. The code that creates this page is attached.

Update: This has of course been quite obsoleted by drush, which Agaric is building our own scripts around (we would like to build them into Drush as much as possible), and we should eventually note on our main drush post.

I hope to turn this into a module with a form, for now it's just a PHP page that can only be edited by an admin with PHP privileges. The code that creates this page is attached.

<?php
/* NOTE: need some way of dealing with Drupal contrib modules with 2.0 versions */

$nl = "\n"// line separator

$sudo = 0// 0 no sudo needed, 1 sudo needed
$drupal_version = "DRUPAL-5";
$target_directory = "test";
$contrib_modules_directory = "modules/contributed";
$contrib_themes_directory = "themes/contributed";

/* array of Drupal contributed modules
 * alphabetical except 'child' modules follow parent (esp. CCK, for instance "email" is a CCK field)
 */

$spaceshare_contrib_modules = array(actions, akismet, article, auto_nodetitle, autosave, bloginfo, bookmark_us, buddylist, casetracker, cck, email, text_regexp, captcha, comment_mover, comment_subject, contemplate, ed_classified, ed_readmore, favorite_nodes, fivestar, focus, globalredirect, gmap, gsitemap, image, imagecache, leech, links, location, logintoboggan, menu_trim, mimemail, nodefamily, nodeprofile, panels, pathauto, relativity, releasemonitor, spam, send, service_links, subscriptions, systeminfo, tagadelic, taxonomy_access, taxonomy_breadcrumb, taxonomy_theme, textimage, token, upload_preview, userlink, usernode, views, views_alpha_pager, views_bonus, votingapi, weather, webform, weight, workflow);

/* array of Drupal contributed themes */
$contrib_themes = array(aberdeen, amadou, bluebreeze, golden_hour, stylized_beauty, sinatra, sympal_theme, zen);

$contrib_modules = $spaceshare_contrib_modules;

print

"<pre>";
print
"This script was made with the following variables:" . $nl;
print
"Drupal Version: " . $drupal_version . $nl;
print
"Target Directory: " . $target_directory . $nl;
print
"Path to Contrib Directory: " . $contrib_directory . $nl;
print
"Contributed Modules:" . $nl;
print_r($contrib_modules);

$intro = "You should paste this output in your shell (e.g. Terminal, Putty) " . $nl .
 
"starting from the directory ABOVE your target directory.";
print
$intro . $nl;

$ssh = "";

// get Drupal itself
if ($sudo) $ssh .= "sudo ";
$ssh .= "cvs -d:pserver:anonymous:anonymous@cvs.drupal.org:/cvs/drupal checkout -d " . $target_directory . " -r " . $drupal_version . " drupal";

$ssh .=$nl;

$ssh .= "cd " . $target_directory;
$ssh .= $nl;

if (

$sudo) $ssh .= "sudo ";
$ssh .= "mkdir " . $contrib_modules_directory;
$ssh .= $nl;

foreach(

$contrib_modules as $module) {
  if (
$sudo) $ssh .= "sudo ";
 
$ssh .= "cvs checkout -d " . $contrib_modules_directory . "/" . $module . " -r " . $drupal_version . " contributions/modules/" . $module;
 
$ssh .= $nl;
}

if (

$sudo) $ssh .= "sudo ";
$ssh .= "mkdir " . $contrib_themes_directory;
$ssh .= $nl;

foreach(

$contrib_themes as $theme) {
  if (
$sudo) $ssh .= "sudo ";
 
$ssh .= "cvs checkout -d " . $contrib_themes_directory . "/" . $theme . " -r " . $drupal_version . " contributions/themes/" . $theme;
 
$ssh .= $nl;
}
print
$ssh;

print

"</pre>";
?>

Theme by Section

Thanks to Webchick

use subdomains
multi-site setup
using same databases
but hardcode theme and other variables as needed

(How about primary links, blocks, etc?)

Thanks to Webchick

use subdomains
multi-site setup
using same databases
but hardcode theme and other variables as needed

(How about primary links, blocks, etc?)

Fixing Clean URLs on Some Drupal Installations

On some servers, the initial installation of Drupal will fail the clean URLs test.

Just giving the server an initial path, "/" in .htaccess solves this problem.

Keywords: .htaccess rule change Drupal clean URLs

On some servers, the initial installation of Drupal will fail the clean URLs test.

Just giving the server an initial path, "/" in .htaccess solves this problem.

Keywords: .htaccess rule change Drupal clean URLs

Fun with GNU-Linux Shell: Messaging Other Users

to send messages to another user simply type write username then you can type your message and ctrl+c sends it.

to find out which users are logged in type users

gnu linux message ssh user

In addition to write, there's a more interactive, Instant Messaging (IM) style of GNU-Linux communication: talk.

talk username

Note: it will not cause any dock icon to bounce or taskbar button to flash when someone responds to you!

to send messages to another user simply type write username then you can type your message and ctrl+c sends it.

to find out which users are logged in type users

gnu linux message ssh user

In addition to write, there's a more interactive, Instant Messaging (IM) style of GNU-Linux communication: talk.

talk username

Note: it will not cause any dock icon to bounce or taskbar button to flash when someone responds to you!

Apache, PHP, and disaster

Help! I've installed Apache 2.2 and PHP 5.2 and all my PHP is printed plain text!

Isn't this right?

# Use for PHP 5.x:
LoadModule php5_module        modules/libphp5.so
AddHandler php5-script php

PHP and Apache are both running, appear to know about each other, but cannot get PHP files to be interpreted? This is an emergency help situation.

I'd say it happens to the best of us, but modesty precludes.

I threw into httpd.conf:

AddType application/x-httpd-php .php

Help! I've installed Apache 2.2 and PHP 5.2 and all my PHP is printed plain text!

Isn't this right?

# Use for PHP 5.x:
LoadModule php5_module        modules/libphp5.so
AddHandler php5-script php

PHP and Apache are both running, appear to know about each other, but cannot get PHP files to be interpreted? This is an emergency help situation.

I'd say it happens to the best of us, but modesty precludes.

I threw into httpd.conf:

AddType application/x-httpd-php .php

PHPIniDir "/usr/local/apache2/php/php.ini"

one of them did it.

Get Real Step by Step

Brainstorm

Come up with ideas.

Paper sketches

Sketches are quick, dirty, and cheap and that's exactly how you want to start out. Draw stuff. Scrawl stuff. Boxes, circles, lines. Get your ideas out of your head and onto paper. The goal at this point should be to convert concepts into rough interface designs. This step is all about experimentation. There are no wrong answers.

(I've never understood how, let alone why, to make brainstorming and sketches separate steps.)

Brainstorm

Come up with ideas.

Paper sketches

Sketches are quick, dirty, and cheap and that's exactly how you want to start out. Draw stuff. Scrawl stuff. Boxes, circles, lines. Get your ideas out of your head and onto paper. The goal at this point should be to convert concepts into rough interface designs. This step is all about experimentation. There are no wrong answers.

(I've never understood how, let alone why, to make brainstorming and sketches separate steps.)

Create HTML screens

Basic Mail Debugging

Mail doesn't work? Not receiving e-mails? Any of those problems, don't do what I did: start with some basic mail troubleshooting:

You may want to check your /etc/syslog.conf file (vi /etc/syslog.conf) to make sure it's doing this:

# (- Log all the mail messages to one place.)
mail.* -/var/log/maillog

If so, then check out that log!

You can go directly to the end of it:

sudo tail /var/log/maillog

Mail doesn't work? Not receiving e-mails? Any of those problems, don't do what I did: start with some basic mail troubleshooting:

You may want to check your /etc/syslog.conf file (vi /etc/syslog.conf) to make sure it's doing this:

# (- Log all the mail messages to one place.)
mail.* -/var/log/maillog

If so, then check out that log!

You can go directly to the end of it:

sudo tail /var/log/maillog

(Sudo may be required if you aren't logged in as root, which you shouldn't be.)

Still more Getting Real

Continued from More notes on Getting Real.

Human Solutions

Build software for general concepts and encourage people to create their own solutions

Don't force conventions on people. Instead make your software general so everyone can find their own solution. Give people just enough to solve their own problems their own way. And then get out of the way.

From "Human Solutions"

More notes on Getting Real

Continued from First Notes on Getting Real, a book by web app company 37 Signals.

Differentiate yourself from bigger companies by being personal and friendly

Hell, we're all over that one.

From "Be Yourself"

What's the Big Idea

Before you start designing or coding anything you need to know the purpose of your product — the vision. Think big. Why does it exist? What makes it different than other similar products?

Syndicate content