Setting Up Your LAMP Testing Server: A How-To Guide
If you’re transitioning from Windows using XAMPP to a setup closer to a server environment, setting up a LAMP (Linux, Apache, MySQL, PHP) stack on Ubuntu can streamline your development process. This guide is designed to help you bypass some common hurdles and ensure that you have an effective testing server that mirrors your production environment.
Why Choose LAMP?
LAMP is a well-known stack used for web development. Here’s why it’s worth your while:
- Open Source: All components are free to use.
- Flexible: The stack supports an array of applications and services.
- Community Support: Extensive documentation is available to help troubleshoot potential issues.
Now, let’s walk through the setup process step by step.
Setting Up Your LAMP Testing Server
Step 1: Install Necessary Packages
Start by updating your package manager and installing necessary applications. Here’s a complete script to set up your environment:
apt-get -yq update
apt-get -yq upgrade
apt-get -yq install sudo
apt-get -yq install gcc g++ make apache2 php5 php5-curl php5-mysql php5-gd mysql-common mysql-client mysql-server phpmyadmin samba
Step 2: Configure Samba
To enable shared directory access, configure Samba. Create a Samba configuration file with the following content:
echo '[global]
workgroup = workgroup
server string = %h server
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
encrypt passwords = true
passdb backend = tdbsam
obey pam restrictions = yes
;invalid users = root
unix password sync = no
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *password\supdated\ssuccessfully* .
socket options = TCP_NODELAY
[homes]
comment = Home Directories
browseable = no
writable = no
create mask = 0700
directory mask = 0700
valid users = %S
[www]
comment = WWW
writable = yes
locking = no
path = /var/www
public = yes' > /etc/samba/smb.conf
Step 3: Set Up Apache Virtual Hosts
You should define your Apache virtual hosts. Replace the default configuration file with:
echo 'NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
</VirtualHost>' > /etc/apache2/sites-enabled/000-default
Step 4: Restart Services
After making your configuration changes, restart Apache and Samba:
/etc/init.d/apache2 stop
/etc/init.d/samba stop
/etc/init.d/apache2 start
/etc/init.d/samba start
Step 5: Secure MySQL
To secure your MySQL installation, run the following commands to set your root password:
/etc/init.d/mysql stop
echo "UPDATE mysql.user SET Password=PASSWORD('MySQLPassword') WHERE User='root'; FLUSH PRIVILEGES;" > /root/MySQLPassword
mysqld_safe --init-file=/root/MySQLPassword &
sleep 1
/etc/init.d/mysql stop
sleep 1
/etc/init.d/mysql start
Step 6: Automate with a Script
If you find yourself reinstalling often, streamline the process by saving your installation commands in a script file named install
:
chmod +x install
./install
Conclusion
Your LAMP testing server is now ready to help you replicate a production-like environment directly on Ubuntu! With a well-set server, you’ll improve your development workflow and spending less time running into issues.
For additional configurations, always refer to official documentation or explore community forums.
Happy coding!