Installing a web server is very easy in Ubuntu, just enter a few lines in the terminal: There is no need to install and configure each part of a LAMP (Linux-Apache-MySQL-PHP) installation individually. You can also install other programs this way. The downside is that all components are installed automatically, and not reviewed by you. But as long as you only use the web server locally (localhost or 127.0.0.1), and don't open up for access from the Internet, it should be safe.
Install Ubuntu and LAMP web server
First, install Ubuntu, if you haven't already. There is a good guide over at HowtoForge Just follow the guide ("The Perfect Desktop - Ubuntu 10.04" is the latest), do the update on page 3, and then return here.
To install a LAMP web server, enter this in a terminal and enter your password:
sudo tasksel install lamp-server
After a while the installation process will prompt you for a password for the MySQL server. Make sure that the CAPS Lock button is not activated! If all goes well, the installation will return to the terminal, and the web server is installed. Test this by going to your browser and enter http://localhost/ in the address bar. If the installation was successful, you will see an "It works!" message.
Update php.ini - allow big files, avoid memory issues
To allow importing large sql dumps through phpmyadmin, and avoiding time outs during demanding requests, it is also necessary to update the php.ini file of the Apache server. To open up the php.ini in gedit, enter this in your terminal:
gksudo gedit /etc/php5/apache2/php.ini
...and update the values five places, where it says:
max_execution_time = 120
max_input_time = 90
memory_limit = 96M
post_max_size = 150M
upload_max_filesize = 150M
session.gc_maxlifetime = 14400
Fix Apache Error "Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName"
Open the httpd.conf file:
sudo gedit /etc/apache2/httpd.conf
The httpd.conf file is blank, so add the following to the file, and then save it:
ServerName localhost
Create a MySQL database
To create a database in the MySQL database, log in to the MySQL shell:
mysql -u root -p
Create a database, for a Drupal installation in this example, type in the MySQL shell:
create database drupal7;
Create a new user and grant all permissions, substitute "newuser" and "password" with your values:
grant all on drupal7.* to 'newuser'@'localhost' identified by 'password';
and leave the shell:
quit;
If you typed in the password(in this example, "ROOT") accidentally with caps lock on, this is how you change it to something safer. "root" is NOT recommended as password. From the terminal:
mysqladmin -u root -p'ROOT' password 'yournewpassword'
Install phpmyadmin
You can also create and administer your MySQL databases through phpmyadmin:
sudo apt-get install phpmyadmin
Administer your databases at http://localhost/phpmyadmin/
Install and enable mod_rewrite
Install mod_rewrite, to get nice URL's:
sudo a2enmod rewrite
Enable mod_rewrite:
gksudo gedit /etc/apache2/sites-available/default
...and change "AllowOverride None" to "AllowOverride All", around line 11:
<Directory /var/www/\>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Restart the Apache web server:
sudo /etc/init.d/apache2 restart
Install Drupal 7
1. Start nautilus up with this command:
gksudo nautilus
...and navigate to the /var folder, right-click on the www folder, click 'Permissions' and set owner and group to your own user name. This will prevent problems with automatically created folders in the future.
2. Download and extract Drupal 7 from http://drupal.org/. Rename the folder to drupal7 and move it to /var/www/ where the web sites of the Apache web server reside. Result: /var/www/drupal7
3. Create the files folder, like this: /var/www/drupal7/sites/default/files. Right-click the 'files' folder, select 'Properties' -> 'Permissions' and under 'Others', set 'Folder Access' to 'Create and delete files'
4. Make a copy of the default.settings.php file in /var/www/drupal7/sites/default and rename it to settings.php. Right-click settings.php, select 'Properties' -> 'Permissions' and under 'Others', set 'Folder Access' to 'Create and delete files'
NOTE: Add an exception in Firefox, if you have disabled "Accept cookies from sites" and unblock the new site if you have a script blocker activated in your browser.
If all went well, you should now be able to enter http://localhost/drupal7 and install Drupal.
Install Drupal 7 from the command line
In stead of pointing and clicking with the mouse, you can do the above from the command line, much faster.
Download, un-tar the Drupal files, and delete the tarball. To find the latest version of Drupal, go to http://drupal.org/project/drupal :
wget http://ftp.drupal.org/files/projects/drupal-7.4.tar.gz
tar -zxvf drupal-7.4.tar.gz
rm drupal-7.4.tar.gz
Move and rename the downloaded Drupal folder to your localhost directory, normally /var/www/, create a settings.php file and make it writable, as well as the sites/default folder.
sudo mv drupal-7.4/ /var/www/drupal7
cd /var/www/drupal7
cp sites/default/default.settings.php sites/default/settings.php
chmod a+w sites/default/settings.php
chmod a+w sites/default
If all went well, you should now be able to go to http://localhost/drupal7 and install Drupal.
Next, secure your site with these commands. Make sure you are in the right directory (your Drupal folder), otherwise you can mess up your entire file system. Substitute "ras" with your username.
From the Drupal root directory:
cd /var/www/drupal7
sudo chown -R ras:www-data .
find . -type d -exec chmod u=rwx,g=rx,o= {} \;
find . -type f -exec chmod u=rw,g=r,o= {} \;
Permissions for the "files" directories in the sites:
cd /var/www/drupal7/sites
Copy and paste the next 5 lines into the terminal, they will all be executed after the "done" line:
for d in ./*/files
do
find $d -type d -exec chmod ug=rwx,o= {} \;
find $d -type f -exec chmod ug=rw,o= {} \;
done
From these two pages:
Quick install for developers (command line)
Securing file permissions and ownership
Install PHP APC, to speed up the server
On Ubuntu 10.04 Lucid:
sudo apt-get install php-apc
On Ubuntu 9.10 Karmic:
Install apache2-threaded-dev:
sudo apt-get install apache2-threaded-dev
Install APC:
sudo pecl install apc
then:
gksudo gedit /etc/php5/apache2/php.ini
...and paste in the file:
extension=apc.so
and save it.
Restart the Apache web server:
sudo /etc/init.d/apache2 restart
Place a file called info.php in /var/www -- containing:
<?php phpinfo(); ?>
Visit http://localhost/info.php, and verify that APC is enabled.
Setting up a virtual host
To set up a virtual host, allowing you to enter just http://drupal7/ in stead of http://localhost/drupal7/:
sudo gedit /etc/hosts
...and add:
127.0.0.1 drupal7
To define where the Apache web server should be looking for the files:
gksudo gedit /etc/apache2/httpd.conf
...and add:
<VirtualHost *:80>
DocumentRoot /var/www/drupal7
ServerName drupal7
</VirtualHost>
As always, when you change the set up of the Apache server, restart it:
sudo /etc/init.d/apache2 restart
Move apache webroot from /var/www to your /home directory and move MySQL folder
For back up reasons and to have a more "normal" work flow when adding files to your web site, you can move the apache webroot from /var/www to /home/USERNAME/.www -- the .www folder will be hidden until you press Ctrl+H to unhide it:
gksu gedit /etc/apache2/sites-available/default
Change DocumentRoot /var/www to DocumentRoot /home/USERNAME/.www
If you have set up a virtual host:
gksudo gedit /etc/apache2/httpd.conf
...and change to: DocumentRoot /home/USERNAME/.www
From http://gullele.wordpress.com/2010/08/27/changing-default-apache-webroot-in-ubuntu/
Likewise, to move MySQL from /var/lib/mysql to /home/USERNAME/.mysql follow this guide: http://ubuntuforums.org/showthread.php?t=897354
Install Drush
With Drush you can install modules and update Drupal from the command-line: http://drupal.org/project/drush
wget http://ftp.drupal.org/files/projects/drush-6.x-3.3.tar.gz
tar xvzf drush-6.x-3.3.tar.gz
sudo chmod 555 drush/drush
sudo chown -R root:root drush
sudo mv drush /usr/local/
sudo ln -s /usr/local/drush/drush /usr/local/bin/drush
sudo drush dl drush_make
If you get an "exec: 53: php: not found" error after running the last line ("sudo drush dl drush_make") you might have to install the PHP command line interface, with
sudo apt-get install php5-cli
From: http://groups.drupal.org/node/70268
Extra: Programs and fonts to install after Ubuntu installation
You can install programs very easily in Ubuntu, from the command line. These are some nice programs to install after an Ubuntu install, copy and paste in the terminal:
sudo apt-get install audacious dia epiphany-browser filezilla gparted gqview k9copy klinkstatus lm-sensors sensors-applet macchanger meld regexxer thunar thunderbird unetbootin unrar vim-gnome vlc
Install Multimedia Codecs:
To play file types, like mp3, avi and mov, you need to install some extra tools and codecs. To install them, paste in the terminal:
sudo apt-get install ubuntu-restricted-extras
After that, go to Applications > Add/Remove..., select Show: "All available applications", search for "gstreamer" and install them.
For a more thorough walk through of how to set up a fresh Ubuntu installation: The Perfect Desktop - Ubuntu 9.10 (Karmic Koala)
Audio CD Extractor (Sound Juicer) settings for a bitrate of 256 kbps:
Edit > Preferences > Output Format: Edit Profiles > New
Profile Name: CD Quality, better
Gstreamer Pipeline: audio/x-raw-float,rate=44100,channels=2 ! vorbisenc name=enc quality=0.8 ! oggmux
File extension: ogg
Install fonts:
sudo apt-get install ttf-sil-gentium ttf-dustin ttf-georgewilliams ttf-sjfonts sun-java6-fonts ttf-larabie-deco ttf-larabie-straight ttf-larabie-uncommon
Enable firewall and open up port for Transmission:
sudo ufw enable
...and
sudo ufw allow 53484
reg. "install Drupal 7" step 3
Thanks for a great 'how to'!
"3. Create the files folder, like this: /var/www/drupal7/sites/default/files, right-click the files folder, select 'Properties' -> 'Permissions' and set 'Others' to 'Create and delete files'"
When I right click the files folder I just made, I don't have the option 'Others' in my drop down menu. I can choose nobody or my own name.
Do you have a suggestion why this is?
Sorry, I forgot to write
Sorry, I forgot to write where you have to change the permissions. I have updated the text:
"3. Create the files folder, like this: /var/www/drupal7/sites/default/files. Right-click the 'files' folder, select 'Properties' -> 'Permissions' and under 'Others', set 'Folder Access' to 'Create and delete files'"
phpmyadmin
Hi there nice startup guide i had a little problem with getting phpmyadmin to work
I needed to run the following command
ln -s /usr/share/phpmyadmin/ /var/www
hope this helps !!
check this
check this video
http://www.youtube.com/watch?v=k_Yj7lbF7mk
Just Finished the install
Thanks for the very well written instruction. Can you make recommendations as to how to edit config files on a Ubuntu server install. Should I edit them on a different computer then copy to the server and overwrite the files with my modified versions or is there a method I am unfamiliar with having just took the plung into the no-gui deep end?
Linode has got some good info in this
The instructions on this page are mostly geared towards setting up a local LAMP environment with a GUI, but I can recommend the info found at Linode's library: http://library.linode.com/
You typically use an editor like nano, which runs in the terminal, to edit text files, like config files, for example:
'sudo nano /etc/apache2/sites-available/default'
The instructions at Linode's library are very detailed and can be used for setting a server up at any hosting service. It might look a bit complicated at first, but after a while it gets easier and almost second nature to use the terminal in stead of a GUI, good luck!
Big Thank you
!!!!!1 Great, detailed, Granular step by step and proactive explanation ..... !!!!
Correct