How To Install Linux, Apache, MySQL, PHP (LAMP) Stack on the Omega
LAMP stack is a group of open source software used to get web servers up and running. The acronym stands for Linux, Apache, MySQL and PHP. Since the Omega itself runs OpenWRT, which is a Linux operating system, the linux part is taken care of. Here’s how we install the rest.
Step 1. Expand your storage with USB
Apache as other packages requires a lot of space so first thing You will have to do is to extend your storage with extroot. More information about how to do that can be found at [[Tutorials/Using-USB-Storage-as-Rootfs]].
Step 2. Setting Up Apache
opkg update opkg install apache
Find the line that starts with
Listen and change it to:
Listen <ip You use to connect to Your console>:<port number other than 80>
Also find the line that starts with
ServerName and change it to:
ServerName <name for Your server>:<same port as in Listen>
Then you should find
LogLevel debug, and change it into:
Now we are ready to start the Apache server:
Your webserver can be accessed at:
<Onion Console IP adress>:<Your chosen port>.
Step 3. Setting Up PHP
opkg install php5 php5-cgi php5-fastcgi
Next, we will create a symbolic link to allow PHP to handle CGI requests:
ln -s /usr/bin/php-cgi /usr/share/cgi-bin/
We will also need to tell Apache where to send all the CGI requests. To do this, we add the following lines to
<Directory "/usr/share/cgi-bin"> AllowOverride None Options FollowSymLinks Order allow,deny Allow from all </Directory> <Directory "/usr/bin"> AllowOverride None Options none Order allow,deny Allow from all </Directory>
Find the line
ScriptAlias /cgi-bin/ "/usr/share/cgi-bin" and add
ScriptAlias /php/ "/usr/bin/" after it:
ScriptAlias /cgi-bin/ "/usr/share/cgi-bin" ScriptAlias /php/ "/usr/bin/"
<IfModule mime_module> section and add the following:
AddType application/x-httpd-php .php Action application/x-httpd-php "/php/php-cgi"'
To change the Directory Index, find
DirectoryIndex index.html, and change change it to the following:
DirectoryIndex index.php index.html
Next, open up
/etc/php.ini and uncomment (or remove) the following lines:
extension = gd.so extension = mbstring.so extension = pdo-mysql.so extension = pdo_sqlite.so extension = socket.so
Also do not specify
doc_root so change
After that restart the Apache server to reload the changed configurations:
Step 4. Setting Up MySQL
opkg install mysql-server php5-mod-mysqli
Create two folders for MySQL:
mkdir -p /mnt/data/mysql mkdir -p /mnt/data/tmp
Once you have installed MySQL, we should activate it with this command:
Next step is to create root user (when I installed mysql, table with users was empty, if that’s also Your case use this steps). Execute:
/usr/bin/mysqld --skip-grant-tables --skip-networking & mysql -u root use mysql; FLUSH PRIVILEGES; INSERT into user (Host, User,Password) values ('localhost','root',' '); UPDATE user SET Password=PASSWORD('password you want') WHERE User='root'; update user set Select_priv='Y',Insert_priv='Y',Update_priv='Y',Delete_priv='Y',Create_priv='Y',Drop_priv='Y',Reload_priv='Y',Shutdown_priv='Y',Process_priv='Y',File_priv='Y',Grant_priv='Y',References_priv='Y',Index_priv='Y',Alter_priv='Y',Show_db_priv='Y',Super_priv='Y',Create_tmp_table_priv='Y',Lock_tables_priv='Y',Execute_priv='Y',Repl_slave_priv='Y',Repl_client_priv='Y',Create_view_priv='Y',Show_view_priv='Y',Create_routine_priv='Y',Alter_routine_priv='Y',Create_user_priv='Y' where user='root'; FLUSH PRIVILEGES;
To start the MySQL server you should type:
And that’s it :)
Thanks for Josip Mlakar for writing this awesome tutorial!