Many PHP developers use recognized programs like Denwer, Xampp, WampServer and others as a development environment. But often these programs make it impossible to develop a project in a native habitat. That is, on linux servers. However, this problem can be solved quite simply, it takes a little time and the Internet is at hand. As a result, you'll have on hand LAMP server to work. So, let's begin.
What do we need?
- First of all, we need a virtualization program. The best software package, in my opinion, will be VirtualBox. Downloading the current version from www.virtualbox.org ;
- The next step is to download the stable distribution distribution of the Debian operating system from the official website www.debian.org , I advise you to download minimal images.
After downloading and installing VirtualBox, we will conduct a not tricky manipulation of the network settings, so as not to return to this issue in the future. Immediately make a reservation that I am doing the installation and configuration on Windows 7 Pro x64. Continue by doing the following:
Start -> Control Panel -> Network and Internet -> Network and Sharing Center
Then in the field “View active networks” go to the properties of the active network. In the "Access" section, you enable sharing for the VirtualBox Host-Only Network. In response to this action, we will receive a notification that our local network card has been assigned the following IP address: 192.168.137.1
Now we’ll make changes to the VirtualBox settings, for this you need to start it and do the following:
File -> Properties -> Network -> Poke a Screwdriver
We check that the IP address is 192.168.137.1, I also advise you to disable DHCP.
All this software preparation is complete. Getting Started Installing Debian. I see no reason to describe the installation, everything is trivial there with the exception of a few points:
- During the automatic network setup, click "cancel" and set the IP address to manual, for example 192.168.137.5. The remaining network settings can be left unchanged;
- Leave the root password field of the user empty, with the next step you will configure your user and sudo will automatically be configured
Oh yeah, I almost forgot. Before you start installing Debian, in the main VirtualBox window, click on
Properties (orange gear) and select the
network item. Change
the connection type to the
virtual host adapter , then in step change
the adapter type to
PCnet-FAST III and finish by pressing
Ok .
Installing LAMP from the testing version.
First, you need to specify the server from which we will install the necessary packages.
Note: all commands imply using
sudo before a command!
')
We will perform a standard ritual for the newly installed distribution.
apt-get update
apt-get upgrade
Well, start.
vi /etc/apt/sources.list
Add testing server
#TESTING
deb http: //ftp.ru.debian.org/debian/ testing main non-free contrib
deb-src http: //ftp.ru.debian.org/debian/ testing main non-free contrib
Now you need to set priorities for downloading updates and installing packages.
vi /etc/apt/preferences
create preferences file, fill it with the following contents:
Package: *
Pin: release a=stable
Pin-Priority: 700
Package: *
Pin: release a=testing
Pin-Priority: 650
All the same magical actions
apt-get update
apt-get upgrade
But the packages will not be updated on the testing version, the whole "fault" Apt-Pinning.
The
apt-get install apache2-mpm-itk
offer us to install the version from stable, but the goal is different.
apt-get install apache2-mpm-itk / testing seems to suggest installing the version from the testing branch, but there will be many incompatibilities of the packages. To do this, use the following command:
apt-get -t testing install apache2-mpm-itk
I want to immediately notice! The installation process is likely to fail
E: Failed to perform online perl configuration. For details, see man 5 apt.conf about APT :: Immediate-Configure. (2)
To solve it, do the following:
apt-get install perl -o APT::Immediate-Configure=false
Now you can continue the installation.
apt-get -t testing install php5
apt-get -t testing install mysql-server
apt-get -t testing install phpmyadmin
These three commands involve all the necessary dependencies for normal server operation. And it is performed individually in sequence. I came across the fact that
apt-get -t testing install apache2-mpm-itk php5 mysql-server phpmyadmin
may have unsolvable dependencies.
Next, install the package vsftpd
apt-get -t testing install vsftpd
In general, now we have all the necessary minimum for working with a web server. But it is not yet configured. Here is what we need for this:
- Configuring / etc / apache2 / sites-available / default
- setup /etc/php5/apache2/php.ini
- configuration / etc / vsftpd.conf
I will not give a detailed setting of the listings, it is beyond the scope of this article, which is no longer small. I will cite just a few tips:
- when setting up / etc / apache2 / sites-available / default, do not forget to set the AssignUserID user user as we used when installing apache2-mpm-itk
- when setting up /etc/php5/apache2/php.ini, pay attention to display_errors, set the value to on, otherwise you can sit for a long time before a 500 error in the browser
- The /etc/vsftpd.conf setting consists in closing anonymous user access, allowing local users to work, and locking in the home directory. But I would like to draw your attention to the missing parameter in the configuration: force_dot_files = YES This parameter allows us to view hidden files, or rather files starting with a dot. for example .htaccess
Now I will tell why we manually set the IP address for the server. For local access to the site on VirtualBox, we need to edit the
hosts file in our Windows. Let's enter there
192.168.137.5 *.dev
Now you can freely create virtual domains in the zone .dev and work with them through the browser.
I note that
site.dev should also be registered in
/ etc / apache2 / sites-available / default in the
ServerName parameter. That's basically it. Now we can upload files via FTP to our new server and will have access to it by accessing site.dev. That's how we got a fully functional server for local development with the latest server software packages. It is also easy to install new packages that you may need for more comfortable development. For example, developers can perform
apt-get -t testing install memcached php5-memcache
and in their hands a powerful caching tool appears.
The following sources were used to write the article:
Apt-pinning
Bug fix with perl
Well, your own experience
Thanks for attention. I will be glad to hear criticism and suggestions.
UPD: thanks
inkvizitor68sl for the amendment to edit the hosts file