WampServer How to Set up and Get Started with PHP MySQL Web Development - Technology Portal


Post Top Ad

Post Top Ad


WampServer How to Set up and Get Started with PHP MySQL Web Development


1.  Introduction

AMP is an acronym for Apache (an HTTP Server), MySQL (a relational database) and PHP (a server-side programming platform). These are industrial-strength, open-source software that collectively can be used to develop, deploy and run web applications. Depending on the operating platform, we have:
  • WAMP: Windows-Apache-MySQL-PHP
  • LAMP: Linux-Apache-MySQL-PHP
  • MAMP: Mac-Apache-MySQL-PHP
You can choose to install the components individually, or use a bundled software package. For example,
I shall assume that you are familiar with Apahe, MySQL and PHP. Otherwise, read “How to setup and get started with Apache HTTP Server“, “How to setup and get started with MySQL“.

2.  Setting Up WampServer

WampServer (@ http://www.wampserver.com/en/) bundles Apache, MySQL and PHP for Winodws in a single package. It also includes tools such as PhpMyAdmin (a MySQL database administration tool), SQL Buddy (an alternative to PhpMyAdmin), XDebug (a PHP Debugging Tool), WebGrind (a PHP Profiling Tool).

2.1  Installing WampServer

To Install WampServer:
  1. Download: Goto WampServer mother site at http://www.wampserver.com/en ⇒ Select “DOWNLOADS” ⇒ Choose the appropriate package for your platform (e.g., WampServer 2.2e (32 bits)) ⇒ Download the installation file (e.g., wampserver2.2e-php5.4.3-httpd2.2.22-mysql5.5.24-32b.exe).
  2. Install: To install the WAMPServer, simply run the downloaded installation file. Choose your installation directory. I shall assume that WampServer is installed in “d:\WampServer”, denoted as <WAMPSERVER_HOME>, in this article.

2.2  Starting WampServer

To start the WampServer, choose “start WampServer” from the “Start” menu; or run “wampmanager.exe” from the WampServer installed directory. An icon will appear on the icon tray. “Green” icon indicates that all the services have started. “Red” indicates that all the services have stopped. You can put the server online (so that user can access the server over the Internet) by selecting the option “Put Online”. Alternatively, you could put the server “Offline”, such that it is accessible only within the localhost.

2.3  Verifying the Installation

By default, a directory called “www” was created under the WampServer installed directory, which serves as the root directory of the Apache Server. A welcome page called “index.php” was also created in the “www” directory.
To verify the installation:
  1. Start the WampServer. Wait for the icon to appear green (indicates that all services have started). Otherwise, click the icon and select “Start All Services”. For testing, put the server “offline” to disable external access (i.e., it can be accessed only in localhost).
  2. Start a browser and issue URL http://localhost. This will in turn request for “index.php“. Observe the output and compare with “index.php” source.

2.4  Writing a Hello-world PHP Script

Use a program editor to write a simple PHP script called “hello.php” and save under the “www” directory, as follows:
<title>First PHP Page</title>
echo '<h1>Hello, world!</h1>';
To run this script, start a browser and issue URL http://localhost/hello.php.
Check the output produced via “view source”. Take note that PHP is a server-side technology (instead of client-side technology like JavaScript). The PHP statements <?php ... ?> are processed in the server, and the results returned to the client (browser).

2.5  WampServer Directory Structure

WampServer is organized in the following directory structure:
  • bin: contains binaries for Apache, MySQL, and PHP, in their respectively sub-directory. For each component, you can install multiple versions and select one of them in operation.
  • apps: contains server-side tools such as PhpMyAdmin, SQL Buddy, and WebGrind.
  • tools: contains client-side tool such as xdc (XDebug Client).
  • www: is the apache server’s root directory.
  • logs: contains apache access and error logs; and mysql log files.
  • alias: contains the the apache’s alias configuration for PhpMyadmin, SQL Buddy and WebGrind.
  • scripts:
  • lang:
  • tmp:

2.6  Apache Configuration

The Apache’s configuration file “http.conf” is located at “<WAMPSERVER_HOME>\bin\apache\Apache2.2.xx\conf“. Take note of the following configuration directives.
  • The core directives are:
    ServerRoot "<WAMPSERVER_HOME>/bin/apache/apache2.2.xx"
    Listen 80
    ServerName localhost:80
    DocumentRoot "<WAMPSERVER_HOME>/www/"
    The ServerRoot specifies the apache’s installed directory. Listen specifies the TCP port number for Apache web server, in this case, default of TCP port 80. The DocumentRoot specifies the root directory of the web server.
  • The directives related to directory authorisation are:
    # Each directory to which Apache has access can be configured with respect
    # to which services and features are allowed and/or disabled in that
    # directory (and its subdirectories). 
    # First, we configure the "default" to be a very restrictive set of 
    # features.  
    <Directory />
        Options FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
    # This should be changed to whatever you set DocumentRoot to.
    <Directory "<WAMPSERVER_HOME>/www/">
        Options Indexes FollowSymLinks
        AllowOverride all
    #   onlineoffline tag - don't remove
        Order Deny,Allow
        Deny from all
        Allow from
    [TODO] Explanation
  • The directives related to logging are:
    ErrorLog "<WAMPSERVER_HOME>/logs/apache_error.log"
    CustomLog "<WAMPSERVER_HOME>/logs/access.log" common

2.7  PHP Configuration

The PHP’s configuration file “php.ini” is located at “<WAMPSERVER_HOME>\bin\apache\Apache2.2.xx\bin“.
[TODO] Explanation

2.8  MySQL Configuration

The MySQL’s configuration file “my.ini” is located at “<WAMPSERVER_HOME>\bin\mysql\mysql5.5.xx“, i.e., the MySQL installed directory. Take note of the following settings:
  • MySQL Server
    port  = 3306
    socket = /tmp/mysql.sock
    key_buffer = 16M
    max_allowed_packet = 1M
    table_cache = 64
    sort_buffer_size = 512K
    net_buffer_length = 8K
    read_buffer_size = 256K
    read_rnd_buffer_size = 512K
    myisam_sort_buffer_size = 8M
    The port specifies the TCP port number for the MySQL server (defaulted to 3306). The basedir specifies the MySQL installed directory. The datadir specifies the databases directory. The log-error specifies the MySQL error log file.
  • MySQL Server Daemon (mysqld.exe)
  • Interactive Client (mysql)
    #password = your_password
    port  = 3306

2.9  Customizing MySQL

The default MySQL installation provides a superuser called “root” without a password. It also provides an anonymous user with no password. You need to set a password for root, remove the anonymous user, and create a new user for operational use.
There are many ways to administer MySQL:
  1. PhpMyAdmin
  2. SQL Buddy
  3. MySQL Interactive client (“mysql.exe“)
SQL Buddy
To set password for superuser “root”:
  1. Login to SQL Buddy via URL http://localhost/sqlbuddy, with user “root” and empty password.
  2. Select “Users”.
  3. Check the row of “User” of “root”, “Host” of “localhost” and select “Edit”.
  4. Enter the new password in “Change password” box.
  5. Repeat the above for root@ (IP address for localhost) and root@::1 (IPv6 localhost address).
To remove the anonymous user:
  1. Login to SQL Buddy with superuser “root“.
  2. Select “Users”.
  3. Check the row of anonymous user (empty user name), and select “Delete”.
You should not use superuser “root” for normal operations. “root” should be used for creating new user only. You could create a new user for normal operation. To create a new user called “wampuser“:
  1. Login to SQL Buddy with user “root“.
  2. Select “Users”.
  3. In the “ADD NEW USER”, enter “localhost” in “host” box, “wampuser” in “name” box, and “xxxx” in “password” box. Select the appropriate authorization option (do not check the “Grant Option”). Click “Submit” button.
MySQL Interactive Client (mysql)
Read “How to setup MySQL“.

3.  Eclipse PDT (PHP Developer Tool)

A good IDE with a graphic debugger is critical for program development.
Eclipse PDT (PHP Developer Tool) is an IDE for PHP program development. The main advantage is it can debug PHP script with XDebug or Zend Debugger. Read “Eclipse PDT (PHP Developer Tool)“.

4.  PhpMyAdmin and SQL Buddy

PhpMyAdmin (http://www.phpmyadmin.net) is an open source web-base tool intended to handle the administration of MySQL. SQL Buddy (http://www.sqlbuddy.com) is an alternative to PhpMyAdmin.

4.1  PhpMyAdmin

PhpMyAdmin is bundled in WampServer, installed under <WAMPSERVER_HOME>\apps\phpmyadmin3.x.xx.
The configuration file is “config.inc.php“, located at the PhpMyAdmin installed directory. The default configuration requires you to hardcode the MySQL user and password inside the configuration file:
$cfg['Servers'][$i]['auth_type'] = 'config'
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'your_root_password';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
I recommend that you change the configuration to prompt user to login with password by changing the auth_type from “config” to “cookie”.
// $cfg['Servers'][$i]['auth_type'] = 'config'
$cfg['Servers'][$i]['auth_type'] = 'cookie';
// $cfg['Servers'][$i]['user'] = 'root';
// $cfg['Servers'][$i]['password'] = 'your_root_password';
// $cfg['Servers'][$i]['AllowNoPassword'] = true;
To launch PhpMyAdmin, start a browser and issue URL http://localhost/phpmyadmin.

4.2  SQL Buddy

SQL Buddy is an alternative to PhpMyAdmin, which is also bundled in WampServer, under directory <WAMPSERVER_HOME>\apps\sqlbuddy1.3.x. SQL Buddy could be easier to use than PhpMyAdmin.
To use SQL Buddy, start a browser, and issue URL http://localhost/sqlbuddy


No comments:

Post a Comment

Post Top Ad