1Jan

Easyphp For Mac

Easyphp For Mac Rating: 9,3/10 674 reviews

17 Best Alternatives of Xampp Server:- Xampp is an open source application that is primarily used for testing. Programmers can develop a local web server using Xampp. Xampp is equally compatible with operating systems like Linux, Microsoft Windows and Mac as well.
Programmers find Xampp very easy to use, the reason is simple that it is powered by Apache, MySQL, PHP and Perl. So if user were to develop local web server, Xampp would pretty much take care of things like server application, a database management system, coding language and network programming.
Are there any alternatives to Xampp? Yes, there are. We will look at these different alternatives.

WampServer

WampServer is also another tool used for creating web applications and PHP development. WampServer will come along with three major tools like PHP, MySQL and Apache. WampServer is only available for Microsoft Windows OS.
One advantage that WampServer provides is the interface that is available in many languages. You have the ability to see all the elements on the browser. Another function worth mentioning is that that the PhpMyAdmin would take care of the database management. You can also try offline and online modes with WampServer.
If the accessibility concerns you, then you can limit it to local-host, otherwise, you can choose everyone to get the access. You can have access to server settings and files as well. Another interesting feature that WampServer offers is that you can accommodate all the next versions of PHP, Apache and MySQL into it. So, you can keep on upgrading with new releases as you move ahead.

EasyPHP

Local.AMP stack installed. Runs in local environment (±); Windows only; Cost Tiers: Free. A complete and ready-to-use PHP development environment on Windows including the web server Apache, the SQL Server MySQL and others development tools.

EasyPHP is one of the best contenders to Xampp. If you want to only focus on the coding part, and leave the rest headache of configuration, then this is the best tool. It will get you PHP, the scripting language along with MySQL for database management. Apache will take care of web server application.
Even if you are a beginner with coding, you can use EasyPHP as a tool for development. You can work with applications like WordPress, Joomla and Drupal with EasyPHP. But remember, you cannot host websites using EasyPHP. If you want to turn your machine into personal hosting, then go for EasyPHP WebServer. This will enable offline hosting in the machine that will be easy to operate, and also will be secured. If you otherwise want a WAMP environment for your machine, then go for EasyPHP DevServer. These versions will have difference in programs offered, apart from the basic ones.

UwAmp Server


UwAmp Server is another development tool for web applications of Microsoft Windows OS. UwAmp Server has tools like SQLite, Apache and PHP integrated with it. With UwAmp Server, if user decided to have web applications tested offline, then that would be possible. So you wouldn’t actually need an internet connection to get the applications tested. Users who are concerned about the installation of UwAmp Server need not worry because it doesn’t need an installation. You can very well begin with a zipped file.
Users are bound to find the interface for UwAmp Server very interactive. Users will be able to find a lot of information with the interface. You can check configuration settings along with the commands on the interface. If you are to run a new PHP releases along with UwAmp Server, then that would be feasible. Users will also be able to get data on the CPU usage. Users can even run the web server from the flash disk using UwAmp Server.

AMPPS

Users can use AMPPS to develop web applications in PHP. AMPPS (from Softaculous) can be run on Microsoft Windows, Mac and Linux OS. The availability of AMPPS on operating systems other Microsoft Windows gives it a strong position amongst the top. The installation is too easy and the user can begin within minutes after the installation.
With AMPPS, you will find integrated tools like Apache, MySQL, Python, MongoDB and Perl. It is certainly one major tool for PHP. Users can get an access to over 300 PHP web applications along with thousands of classes of PHP. All the editions of PHP are compatible with AMPPS.
Users can do the website development either by programming themselves or by open-source web apps. With a single mouse click, users will be able to manage the database. The scripting part with AMPPS has been made easy for users. You can work on any application that suits your requirement like WordPress, Joomla or Drupal.

The Uniform Server

The Uniform Server also stands in the top category of tools used to run web servers, mainly used to check and validate HTML coding. The Uniform Server can only be run on Microsoft Windows OS. The Uniform Server comes with Apache, PHP, Perl and MySQL. All the latest versions are compatible with The Uniform Server.
Features that most of the users like about The Uniform Server are that that it doesn’t require to be installed, and the fact that it will consume less than 10MB storage space. This is really great for users who have to go through the cumbersome set-up process, and also that consumes a lot of space. Users can get updates on a regular basis, along with some great support to resolve queries on time. Users can also go one step further and change the settings to get better control over programming. So if you are looking for extra configuration and tweaking, then The Uniform Server is one of the best options.

MAMP

MAMP is tool to run websites that are more complex in nature, like Dynamic Websites. MAMP happened to be serving only Mac Operating System earlier. As it is made for Macintosh, it is called as MAMP. So if you came across the term LAMP, then it is a similar version to MAMP, but used for Linux OS. You can even find a similar version for Microsoft Windows.
MAMP is a great tool that comes along with a database management system, Web server and countless programming languages. So by now you would have guessed that it has Apache, MySQL, Perl, Python and PHP support.
MAMP is open-source. Users like to use MAMP with applications like Drupal and other Content Management System apps. Users even like MAMP for the fact that it does not tamper with other existing applications in the system. They don’t even make any alterations in configuration.
On deleting MAMP, users will be surprised to know that system remains normal like before. MAMP has also got a pro version to offer. You will usually need this if you are a professional programmer, and would want to get additional features for multiple hosting along with features like virtual server, Dynamic DNS, Multi-PHP and LAN Access.

WPN-XM

WPN-XM is also an amazing tool to build PHP web applications. WPN-XM is only available for Microsoft Windows OS. If users want to try a different stack than those available with other software, then WPN-XM is an ideal choice. WPN-XM is the package that consists of MariaDB for database management, NGINX for the web server and PHP for coding. X stands for Xdebug, which is a debugger. So initials of all these softwares make WPN-XM.
The interface will make the running of server very easy for the users. Users can even get a lot of utils like Composer, Pickle, PHPUnit for development. You can even add many types of software with WPN-XM if you need to. Users can get the list of updates from the register available.
Users may not worry about installation related problems, as WPN-XM comes with 5 installation wizards. So what all wizards can a user expect from WPN-XM? You will get hands on The Webinstaller, The Full Installer, The standard Installer, The LiteRC Installer and The Lite Installer.

Wnmp

Wnmp is a tool used for development environment. Wnmp offers a great interface that is easy to operate, yet a robust one. It is an open-source platform that comes along with MariaDB, PHP, NGINX and a Control Panel.
Users find Wnmp very easy to operate, the only part users may find irritating is the installation, as it may go on for longer than usual time. User can easily configure the settings for the tools that are available along with Wnmp. User can perform set of actions like reloading and running of settings. The editor available with Wnmp is Notepad. But the user has control to change that. User can also increase the speed by changing few settings. If you want to see the program activity, you can go to the bottom of the interface and check.
Generally, users like Wnmp because it doesn’t consume much of the RAM, therefore the system performance wouldn’t get tampered with Wnmp. Booting with Wnmp is also easy and smooth experience for users.

SecureWamp

The difference between Wamp and SecureWamp is that the latter is more secure to be used. Needless to mention, other tools like MySQL, Windows, Apache and PHP are made available to the users.
Users have two options for settings with SecureWamp, that is either they can opt for developers or for production settings. For secure web hosting, users would always prefer to work with SecureWamp. There is a central Graphical User Interface available to take control of settings, meaning that all the pain of configuration files that are cryptic is taken care of. User need not even worry of problems like number of interfaces.
If you happen to be a web developer or an administrator, then SecureWamp might serve you well for testing and development.

DesktopServer

DesktopServer is best-known software that is used along with WordPress for development and testing. It can be seen as a strong competitor to Xampp. DesktopServer can skip all the redundant tasks for you. Users rarely have to be worried about database management and file configuration.
DesktopServer is friendly software and you will be happy to realize that the time taken is way too low as compared to some other similar software. Website development for all the WordPress users has become unimaginably simple with DesktopServer. Users have to just click a few times, and they can see the new website.
Do not worry about the WordPress files, DesktopServer will get all the necessary files installed for you. You don’t even have to worry about security keys. The interface is quite simple, so if you are new, it wouldn’t matter much. You can even export, import and share files. And if you are a seasoned player, then you will be happy to use a powerful software as DesktopServer.
For all WordPress admirers, it cannot just get better if you have DesktopServer with you. There are some advanced features for software available with a premium version of the same software. You can use the software for Microsoft Windows and Mac OS.

Abyss Web Server

For Microsoft Windows, Mac and Linux OS users, Abyss Web Server is another tool available as a web server, as the name suggests. Abyss Web Server complies with all the norms of HTTP/1.1.
People using Abyss Web Server can tell that it consumes fewer resources in comparison to other tools, it consumes less memory, and hence the load on the system by Abyss Web Server is very low. And despite of the fact that it consumes very less resources, it doesn’t compromise with the speed. The interface comes with a support for many languages. Users can also find a feature that is designed to be an anti-hacking function, and this is automatic.
Users can even go at lengths with customization to suit their needs. It is also portable. These features make the browsing experience very easy for the user. There are two versions available, the basic version if free. However, if you want it for professional use, then you can buy the Pro Version.

USB Webserver

As the name suggests, USB Webserver can be run without even being installed on the machine, you can simply run it from the USB. You can build PHP websites with the software. With USB Webserver, the user will get access to PHP, phpMyAdmin, Apache and Mini Relay. As it runs from the USB, you don’t have to worry about any files and logs left on your system.
It is free software and users find it very easy to be used. Professionals will also find it quite flexible. Users can find multi-lingual support with the new versions of the USB Webserver. The earlier version had a DPI bug, the current version has got that bug fixed.
Generally, users prefer to use USB Webserver to demonstrate the offline version of the website. Users even have the ability to work from various locations, and also run the test before making the website live. It’s also free and open-source. Looking at the amount of resources that it consumes, it is very responsive. Users will have a nice experience with its interface.

Denwer

Denwer is usually used for debugging and developing the websites. Denwer will get a list of web-servers along with it. It will contain stack of PHP, Perl, MySQL, Apache, phpMyAdmin and a Virtual host management system.
You will get all of these pre-configured when you install, but users can manage to customize according to their requirements. Once you install, all you need to do is PHP coding. Users can start developing and debugging along with it. Users can also manage to debug the website offline. You can easily work with installation and configurations smoothly, but you may struggle with the language, as it is Russian.

FoxServ

FoxServ is software used for development on OS such as Microsoft Windows and Linux. FoxServ gets PHP installer, MySQL and Apache along with it in the package. User can avail the new releases for all these applications along with the configuration.

PHPTriad

PHPTriad is a good tool for PHP development. PHPTriad is also used as a server environment for Microsoft Windows OS. User can avail PHP, MySQL, Apache and phpMyAdmin with PHPTriad.
Users find it very simple to handle. The installations are also quite simplified. Users will also find the compiling process very easy. So they can expect a pretty decent environment, database management and web server with PHPTriad. The settings with this software have kept quite basic, so if you need some other settings, then you can configure according to your needs. If you need PHP and Perl libraries, then you may need to get those externally as those are not pre-installed.

Winginx

Winginx is a local web server used by developers. Most often it is used by Nginx users. Although users of PHP, MongoDB , MySQL and NodeJS can also use it. Winginx is not easy as other software to be used. It is used along with Microsoft Windows OS. But, users need to be wary of the fact that it cannot be used with all the versions of Windows. They can only use it along with versions that are higher than Vista or Vista itself.
The installation is easy, you don’t have to struggle much with this part. Users can develop multiple projects with Winginx. The platform is very accommodative for local web development. Users can perform tasks like testing and launching of the local websites. Same is true for services and applications that are browser-based. Users like Winginx for the fact that settings can be easily changed, and the updates for its components can be obtained on a regular basis.

Saurav is associated with IT industry and computers for more than a decade and is writing on The Geek Page on topics revolving on windows 10 and softwares.

Recommended for You:

Introduction

LAMP/WAMP/MAMP Server

To develop PHP webapps, you need to setup Apache, MySQL and PHP, in a so called LAMP (Linux/Apache/MySQL/PHP), WAMP (Windows/Apache/MySQL/PHP), or MAMP (Mac OS/Apache/MySQL/PHP) environment, for your operating platform.

There are two ways of setting up LAMP/WAMP/MAMP:

  1. Install individual software components, i.e., Apache, MySQL and PHP.
  2. Install a bundle package, which includes all software components needed for developing PHP webapps.

For beginners running on Windows/Mac OS, I certainly recommend the bundle approach for simplicity (although they might not bundled the latest releases). These are the bundles available:

  • XAMPP @ https://www.apachefriends.org/index.html (Cross-platform for Windows, Mac OS and Linux).
  • WampServer @ http://www.wampserver.com/en/ (for Windows only).
  • Zend Server (@ http://files.zend.com/help/Zend-Server-Community-Edition/zend-server-community-edition.htm) (Cross-platform for Windows, Mac OS and Linux).
  • Easy PHP (@ http://www.easyphp.org/).
  • Others.

I shall describe how to install and setup some of these bundles in Section 'LAMP/WAMP/MAMP Servers'.

Integrated Development Environment (IDE) with Debugger

You also need to install an IDE, such as Eclipse PHP Development Tool (PDT). Read Section 'How to install Eclipse PDT'.

You need to setup these debugging tools and be familiar with:

  • Server-side PHP debugging with xDebug (or Zend Debugger), and
  • Client-side JavaScript debugging with Firebug.

Read Section 'Debugging PHP Webapps'.

Programming Languages

I shall assume that you have some basic knowledge on these programming languages. Otherwise, read the relevant sections.

  1. Database programming: SQL (or PostgreSQL). Read the 'SQL Section'.
  2. Sever-side programming: PHP (or Python, or Perl). Read 'PHP Section'
  3. Client-side programming: HTML, CSS and JavaScript. Read 'Client-side Programming: HTML/CSS/JavaScript Section'. In addition, BootStrap and jQuery for advanced programming.
Version Control System

Set up a Version Control System, such as Git, for backup, version control and collaboration. Read 'How to setup and get started with Git'.

LAMP/WAMP/MAMP Server

In this section, I shall briefly describe how to install and customize some of the AMP bundles. To install individual components, read 'How to install and get start with Apache', 'How to install and get started with MySQL'.

XAMPP (For Windows/Mac OS/Linux)

The XAMPP (stands for Cross-platform, Apache, MySQL, PHP and Perl @ https://www.apachefriends.org/index.html) bundles Apache, MySQL, PHP and Perl, for Windows, Linux and Mac OS. It also includes FileZilla FTP Server, Mercury Mail Server, and Tomcat Server; plus tools PhpMyAdmin, Webalizer, and Fake Sendmail.

At the time of writing, XAMPP 1.8.3 bundles PHP 5.5.15, Apache 2.4.10, MySQL 5.6.20 and PhpMyAdmin 4.2.7.1.

Installing XAMPP on Windows
  1. Download: Goto XAMPP mother site at https://www.apachefriends.org/index.html ⇒ Download the Windows package (e.g., xampp-win32-1.8.3-5-VC11-installer.exe).
  2. Install: Simply run the downloaded Installer. Choose your installation directory. I shall assume that XAMPP is installed in 'd:xampp', denoted as <XAMPP_HOME>, in this article.
Installing XAMPP on Mac OS [@@To Check!!]
  1. Download: Goto XAMPP mother site at https://www.apachefriends.org/index.html ⇒ Download the Mac OS package (e.g., ...).
  2. Install: Simply run the downloaded Installer. Choose your installation directory. I shall assume that XAMPP is installed in '...', denoted as <XAMPP_HOME>, in this article.
Starting/Stopping XAMPP Servers

Launch the 'XAMPP Control Panel' ('xampp-control.exe' for Windows, @@To Check ... MAC OS) under the XAMPP installed directory. A little icon appears in the Icon Tray. Right-click on the icon ⇒ 'Show/Hide' to show the 'full' Control Panel Window.

The XAMPP Control Panel allows you to start/stop each of these servers: Apache HTTP Server, MySQL Database Server, FileZilla FTP Server, Mercury Mail Server, and Tomcat HTTP Server. You can also check their configurations ('Config'), logs ('Logs') and launch the administrator tools such as PhpMyAdmin for MySQL ('Admin').

Verifying the Apache/MySQL/PHP/Perl Installation

By default, a directory called 'htdocs' was created under the XAMPP installed directory, which serves as the Apache's document root directory.

To verify the installation, launch the XAMPP Control Panel. Start the Apache and MySQL servers by clicking the 'Start' buttons.

  • On your browser, issue 'http://localhost' to get the welcome page. Select your language, which leads you to the XAMPP home page (under 'htdocs/xampp'). You can now verify all the components by clicking on the info links on the left panel, e.g., phpinfo() for PHP, perlinfo() for Perl, PhpMyAdmin for MySQL.
  • On your browser, issue 'http://localhost/phpmyadmin' to access the MySQL via PhpMyAdmin. Select the 'Users' tab. which reveals that no password is set for the superuser root and the anonymous user. (You can also click the 'Admin' button under MySQL to launch PhpMyAdmin.)

To shutdown XAMPP, stop all the services and press 'Quit'.

Write a Hello-world PHP Script

By default, the Apache's document root directory is located at '<XAMPP_HOME>/htdocs'. Use a programming editor (such as notepad++ for Windows, or gedit for Ubuntu/Mac OS) to write a simple PHP script called 'hello.php' and save under the 'htdocs' directory, as follows:

To run this PHP script, start a browser and issue URL http://localhost/hello.php, assuming that Apache server has been started.

Another Example: Write another PHP script called 'phpinfo.php' (saved under 'htdocs') to display the PHP settings under Apache, as follows:

Run the script by issuing URL 'http://localhost/phpinfo.php'.

XAMPP Directory Structure

XAMPP is organized in the sub-directories. The important ones are:

  • htdocs: the default apache's document root directory.
  • apache, mysql, FileZillaFTP, MercuryMail, tomcat: for the server software.
  • phpMyAdmin: for the PhpMyAdmin tool.
  • php, perl: for the languages.
Apache Configuration

The Apache's main configuration file 'httpd.conf' is located at '<XAMPP_HOME>apacheconf'. Take note of the following configuration directives:

  • The core directives are: 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 authorization are: [TODO] Explanation
  • The directives related to logging are:
PHP Configuration

The PHP's main configuration file 'php.ini' is located from '<XAMPP_HOME>php' (as revealed by phpinfo() output).

[TODO] Explanation

MySQL Configuration

The MySQL's main configuration file 'my.ini' is located at '<XAMPP_HOME>mysqlbin'. Take note of the following settings:

  • MySQL Server Daemon (mysqld.exe) 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 Interactive Client (mysql)
Customizing MySQL

The default MySQL installation creates a superuser called 'root' without password. It also provides an anonymous user with no password. You need to

This free software for Mac OS X was originally created by scout-app. The latest installer occupies 46.4 MB on disk. This Mac download was scanned by our built-in antivirus and was rated as malware free. SCOUT: implement SIMOTION projects simply and efficiently SCOUT is the result of many years of experience in developing automation solutions. Via the intuitive and flexible user interface, you have total control over all process steps all the way to commissioning. Scan Tool Diagnostic Software. Franchise Process. Owning a Franchise. Why Mac Tools? Investment & Routes. Request Information. Mac Tools Reviews. Mac Tools Print Media. Mac Tools-MDT10-Scout-4.0 Release Notes - Final.pdf: Download Now: 4.1.3.1 Release Notes - Mac Tools.pdf: Download Now. Simotion scout software for mac. Siemens Industry Catalog - Automation technology - Automation systems - SIMOTION Motion Control System - SIMOTION software - SIMOTION engineering software - SIMOTION SCOUT software package. As an already registered user simply enter your userame and password in the login page in the appropriate fields.

  1. Set a password for 'root'.
  2. Remove the anonymous user.
  3. You should not use superuser 'root' for normal daily operations. Instead, create a new user (says xampppuser) for operational use.

There are a few ways to administer MySQL, via the graphical client 'PhpMyAdmin', or command-line client 'mysql'.

  • PhpMyAdmin: login to PhpMyAdmin via 'http://localhost/phpmyadmin'. Click the 'Users' tab ⇒ Set password for root (for all hosts) (Select ⇒ Edit Privilege ⇒ Change Password ⇒ GO ⇒ Refresh). Delete the anonymous user denoted as 'Any' User (Select ⇒ Remove selected users ⇒ GO). Create a new user called 'xampppuser' by clicking the 'Add User'. Grant all privileges to begin with.
    Note: Once you set a password for root, you may need to modify the PHP configuration file in order to login with the new password. See 'PhpMyAdmin PHP Configuration'.
  • MySQL command-line client ('mysql.exe'): Read 'How to setup MySQL'.
Start a new PHP Webapp

To start a new PHP webapp, create you working directory under 'htdocs' (says directory 'hello'). You can launch your webapp via URL 'http://localhost/hello'. Alternatively, you can use the 'htdocs' directory, by removing all the existing contents. You can access the webapp via URL 'http://localhost'.

For Production, configure a virtual host (in Apache) for your project.

WampServer 2.5 (For Windows)

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).

At the time of writing, WampServer 2.5 bundles Apache 2.4.9, MySQL 5.6.17, PHP 5.5.12, PhpMyAdmin 4.1.14, SqlBuddy 1.3.3 and XDbebug 2.2.5.

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 (32-bit or 64-bit) ⇒ Download the installation file (e.g., wampserver2.5-Apache-2.4.9-Mysql-5.6.17-php5.5.12-64b.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.
Starting/Stopping WampServer

To start the WampServer, choose 'Start WampServer' from the 'Start' menu; or run 'wampmanager.exe' from the WampServer installed directory.

An little icon will appear on the icon tray. 'Green' indicates that all the services have started; while 'Red' indicates that all the services have stopped. Click on the icon to open the 'WampServer Control Panel'. You could:

  • Under 'Quick Admin': Start/Stop/Restart all the services (Apache & MySQL services).
  • Put the server online (so that user can access the server over the Internet) or offline.
  • Configure Apache, MySQL and PHP, under their respective sections.
  • Launch 'PhpMyAdmin'.
  • Others.

To shutdown the program, click 'Stop All Services' on WampServer Control Panel ⇒ right-click on the WampServer icon ⇒ Exit.

Verifying Apache/MySQL/PHP Installation

By default, a directory called 'www' was created under the WampServer installed directory, which serves as the Apache's document root directory. 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 turn green indicating 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 only be accessed in localhost).
  2. To verify Apache: Start a browser and issue URL http://localhost. This will in turn request for 'index.php'. The index page provides links to documentations, aliases and tools. The installation creates these aliases for Apache: phpmyadmin, sqlbuddy, phpsysinfo for the respective services. You can issue URL http://localhost/alias-name to access these services.
  3. To verify MySQL: Issue URL http://localhost/phpmyadmin to access the MySQL via PhpMyAdmin. Click on the 'Users', which reveals that no password was set for the superuser root and the anonymous user.
  4. To verify PHP: Issue URL http://localhost/?phpinfo=1, which runs the phpinfo() function.
Write a Hello-world PHP Script

Use a programming editor (such as notepad++ for Windows, or gedit for Ubuntu/Mac OS) to write a simple PHP script called 'hello.php' and save under the 'www' directory, as follows:

To run this script, start a browser and issue URL http://localhost/hello.php, assuming that the Apache server has been started.

Another Example: Write another PHP script called 'phpinfo.php' (saved under 'www') to display the PHP settings under Apache, as follows:

For

Run the script by issuing URL 'http://localhost/phpinfo.php'.

WampServer Directory Structure

WampServer is organized in the following directory structure. The important ones are:

  • 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: the default apache's document root directory.
  • logs: contains apache, php, mysql error/access logs.
  • alias: contains the the apache's alias configuration for PhpMyadmin, SQL Buddy and WebGrind.
Apache Configuration

The Apache's main configuration file 'httpd.conf' is located at '<WAMPSERVER_HOME>binapacheApache2.x.xxconf'. Take note of the following configuration directives.

  • The core directives are: 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 authorization are: [TODO] Explanation
  • The directives related to logging are:
PHP Configuration

The PHP's main configuration for Apache2 'php.ini' is located at '<WAMPSERVER_HOME>binapacheApache2.x.xxbin' (as revealed by phpinfo() output).

Gforce virtual string machine. File size: 38.5 MBIn much the same way that we played a big part in the rediscovery of the mellotron sound, in 2007 we had a similar role in resurrecting the tones of a range of iconic string machines, including the Freeman String Symphonizer, Eminent 310 and Solina String Ensemble, and bringing them back into vogue with release of VSM.

[TODO] Explanation

MySQL Configuration

The MySQL's main configuration file 'my.ini' is located at '<WAMPSERVER_HOME>binmysqlmysql5.x.xx'. Take note of the following settings:

  • MySQL Server 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)
  • MySQL Interactive Client (mysql)
Customizing MySQL

The default MySQL installation creates a superuser 'root' without password. It also creates an anonymous user with no password. You need to:

  1. Set a password for 'root'.
  2. Remove the anonymous user.
  3. You should not use superuser 'root' for normal daily operations. Instead, create a new user (says wampuser) for operational use.

There are many ways to administer MySQL, via the graphical client 'PhpMyAdmin' or 'SQL Buddy'; or command-line client 'mysql.exe'.

  • PhpMyAdmin: login to PhpMyAdmin via 'http://localhost/phpmyadmin'. Click the 'Users' tab ⇒ Set password for root (for all hosts) (Select ⇒ Edit Privilege ⇒ Change Password ⇒ GO ⇒ Refresh). Delete the anonymous user denoted as 'Any' User (Select ⇒ Remove selected users ⇒ GO). Create a new user called 'wampuser' by clicking the 'Add User'. Grant all privileges to begin with.
    Note: Once you set a password for root, you may need to modify the PHP configuration file in order to login with the new password. See 'PhpMyAdmin PHP Configuration'.
  • SQL Buddy: login to SQL Buddy via 'http://localhost/sqlBuddy'. Click 'Submit' with empty password for 'root'. Select 'Users'. Set password for all root users of all hosts (Select ⇒ Edit). Remove the anonymous user (the row with empty user name) (Select ⇒ Delete). Create a new user called 'wampuser' by filling in 'Add a New User'. Grant all privileges except the 'Grant option' to begin with.
  • MySQL command-line client ('mysql.exe'): Read 'How to setup MySQL'.
Start a new PHP Webapp

To start a new PHP webapp, create you working directory under 'www' (says directory 'hello'). You can launch your webapp via URL 'http://localhost/hello'. Alternatively, you can use the 'www' directory, by removing all the existing contents. You can access the webapp via URL 'http://localhost'.

For Production, configure a virtual host (in Apache) for your project.

LAMP Server (For Ubuntu)

Read 'How to Install LAMP Server on Ubuntu'.

Eclipse PDT (PHP Developer Tool)

Eclipse PDT (@ http://www.eclipse.org/pdt) is an IDE for PHP webapp development. The main advantage is it can debug PHP server-side scripts with XDebug or Zend Debugger extension.

Alternative PHP IDEs are: NetBeans (@ http://www.netbeans.org), PHPEclipse (@ http://www.phpeclipse.com).

Install Eclipse PDT
  • If you have never installed any Eclipse package, goto Eclipse mother site @ http://www.eclipse.org ⇒ Downloads ⇒ Select 'Eclipse for PHP Developers':
    • For Windows: Download the ZIP file (32-bit or 64-bit). Unzip the downloaded file in a directory of your choice.
    • For Mac OS: Read 'How to Install Eclipse on Mac OS'.
    • For Ubuntu: Read 'How to Install Eclipse on Ubuntu'.
  • If you have installed an Eclipse package (such as Eclipse IDE for Java Developers), you can add the PDT plugin by:
    1. Launched Eclipse ⇒ Select 'Help' menu ⇒ 'Install New Software'.
    2. The 'Install' dialog appears. In 'Work with' field, pull down the drop-down menu and select 'Neon - http://download.eclipse.org/releases/neon' for Eclipse 4.6 (or 'Mars' for Eclipse 4.5; or 'Luna' for 4.4; or Kepler for 4.3; or Juno for 4.2; or helios for Eclipse 3.7).
    3. In the 'Name' box, expand 'Programming Language' node ⇒ Check 'PHP Development Tools (PDT)' ⇒ Next ⇒ Accept the license ⇒ Finish.
Configure Eclipse PDT with XDebug

Assume that you have install xDebug (which is bundled with XAMPP and WampServer).

Launch Eclipse ⇒ Select 'Window' menu ⇒ Preferences ⇒ Expand the 'PHP' node:

  1. Select 'Servers' ⇒ Check that there is an entry with 'Name' of 'Default PHP Server' and 'URL' of 'http://localhost' ⇒ Select the entry ⇒ Edit ⇒ Select 'Debugger' tab ⇒ In 'Debugger': Select 'XDebug'.
  2. Select 'PHP Executable' ⇒ 'Add':
    • In 'Name', Enter a name, e.g. 'myPHP', 'WampServer' or 'XAMPP'.
    • In 'Executable Path', enter the location of PHP executable 'php.exe' (e.g., '<WAMPSERVER_HOME>binphpphp5.x.xphp.exe' for WampServer, '<XAMPP_HOME>phpphp.exe' for XAMPP (Windows)).
    • In 'PHP ini file', enter the php configuration file used by the Apache (e.g., '<WAMPSERVER_HOME>binapacheApache2.2.xxbinphp.ini' for WampServer. '<XAMPP_HOME>phpphp.ini' for XAMPP (Windows)).
    • In 'PHP Debugger', select 'XDebug' (which is bundled in WampServer and XAMPP).
  3. Select 'Debug':
    • In 'Server', select 'Default PHP Server'.
    • In 'PHP Executable', select the PHP Executable configured in the previous step (i.e., 'WampServer' or 'XAMPP').
  4. Select 'Manual' ⇒ Check that there is an entry with 'Site Name' of 'php.net' with 'URL' of 'http://www.php.net/manual/en'.
  5. Browse through the other settings for PHP.
Writing a Hello-world PHP program in Eclipse PDT
  1. Launch Eclipse. Choose a workspace.
  2. Create a new PHP project: 'File' ⇒ New ⇒ PHP Project (or 'Project..' ⇒ PHP ⇒ PHP Project).
    • In 'Project Name', enter a name for the project, e.g., 'hello'.
    • In 'Contents', select 'Create project at exiting location', enter your web server's root directory followed by the project name (e.g., '<WAMPSERVER_HOME>wwwhello' for WampServer, '<XAMPP_HOME>htdocshello' for XAMPP - Make a sub-directory called 'hello' under 'www' or 'htdocs') ⇒ 'Finish'.
  3. Write your PHP program: Right-click on the project 'hello' ⇒ 'New' ⇒ 'PHP File'. Enter the following codes and saved as 'HelloObj.php':

    Again, create a new PHP file for the following driver program 'HelloDriver.php':

  4. To run the program, right-click anywhere on 'HelloDriver.php' ⇒ 'Run As' ⇒ 'PHP Web Application' (output shown in Eclipse internal browser or external browser) ⇒ The launch URL shall be http://localhost/hello/HelloDriver.php.
    To select your browser, select 'Window' ⇒ Preferences ⇒ General ⇒ Web Browser ⇒ Choose your browser, such as internal web browser, or external web browser (Firefox, IE, etc).
    The browser shall display 'Hello World!'.
    Note: You can also run this script as a 'PHP CLI Application', i.e., a standalone command-line interface program instead of server-side script, as the above program are purely PHP, with no HTML statements.
Debugging PHP Server-side Script

HERE.

PhpMyAdmin

PhpMyAdmin (http://www.phpmyadmin.net) is a popular open source web-base tool intended to handle the administration of MySQL database system.

Installing PhpMyAdmin

PhpMyAdmin is bundled in WampServer, installed under '<WAMPSERVER_HOME>appsphpmyadmin4.x.xx'. It is also bundled in XAMPP, under '<XAMPP_HOME>phpmyadmin'.

For Ubuntu, read 'Install PhpMyAdmin for Ubuntu'.

Launching PhpMyAdmin

PhpMyAdmin is an Apache PHP application. Typically, an alias called 'phpmyadmin' is defined which maps to its installed directory.

To launch PhpMyAdmin, start Apache and MySQL servers. Then, start a browser and issue URL http://localhost/phpmyadmin.

Using PhpMyAdmin

[TODO]

PhpMyAdmin's Configuration for Apache
  • In WampServer: PhpMyAdmin is configured in '<WAMPSERVER_HOME>aliasphpmyadmin.conf', which is included into Apache's main configuration file '<WAMPSERVER_HOME>binapacheapache2.4.9confhttpd.conf' via directive 'Include '<WAMPSERVER_HOME>/alias/*''. In the 'phpmyadmin.conf', an alias called '/phpmyadmin' is defined which maps to PhpMyAdmin's directory '<WAMPSERVER_HOME>/apps/phpmyadmin4.x.xx/'.
  • In XAMPP: PhpMyAdmin is configured in '<XAMPP_HOME>apacheconfextrahttpd-xampp.conf', which is included into Apache's main configuration file '<XAMPP_HOME>apacheconfhttpd.conf' via an Include directive. In the configuration, an alias called '/phpmyadmin' is defined which maps to PhpMyAdmin's directory at '<XAMPP_HOME>/phpMyAdmin/'.
PhpMyAdmin's PHP Configuration

PhpMyAdmin is a PHP app running under Apache. The PHP app uses a configuration file called 'config.inc.php', located at the PhpMyAdmin installed directory. The default configuration uses so-called 'config' authentication type which requires you to hardcode the MySQL user and password inside the configuration file:

If you change MySQL root's password, you need to enter the new password into this file, in order to login into MySQL.

I recommend that you change the authentication type to 'cookie', which prompts you to for the login user and password.

Notes on Errors
  • Cannot login using root, after setting password. See above.
  • If you get an error 'Connection for controluser as defined in your configuration failed', see 'http://stackoverflow.com/questions/11506224/connection-for-controluser-as-defined-in-your-configuration-failed-phpmyadmin-xa'. (I encountered this error for XAMPP.)

SQL Buddy

SQL Buddy (http://www.sqlbuddy.com) is an alternative to PhpMyAdmin. SQL Buddy is bundled in WampServer, under directory <WAMPSERVER_HOME>appssqlbuddy1.3.x. SQL Buddy could be easier to use than PhpMyAdmin.

To use SQL Buddy, start a browser, and issue URL http://localhost/sqlbuddy.

[TODO] more user guide

Debugging PHP Webapps

XDebug for Debugging Server-side PHP Script

XDebug (@ http://xdebug.org) is an PHP extension, that allow you to debug server-side PHP Script running under Apache in Eclipse PDT.

Install xDebug Extension for PHP
  • For WampServer, xDebug module is installed as '<WAMPSERVER_HOME>/bin/php/php5.x.xx/zend_ext/php_xdebug-2.x.x-5.x-vc11-x86_64.dll'.
  • For XAMPP (Windows), xDebug module is '<XAMPP_HOME>/php/ext/php_xdebug.dll'.
  • For XAMPP (Mac OS), xDebug module is ... @@To check
  • For Ubuntu, read 'Install XDebug extension for PHP' for Eclipse PDT'.

To verify that xDebug is installed, search the phpinfo() output (run 'phpinfo.php' written earlier) for 'xdebug', which shall show up as follows:

Configure xDebug for Eclipse PDT
  1. Find the PHP configuration file for Apache from the phpinfo() output, under 'Loaded Configuration File'.
    • For WampServer, it is '<WAMPSERVER_HOME>binapacheapache2.4.9binphp.ini'.
    • For XAMPP (Windows), it is '<XAMPP_HOME>/php/php.ini'.
    • For XAMPP (Mac OS), it is '<XAMPP_HOME>/php/php.ini'. (@@ To Check)
    • For Ubuntu: See 'Install XDebug extension for PHP' for Eclipse PDT'.
  2. Check if the following lines are included in the PHP configuration file (include them otherwise): Restart the Apache Server.
Example 1: Debugging PHP Server-side Script

Let's trace through the 'hello' PHP Webapp created earlier, which contains two PHP scripts: 'HelloDriver.php' and 'HelloObj.php'.

  1. Set a breakpoint at line 2 of 'HelloDriver.php' by clicking on the left margin.
  2. Right-click on 'HelloDriver.php' ⇒ 'Debug As' ⇒ 'PHP Web Application'.
  3. Switch to 'Debug' perspective.
  4. The program shall break at line 2 of 'HelloDriver.php'. Click 'Step Into (F5)' or 'Step Over (F6)' to trace through the program. Inspect the variables and observe the output at the web browser.
  5. You need to terminate the debugging session by pushing the 'Terminate' button.

Take note that if you check 'Break at First Line' in the debug configuration, the program will pause at the first line of a PHP file. You need to push 'Resume' or 'Step Over'.

Example 2: Debugging PHP Webapp (HTML+PHP)

Create the following two files 'Query.php' and 'ProcessQuery.php', saved under Apache's document root directory.

Note: This code is meant for illustrating PHP webapp debugging. In practice, the two files are often merged into one.

To run the PHP webapp, right-click on 'Query.php' ⇒ Run As ⇒ PHP Web Application

To debug the PHP webapp:

  1. right-click on 'Query.html' ⇒ Debug As ⇒ Debug Configuration ⇒ Select 'Debugger' tab ⇒ Check 'Break at First Line' (which sets a breakpoint at the beginning of each file) ⇒ 'Debug'.
  2. Switch to 'Debug' perspective.
  3. Push 'Resume (F8)' button to run thru the HTML code.
  4. Switch to the browser. Enter something in the textfield and click 'submit'.
  5. Switch back to Eclipse, it now breaks at the first line of 'ProcessQuery.php'.
  6. Click 'Step Into (F5)' or 'Step Over (F6)' to trace through the program. Inspect the variables and observe the output at the web browser.
  7. You need to terminate the debugging session by pushing the 'Terminate' button.

Take note that if your program contains HTML and PHP, your need to switch between the web browser (to enter data) and eclipse (to push 'Resume' to run thru the HTML codes, or 'Step Over/Into' to execute the PHP codes). At times, the browser/eclipse icons on the taskbar brink to remind you to switch over.

Note: I actually intend to name 'Query.php' and 'Query.html', but the XDebug session does not seem to start on HTML (although you could tailor the 'Run configuration' to start running from an HTML file)?! Let me know if you have an answer. For the time being, name all files (may be only the starting page) '.php' even they contains only HTML. This is not really a problem.

Zend Debugger for Debugging Server-side PHP Script

[TODO] Can't install Zend Debugger long time ago. To try again and compare with XDebug. Not critical.

Firebug Plugin for Firefox for Debugging Client-side JavaScript/HTML/CSS

PHP Webapp Exercises

  1. Read 'PHP Basics'.
  2. Read 'PHP MySQL webapps'. Use 'PDO' for database connection.
  3. Convert the 'Java Servlet Case Study ebookshop' from Java Servlet (Tomcat/MySQL) to PHP (Apache/MySQL).
  4. Read HTML, CSS and JavaScript.
  5. Proceed to 'Advanced PHP Webapp Development'.

REFERENCES & RESOURCES

  1. Robin Nixon, 'Learning PHP, MySQL, JavaScript, and CSS', 2nd ed, O'Reilly, 2012.
  2. Timothy Boronczyk, Elizabeth Naramore, Jason Gerner, Yann Le Scouarnec, Jeremy Stolz and Michael K. Glass, 'Beginning PHP6 Apache MySQL Web Development', Wrox Programmer to Programmer, 2009.
  3. Luke Welling and Laura Thomson, 'PHP and MySQL Web Development', 4th edition, Addison-Wesley, 2008.
  4. Dirk Merkel, 'Expert PHP 5 Tools', Packt Publishing, 2010.