In this article the author will show you how to setup Linux Apache Mysql PHP
(LAMP) web development environment on Ubuntu with your web site
files in your home directory. This way you can easily develop for web.
The goal of the author in this session are to install Apache, MySQL and PHP with Xdebug module for PHP development debugging. The author will setup
Xdebug
and use it with Netbeans, but once Xdebug is properly installed, you
can debug your applications with any other application like Eclipse. The
most important thing for a web developer or web programmer is to be
able to easily modify his web development files without becoming root
for everything he is working on. The author will show you how to instruct Apache
to make virtual host in your home directory. At the end of it all the author will
install Netbeans and create sample project to work with our new
development environment. So lets get started...
First thing you need to do is to install Linux Apache Mysql PHP
server. In Debian based Linux distribution this is easily done using
tasksel to select all necessary packages for typical Linux Apache Mysql
PHP server. So lets install tasksel program first. Type this at your
terminal:
sudo apt-get install tasksel
|
Next thing is to use tasksel to install Linux Apache Mysql PHP server. We do this this way:
sudo tasksel install lamp-server
|
In the middle of Linux Apache Mysql PHP installation, tasksel will
ask you for MySQL root password. It is very important to write down what
you gave to tasksel, because this password will be used to access MySQL
database. After Linux Apache Mysql PHP installation is over, you will
install Xdebug and one of the PHP image manipulation modules any web
developer will need in his work, namely
GD library. While you're working with apt-get, you will install Netbeans from Ubuntu repository. Here's the command to do this:
sudo apt-get install php5-xdebug php5-gd netbeans
|
Author usually use directory "public_html" inside auhtor home to keep all of author web sites code. You can use whatever directory inside you home you
want. Important thing to mention is that Ubuntu web server is started as
user "www-data" and directory where you keep your web source code should
be accessible and writable by this user. So you will designate "www-data"
as the owner of "public_html" directory. What's important for you is
that you, as users have same permissions like your web servers "www-data"
user for "public_html" directory so you could freely do your work. you will
accomplish this by adding your selves to the "www-data" group. Now lets
create "public_html" directory, adjust its permissions and add your
selves to the "www-data" group:
mkdir /home/$USER/public_html
sudo chown -R www-data:www-data /home/$USER/public_html
sudo chmod -R 775 /home/$USER/public_html
sudo adduser $USER www-data
|
Now after we have our "public_html" folder in place, we will adjust
Apache setting so that "public_html" is used as web server document
root. This way when we go to "localhost" or "127.0.0.1" server serves
files from "/home/$USER/public_html". We will copy default web site
template and modify it:
sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/public_html
|
Now we need to edit new web site template to point to
"/home/$USER/public_html" instead of default "/var/www". Lets open our
new template for editing:
gksudo gedit /etc/apache2/sites-available/public_html
|
We need to modify two lines: "DocumentRoot" from "/var/www" to
"/home/username/public_html" and location of the second "Directory"
section from "/var/www/" to "/home/username/public_html/". Notice the
extra "/" on the "Directory" definition when compared to "DocumentRoot",
this is on purpose. Instead of "usensame" put you own username.
Everything else should be left as it were.
Here's the example of our modified file on my Ubuntu PC. Instead of "Aryan" in this file you must put your own username:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/Aryan/public_html
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/Aryan/public_html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /home/Aryan/public_html/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /home/Aryan/public_html/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
|
Now we can disable Ubuntu default "/var/www"site and enable our new "public_html" site:
sudo a2dissite default
sudo a2ensite public_html
|
What's left is to adjust Xdebug settings to allow debugging. We need to append to Xdebug configuration file:
For older Ubuntu (Debian) versions:
gksudo gedit /etc/php5/conf.d/xdebug.ini
|
For recent Ubuntu (Debian) versions:
gksudo gedit /etc/php5/mods-available/xdebug.ini
|
We will add this at the bottom of "/etc/php5/conf.d/xdebug.ini":
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
|
HERE's the example of old Xdebug configuration file, and
HERE's the example of our modified file.
Now we restart Apache server to apply our new settings:
sudo service apache2 restart
|
The last thing to do is to setup Netbeans with project inside our new
"public_html" directory. Because we added our selves to the "www-data"
user group, we should restart our PC now to make sure everything is
refreshed properly. Next we start Netbeans from Applications ->
Programming -> Netbeans and create new project by going to the File
-> New Project. In the dialog we select PHP from the left side and
"PHP Application" from the right side.
On the next screen you should configure things like this if you want your project to be called "techytalk":
Netbeans New PHP Project - selecting name and location
After you click "next" you will be presented with the screen for run
configuration. "Run As" should be set to "Local web site" and "Project
URL" to "http://localhost/techytalk/". Leave the checkbox unchecked and
click next two times.
Now you are presented with index.php inside Netbeans IDE and you can
start creating your new web site. You can go to Run -> Run Project to
show your web site in your browser or Debug -> Debug project to
debug it. When you choose debug you will be given an opportunity to go
trough your PHP code line by line and watch state of variables change at
the bottom of Netbeans window on "Variables" tab.
This guide is a bit longer so there are many places for both of us to
make mistake. So if something doesn't work, comment here (you don't
need to register) and I'll do my best to help you out.
No comments:
Post a Comment