Raspberry Pi: installing a LAMP server

Let's put the Raspberry Pi to good use:

 

1. Install Mysql

sudo pacman -S mysql

2. Start your server

# systemctl start mysqld

3. Secure your mysql installation

# /usr/bin/mysql_secure_installation

——————-

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MySQL to secure it, we'll need the current
password for the root user.  If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on…

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 … Success!

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 … Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 … Success!

By default, MySQL comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 – Dropping test database…
 … Success!
 – Removing privileges on test database…
 … Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 … Success!

Cleaning up…

All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

———————-

 

# nano /etc/mysql/my.cnf

 

[mysqld]

bind-address=127.0.0.1

 

 

Restart mysql

systemctl restart mysqld

 

 

================

Install PHP

 

pacman -S php php-apache libmcrypt libtool

 

nano /etc/php/php.ini

 

 

 

======================

 

nano /etc/locale.gen

enable:

en_US.UTF-8 UTF-8
en_US ISO-8859-1

 

save and generate your locales

# locale-gen

 

 

Install and Configure PostgreSQL

pacman -S postgresql

 

# mkdir -p /var/lib/postgres/data

# chown httpd:httpd -Rv /var/lib/postgres/

 

Configure Postgresql data dir

# su – postgres -c "initdb –locale en_US.UTF-8 -D '/var/lib/postgres/data'"

———————–

The files belonging to this database system will be owned by user "httpd".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".

fixing permissions on existing directory /var/lib/postgres/data … ok
creating subdirectories … ok
selecting default max_connections … 100
selecting default shared_buffers … 24MB
creating configuration files … ok
creating template1 database in /var/lib/postgres/data/base/1 … ok
initializing pg_authid … ok
initializing dependencies … ok
creating system views … ok
loading system objects' descriptions … ok
creating collations … ok
creating conversions … ok
creating dictionaries … ok
setting privileges on built-in objects … ok
creating information schema … ok
loading PL/pgSQL server-side language … ok
vacuuming database template1 … ok
copying template1 to template0 … ok
copying template1 to postgres … ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
–auth-local and –auth-host, the next time you run initdb.

Success. You can now start the database server using:

    postgres -D /var/lib/postgres/data
or
    pg_ctl -D /var/lib/postgres/data -l logfile start
 

——————————————

 

Enable the service

# systemctl enable postgresql

Start if you want to use it before rebooting

# systemctl start postgresql

 

(gs)MT- REQUEST ID #680057 / STATUS: Pending Resolution

James S.

Thank you for the phone call. Here is a brief summary of our conversation:

You called because you were unable to access phpMyAdmin and phpPgAdmin from your AccountCenter and could not connect to the databases through a SSH client.

While looking into this issue I found that the migration from the MySQL Grid-Container back into the MySQL SmartPool failed due to a failed SSH connection during the process.  I was able to contact a systems administrator who started the migration process again, as we spoke we were able to verify that the migration had been completed and we had access to both phpMyAdmin and phpPgAdmin.

You mentioned that you thought this script should be updated so that if it fails such as it did earlier today it would automatically be run again.  A note of this has been made and sent to the (mt) Media Temple requests department for further review.

During the course of this call we also reviewed some issues with support requests regarding Account: 144100.  At this time I transferred you to speak with my lead technician to get more information regarding the status of the pg_dump error.

If you have any further questions regarding your (mt) Media Temple services, please feel free to contact us at any time.

Best Regards,

James Starbuck
Customer Support
(mt) Media Temple
<v> 877-578-4000
<f> 310-564-2007
Check out our New User Forums!
http://kb.mediatemple.net/questions/824/

@
2009.10.23 05:54 PM
I’m waiting on this one

(gs)MT- REQUEST ID #670588 / STATUS: Resolved

Rob C.

Thank you for the phone call. Here is a brief summary of our conversation:

You called in to report that your Postgres server was not working. Your web application was displaying error messages, you couldn’g connect via the command-line and phpPgAdmin was not working. I notified an engineer and they are taking a look at it. I’ll be calling you back this evening to let you know the status.

If you have any further questions regarding your (mt) Media Temple services, please feel free to contact us at any time.

Best Regards,

Rob C.
Customer Support
(mt) Media Temple
<v> 877-578-4000
<f> 310-564-2007

NEW! User Forums: http://kb.mediatemple.net/questions/824/

@
2009.10.08 09:51 PM
Maurício

I have posted a screen capture here:
http://portnumber53.com/images/alocate_memory.jpg

waiting for your call back

@
2009.10.08 09:54 PM
Rob C.

Thank you for the phone call. Here is a brief summary of our conversation:

You had some concerns you wanted addressed during our call:

1) Regarding support request #657283 you’d like to know if the problem with pg_dump versions has been fixed because you want to move back to the Smart Pool and are concerned about database corruption.

2) Your Container that has both MySQL and Postgres running ran into problems tonight and had to be rebooted. You’ve had the same application error displayed in the Smart Pool, after you were bursted and in a Container. I’m going to see if we have any Postgres server logs available.

3) You’d like someone to call you back about these issues.

If you have any further questions regarding your (mt) Media Temple services, please feel free to contact us at any time.

Best Regards,

Rob C.
Customer Support
(mt) Media Temple
<v> 877-578-4000
<f> 310-564-2007

NEW! User Forums: http://kb.mediatemple.net/questions/824/

@
2009.10.08 11:07 PM
Maurício

just a small detail, I had the same issues regardless the application I was using (psql, pg_dump, phpPgAdmin) in both the Smart Pool and the Grid Container.
None of my "Postgresql websites" have big databases (or tables) and they don’t have high traffic usage at the moment.

@
2009.10.08 11:25 PM
Mike M.

The application is giving errors about the environment being out of memory. This message can happen in the Smartpool or the Container because you are exhausting all the resources avaliable. The Postgres error logs have been put in the /backup directory and this information can be viewed via the Account Center File Manager. I would advise to look over this information in regards to optimizing the environment. If you need any further insight please to not hesitate to ask.

Best Regards,

Mike M
Customer Support
Check out the New User Forums: http://kb.mediatemple.net/questions/824/
(mt) Media Temple
<v> 877-578-4000
<f> 310-564-2007

@
2009.10.09 05:41 AM

(gs)MT- REQUEST ID #657010 / STATUS: Resolved

Robert V.

Thank you for the phone call. Here is a brief summary of our conversation:

Due to the repeated inconvenience of your PostgreSQL database running out of memory intermittently since you started this account, I am reassigning this Support Request to our Billing Department to add a database container to your account.  The first month will be free.  If you decide that you do not want to keep the container you will need to close the container before the month is over.  If you do not close the container before the month is over your account will be assessed a fee for the container’s usage.

Thank you for using (mt) Media Temple!  Feel free to let us know if there is anything else we can help you with.

Best Regards,

Robert V.
Customer Support
(mt) Media Temple
<v> 877-578-4000
<f> 310-564-2007

NEW! User Forums: http://kb.mediatemple.net/questions/824
Knowledge base: http://kb.mediatemple.net/

@
2009.09.17 01:40 PM
Shawnte A.

We have added a MySQL Container Lite to your account.  The billing cycle for this service is 10/25/09 at which time you will be charged $20.00.  If you have any additional questions or concerns, please feel free to contact us.

Best Regards,

Shawnte` A.
Billing Administrator
(mt) Media Temple
<v> 877-578-4000
<f> 310-564-2007

@
2009.09.17 03:38 PM
James S.

Thank you for the phone call. Here is a brief summary of our conversation:

You called because your databases were moved into a MySQL GridContainer,and since this has occurred your sites running in a PostgreSQL database are unable to resolve to the database content.  An error occurred when the databases were moved to the container which caused the tables in your PostgreSQL databases not to be added to the databases when they were created.

In order to have this issue resolved I have reassigned this support request to a higher level employee to resolve.  Please anticipate a delay while this support request is reassigned and resolved.

If you have any further questions regarding your (mt) Media Temple services, please feel free to contact us at any time.

Best Regards,

James Starbuck
Customer Support
(mt) Media Temple
<v> 877-578-4000
<f> 310-564-2007
Check out our New User Forums!
http://kb.mediatemple.net/questions/824/

@
2009.09.17 05:32 PM
Maurício

In case I choose not to keep the Container, will my databases be moved automatically to the regular pool?

@
2009.09.17 05:33 PM
Michael H.

You were having a problem with your databases not being populated with tables after the GridContainer move. Our admins were able to recover your data and I restored the tables for you. We don’t currently have an answer for the original issue, but our engineers are working on it. You should receive an email once they have it resolved.

If you have any further questions regarding your (mt) Media Temple services, please feel free to contact us at any time.

Best Regards,

Mike H.
Customer Support
(mt) Media Temple
<v> 877-578-4000
<f> 310-564-2007

NEW! User Forums: http://kb.mediatemple.net/questions/824/

@
2009.09.17 08:51 PM
Mike M.

Please refer to your Grid-Service "aliofthevalley.com", Support Request # 657007, for the response to this Support Request. If you have any further questions regarding your (mt) Media Temple services, please feel free to contact us at any time.

Best Regards,

Mike M
Customer Support
Check out the New User Forums: http://kb.mediatemple.net/questions/824/
(mt) Media Temple
<v> 877-578-4000
<f> 310-564-2007

@
2009.09.17 11:17 PM
Travis O.

Thank you for the phone call. Here is a brief summary of our conversation:

You called because you were unhappy about the way your PostgreSQL databases were bursted and you lost the complete functionality of your databases.

We have determined that your request requires the assistance of a higher level staff member or system administrator. Please anticipate a short delay while we re-assign your support request to a staff member who is better equipped to service your needs.

Due to the nature of this support request additional time may be needed to provide you with a response. Thank you.

Best Regards,

Travis Oberlander
Customer Support
(mt) Media Temple
<v> 877-578-4000
<f> 310-564-2007

@
2009.09.24 10:54 AM
Nathaniel M.

Thank you for the phone call. You called in because you wanted to speak with a supervisor about an issue related to your pg databases. I asked if you could submit a support request with the exact problem so I could escalate it if necessary and you asked to speak to a supervisor. I then transferred you to TJ.

Best Regards,

Nat M
Customer Support
(mt) Media Temple
<v> 877-578-4000
<f> 310-564-2007
User Forums: http://kb.mediatemple.net/questions/824/

@
2009.09.24 04:49 PM
Maurício

I understand I received a month credit for a Grid Container because of the allocate memory problems (which happen when trying to connect to the database server; and not white running any query either complex or simple)

I’d like to know if I could get any compensation on the fact that my databases were not moved correctly to the Grid Container.

@
2009.09.24 05:14 PM
Daniel C.

Thank you for the phone call. Here is a brief summary of our conversation:

We spoke today regarding issues connecting to your database externally. I was able to duplicate this issue and explained that an administrator will take a look into this shortly.

If you have any further questions regarding your (mt) Media Temple services, please feel free to contact us at any time.

Best Regards,

Daniel C.
Customer Support
(mt) Media Temple
<v> 877-578-4000
<f> 310-564-2007

NEW! User Forums: http://forums.mediatemple.net

@
2009.09.24 06:23 PM
Daniel C.

Please use support request #661555 for further information on the external connection issue.

Best Regards,

Daniel C.
Customer Support
(mt) Media Temple
<v> 877-578-4000
<f> 310-564-2007

NEW! User Forums: http://forums.mediatemple.net

@
2009.09.24 08:10 PM

(gs)MT- REQUEST ID #657283 / STATUS: Resolved

Mauricio

Hello,

would it be possible to get pg_dump to be the same version as the server so I don’t get messages like:

"pg_dump: server version: 7.4.23; pg_dump version: 7.4.7″

I’m aware that I can use "–ignore-version"…. but still…

@
2009.09.17 10:08 PM
Michael H.

I was informed that the dumps were failing and the version had to be ignored in order to get them to complete properly. This was done with just "-i".
After evaluating the details of this support request it has been determined that the reported issue will need to be logged into (mt) Media Temple’s product bug and feature request tracking database.  Issues logged to this system will receive high-priority attention and consideration for resolution in future upgrades and product refreshes.

This support request is being marked as "resolved"; however in actuality it is being moved to an internal tracking system.  If you have any additional information to add to this specific issue we ask that you update us as soon as possible so that the full scope and detail of the issue is logged.  Thank you for your understanding in this matter.

Best Regards,
Michael Handa
Customer Support
(mt) Media Temple
<v> 877-578-4000
<f> 310-943-3559
For up to date status information visit
http://status.mediatemple.net

@
2009.09.18 03:28 PM

(gs)MT- REQUEST ID #551946 / STATUS: Resolved

Maurício:

I have been receiving "Cannot allocate memory" errors when trying to connect to a postgresql database
I believe I’m not doing anything weird on my end, and since it’s a website I just started developing I’m probably the only one opening the page.

Can you guys look at what the logs say?

the database is db64704_dothejob
and the website is http://dothejobfor.me/store

thanks

@
2009.03.30 05:40 PM
Mike M.

We would have to see the active processes running in order to see the out of memory errors. Since the databases are shared there is no log we can go to to see your specific memory error. I was able to access ‘http://dothejobfor.me/store‘ without any problems. Is there anything specific I should be doing to replicate the memory error?

Best Regards,

Mike M
Customer Support
Check out the New User Forums: http://kb.mediatemple.net/questions/824/
(mt) Media Temple
<v> 877-578-4000
<f> 310-564-2007

@
2009.03.31 01:30 AM
Maurício
I just got the error message again:

pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: could not fork new process for connection: Cannot allocate memory

started: 1:46am 9/14/2009

my mysql dies along:

There was an SQL error: Out of memory (Needed 122672 bytes) – SELECT *
FROM `music_song`
ORDER BY `songid` DESC
LIMIT 0, 10

and the problem lasted for 2 minutes

Sharon C.

These errors indicate that your scripts were trying to access the database server during the latency spike that occurred at about the time you documented. Due to the shared nature of the (gs) Grid-Service, there may be brief periods of resource unavailability. We have both automated and manual monitoring of the servers to keep these interruptions to a minimum; however, we apologize for the inconvenience. Basically, if several users are trying to use a higher-than-average amount of resources in the database SmartPool, we have automatic systems in place, and engineers who keep an eye on things, to move those high-load users to temporary isolated database servers, so that they can continue to function and other users won’t be affected. There can be a few minutes of resource unavailability before the load-balancing kicks in, however. If you want to read more about how MySQL on the (gs) Grid-Service works, please see this article:

http://blog.mediatemple.net/weblog/2007/01/19/anatomy-of-mysql-on-the-grid/

If this system does not appeal to you, we also have MySQL Containers (we do not have PostGreSQL Containers, however). A MySQL Container will do two things for you. First, it will isolate you from other users, so you won’t be affected by any "bad neighbors" in the SmartPool, even for brief periods of time. Second, it will allow you to run a more detailed analysis on all your queries, so you can be sure your own database use is fully optimized. It’s completely seamless to move to and from a Container. See these articles for more details:

Getting started with your MySQL GridContainer
http://kb.mediatemple.net/questions/705

Generating a MySQL report for your MySQL container
http://kb.mediatemple.net/questions/939

Best Regards,

Sharon C.
Customer Support
(mt) Media Temple
<v> 877-578-4000
<f> 310-564-2007

NEW! User Forums: http://kb.mediatemple.net/questions/824/

@
2009.09.14 11:00 PM

MediaTemple: my new opinion about the (gs) GridServer

After having lots of headaches with GISOL webhosting back in 2007, I finally stumbled upon Media Temple’s (gs) Grid Server hosting.

They make it sound really great, and it was at the beginning.

But so far these are the problems I ran into with them:

  • Storage problems when my account was on Cluster 02.
  • Account deletion after I manually moved everything from Cluster 02 to another account on Cluster 03
  • Account shortly disabled after I had recovered most of my files on a new account on Cluster 03 after the first was deleted.
  • Storage problems on the Cluster 03 (as annoying as they were on Cluster 02)
  • Postgresql "Cannot allocate memory" errors while running small-databases-low-traffic sites with PostgreSQL databases (hours on the phone trying to get some useful help)

I’ll detail each of those later, since it’s pretty late right now

  • IGlr