Ubuntu: Installing Apache, MySQL, PHP and Samba, sFTP

I ran a local virtual Ubuntu server for a while, but as I formatted my PC I thought it was time to do it on another way, yet today I switched back to a virtual Ubuntu server, to continue PHP-web-development.

As some functions are not working 100% the same on Linux and windows, I really need a Linux development environment, it offers me a great test server for all my PHP applications with extra SVN and Redmine.
As I also installed Samba, I can use it just like local development.
Off-course its no backup and it’s only for local development, not for team-development, so that’s why I needed a live SVN server.

So the main reason for posting this post is for installing a virtual test server, I created this post almost a year ago and as I installed it just now, it’s still working 🙂
This way you can use all of PHP’s functions. You can also test everything like you would on a real (linux-)server as PHP is mostly run on linux-servers.

For the first post, we just gonna install Apache, MySQL and PHP (a LAMP server), together with Samba and sFTP.
I also add some tests to see everything is working.

In the next post(s?) I’m gonna add Ruby on Rails (RoR), SVN and possibly more.

First I setted up a virtual machine that was running Ubuntu (just the latest Ubuntu desktop, yes desktop, I always use the terminal but some thing are just easier with the GUI software).

Installing and configuring Samba

First I installed Samba, this way we can live edit files. You can map it with “network drive mapping” in windows for extra easy access.

We install it by using sudo apt-get install samba

Now we need to configure samba: First we need to edit the smb.conf file located in /etc/samba by using sudo nano /etc/samba/smb.conf

First we set security by user. This is in the part authentication. If you search for “security”, the second time you wil find:

#    security = user

We just need to remove the # here.

Next we need to add shared locations, because it’s a test server it’s usefull we can do just about everything, at the end of the file I added:

[ALL]
comment = all
path = /
read only = no
guest ok = no
browseable = yes
create mask = 0655
directory mask = 0755

Now we need to add users capable of logging in by using sudo smbpasswd -a username (The username needs to be a linux user)

And last but not least we need to restart the service, this is easily done by using sudo service samba restart

Now we can go to the server by \\hostname\ (in my case \\testserver\), when you login with the user and pass you just added with the smbpasswd command, you should see a folder named ALL. This is the share we just created. You should be able to add folders and files like you should in linux (of course its bound to the Linux user rights)

Install sFTP

Maybe you ask why: My main reason is to edit rights. Samba is very easy and faster then sFTP but you can’t edit rights, although not as far as I know …
Because some things just require more rights, and I don’t want to edit all rights higher (in /etc/samba/smb.conf you can change “create mask” and “directory mask” to 0777). Because I don’t want to open my VM each time, I want to use sFTP (FTP over SSH) as Fillezilla can do it, and its always installed at my pc’s).

As far as I remember (back me up please) Ubuntu 8.10 had openSSH-server installed standard. In 9.10 it isn’t. So we need to install the openSSH-server by using sudo apt-get install openssh-server

And its done, that easily 🙂 You can now login with sftp with every user account including root. Off-course the root user has standard no password, so you need to change the password by sudo passwd root

Install apache

We can install the latests apache2 by using: sudo apt-get install apache2

If we now surf to the server we should see “It works!”. (when u use the desktop edition you can use firefox and surf to http://localhost/), because we installed samba we should be able to surf to http://hostname/

The default www location for apache is /var/www but its owned by root so we need to change it so we can also do some stuff:  sudo chown -R user:group /var/www (in my case chown -R tom:tom /var/www)

Now we can add new HTML files and directories.

Install PHP

Now we install the latest  PHP5 version by using: sudo apt-get install php5

With the installation of php5, apache2 should have been restarted, but to be certain, restart it with: sudo service apache2 restart

Quick PHP test

Now we are going to test PHP:

With a text editor you can create a php-file in the www directory with the next content:

<php
phpinfo();
?>

After creating the file we can surf to the created php-page (localhost/info.php) You now should see “phpinfo()” as title and a nice PHP information page.

We can also install a few useful extensions, in my case I installed: php5-gd and php5-mcrypt by using sudo apt-get install php5-gd php5-mcrypt

Remember to restart apache2 to enable those extensions. (check a2enmod and a2dismod to enable/disable extensions)

Install MySQL and PHP support

Install MySQL: sudo apt-get install mysql-server

Install MySQL support for PHP: sudo apt-get install php5-mysql

After this we need to restart the apache Service and we see in the php info page a part about mysql and mysqli

Quick MySQLi (PHP) test

Now we can test we can connect to the mysql server by creating a php-file in the www directory with the next content:

<?php
$mysqli = @new mysqli('localhost', 'root', 'pass');

if ($mysqli->connect_error) {
    die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);
}

echo 'Success... ' . $mysqli->host_info . ";

$mysqli->close();
?>

When you surf to the page (http://hostname/mysql.php) you should see “Success… Localhost via UNIX socket”

Ready for phpBB3

We installed everything needed for phpBB3, you can download it from phpBB.com downloads page.

We need to upload it to the server, I choice to unpack it in the www directory. Changed the rights with FTP (or ssh: chmod 777 cache files store images/avatars/upload config.php)
And surfing to http://hostname/phpBB will then forward you to the installer.

By installing mcrypt and gd everything was OK except for Imagemagick
(Imagemagick can be installed by: sudo apt-get install imagemagick php5-imagick and afterwards restarting apache.)

I also uploaded phpMyAdmin for easy MySQL access. I added a user and a database and I could install phpBB3 perfectly.

So as far as I can see at the moment everything is working, with exception for mail.
This was it for this blogpost, in a few weeks I’ll add SVN, RoR and redmine and mail possibility.

Leave a Reply