User Tools

Site Tools


Set Up Amazon Linux AMI with LAMP

Fix timezone:

sudo su -
rm /etc/localtime
ln -s /usr/share/zoneinfo/US/Eastern /etc/localtime
vi /etc/sysconfig/clock

edit ZONE:

ZONE="America/New York"

Add users

sudo su -
groupadd <username>
useradd -g <username> -G wheel,apache -s /bin/bash -d /home/<username> -m <username>

Lock ec2-user

sudo su -
passwd -l ec2-user

Change hostname

edit /etc/sysconfig/network change:




Sudo Changes

sudo su - 
vi /etc/sudoers.d/zz_zustom
chmod 0440 /etc/sudoers/zz_custom

Add the following:

%wheel  ALL=(ALL) ALL

Install mailx

sudo yum install mailx

Change /etc/aliases

Add line:

root:           [email protected]

Then execute run /usr/bin/newaliases

Install logwatch

yum install logwatch

Install Mysql

sudo su -
yum install mysql mysql-server mysql-libs
service mysqld start
mysql -u root
use mysql
set password for 'root'@'localhost' = password('<SomePassword>');
delete from user where password = '';
flush privileges;
drop database test;
mysql -u root -p <SomePassword>
chkconfig --levels 235 mysqld on

Install PostgresSQL

Edit .bashrc and /etc/skel/.bashrcadd line:

export PGDATA=/pgdata
sudo su -
yum install postgresql postgresql-server postgresql-devel postgresql-contrib postgresql-docs
cd /
mkdir /pgdata
chown postgres:postgres /pgdata
su postgres -
initdb -D /pgdata

Edit /pgdata/postgresql.conf, uncomment:

listen_addresses = 'localhost' ...
port = 5432 ...

Edit /pgdata/pg_hba.conf, do Nothing: Set Startup

chkconfig postgresql on

Edit /etc/init.d/postgresql:


Start up postgres

/etc/init.d/postgressql start

Create database user:

sudo su - postgres
create user <some_user>
alter user <some_user> with password '<SomePassword>';
create database <some_database> with owner <some_user>;

Connect as database user:

psql -U <some_user> <some database>

Some SQL stuff:

create table connection_test(message char(100) not null);
insert into connection_test values('Your Connection worked');
select * from connection_test;
\list <== lists all databases aka schemas
\dt   <== lists tables in the database/schema
\q    <== quit psql utility


Install gcc

sudo su -
yum install gcc make libstdc++-devel gcc-c++ fuse fuse-devel curl-devel libxml2-devel openssl-devel mailcap

Install xauth for ssh X11 forwarding

sudo su -
yum install xorg-x11-xauth xterm xorg-x11-server-utils

Install Apache 24 + PHP 54 + Extensions

sudo su -
yum install httpd24 mod24_ssl httpd54-devel
yum install php54 php54-devel php54-gd php54-xml php54-pear pcre-devel php54-mbstring php54-xmlrpc php54-bcmath php54-pdo php54-pgsql php54-mysql
###pear install pecl/apc
###pear install pecl/uploadprogress
chkconfig --levels 235 httpd on

Note that php54-5.4.8-1.27.amzn1.x86_64 viz. php54-common does not have the support. I am sure that they will eventually notice this and fix it but in the mean time I am sticking with php54-5.4.7-1.25.amzn1.x86_64. To downgrade, remove the php packages installed above and use the following… This will also lock the php version at 5.4.7:

sudo su -
yum install php54-5.4.7-1.25.amzn1.x86_64 php54-devel-5.4.7-1.25.amzn1.x86_64 php54-gd-5.4.7-1.25.amzn1.x86_64 php54-xml-5.4.7-1.25.amzn1.x86_64 php54-pear-5.4.7-1.25.amzn1.x86_64 pcre-devel-5.4.7-1.25.amzn1.x86_64 php54-mbstring-5.4.7-1.25.amzn1.x86_64 php54-xmlrpc-5.4.7-1.25.amzn1.x86_64 php54-bcmath-5.4.7-1.25.amzn1.x86_64 php54-pdo-5.4.7-1.25.amzn1.x86_64-5.4.7-1.25.amzn1.x86_64 php54-pgsql-5.4.7-1.25.amzn1.x86_64 php54-mysql-5.4.7-1.25.amzn1.x86_64
yum install yum-plugin-versionlock
yum versionlock php54-common php54 php54-bcmath php54-cli php54-devel php54-gd php54-mbstring php54-mysql php54-pdo php54-pgsql php54-xml php54-xmlrpc

To unlock the version edit /etc/yum/pluginconf.d/versionlock.list

Add the following to /etc/php.d/zz_custom.ini:

; Enable Custom Settings
expose_php = Off
apc.rfc1867 = 1
error_log = /var/log/httpd/php-error.log
date.timezone = "America/New_York"

Logrotate for apache:

sudo su -
vi /etc/logrotate.d/httpd

/var/log/httpd/*log {
    rotate 5
        service httpd restart > /dev/null || true

Setfacl for apache in /var/log

setfacl -m u:apache:rw /var/log


Sample yum commands:

yum list updates
yum list installed
yum remove xxx
yum info xxx
yum update xxx
yum update
yum check-update
yum clean all
yum clean packages
yum clean headers
yum clean oldheaders

For applications needing

You may see the error: <app_name>: error while loading shared libraries: To resolve this error do the following:

sudo yum install

This will install the compat-libstdc++-33.i686 (32-bit)package.

Installing 32-bit libs:

Just in case you have 32-bit apps that need to be installed on your 64-bit linux ami. Install the following to get support. This is equivalent to ia32-libs on Redhat or multilib on Ubuntu

yum install alsa-lib.i686 atk.i686 audit-libs.i686 avahi-libs.i686 cairo.i686 cups-libs.i686    \
            dbus-libs.i686 expat.i686 flac.i686 fontconfig.i686 freetype.i686 gamin.i686        \
            gdk-pixbuf2.i686 glib2.i686 glibc.i686 gnutls.i686 gtk2.i686 jasper-libs.i686       \
            keyutils-libs.i686 krb5-libs.i686 libICE.i686 libSM.i686 libX11.i686 libXau.i686    \
            libXcomposite.i686 libXcursor.i686 libXdamage.i686 libXext.i686 libXfixes.i686      \
            libXft.i686 libXi.i686 libXinerama.i686 libXrandr.i686 libXrender.i686 libXtst.i686 \
            libasyncns.i686 libcom_err.i686 libgcc.i686 libgcrypt.i686 libgpg-error.i686        \
            libjpeg-turbo.i686 libogg.i686 libpng.i686 libselinux.i686 libsndfile.i686          \
            libstdc++.i686 libtasn1.i686 libthai.i686 libtiff.i686 libuuid.i686 libv4l.i686     \
            libvorbis.i686 libxcb.i686 nss-softokn-freebl.i686 pango.i686 pixman.i686           \
            pulseaudio-libs.i686 tcp_wrappers-libs.i686 xcb-util.i686 zlib.i686
tech/unix/ec2_linux_ami.txt · Last modified: 2024/06/21 12:04 by