new VPS for shared hosting

Dupa ce am instalat o copie noua de centos 5.5… hai sa o pregatesc pentru produs 🙂

Urmeaza sa instalez pe ea:

  • MySql
  • MongoDB
  • Apache
  • PHP 5.3
  • mpm-itk
  • phpmyadmin

Si sa incep cu instalarea bazelor de date.

MySQL

1
2
3
4
5
# yum install mysql mysql-server
# chkconfig --levels 235 mysqld on
# /etc/init.d/mysqld start
# mysqladmin -u root password 'new-password'
# mysqladmin -u root -h my.hostname password 'new-password'

MongoDB

adaugam repositoriul oficial celor de la 10gen:

1
# vim /etc/yum.repos.d/10gen.repo

cu continutul luat de la 10gen

1
2
3
4
[10gen]
name=10gen Repository
baseurl=http://downloads.mongodb.org/distros/centos/5.4/os/i386/
gpgcheck=0

si acum instalam

1
yum install mongo-stable mongo-stable-server

ca literatura artistica mai citesti/modifici:

1
# vim /etc/mongod.conf

si la sfarsit

1
2
# chkconfig --levels 235 mongod on
# /etc/init.d/mongod start

pentru test se poate rula:

1
2
3
4
5
6
7
8
# mongo
> use test
switched to db test
> db.foo.save({a: 1})
> db.foo.find()
{ "_id" : ObjectId("4d669a8e20ba6e7b72c33667"), "a" : 1 }
> db.getCollectionNames()
[ "foo", "system.indexes" ]

NB: este necesar a se configura si mecanismul de autentificare

Apache

1
2
3
# yum install httpd mod_ssl openssl
# chkconfig --levels 235 httpd on
# /etc/init.d/httpd start

pentru test se poate incarca in browser adresa masinei pentru a fi siguri ca apache merge bine. Ar trebui sa se incarca o pagina default de apache.

PHP 5.3

implicit repositoriurile de centos contin binare de php 5.1, dar as vrea ceva mai bun decat atat: 5.3 si pentru asta folosim repositoriuri externe ca asta

1
2
3
4
5
6
# rpm -Uvh http://repo.webtatic.com/yum/centos/5/latest.rpm
# yum --enablerepo=webtatic install php
# php --version
PHP 5.3.5 (cli) (built: Feb 19 2011 13:39:52)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

si restul de componente utile pentru php

1
2
# yum --enablerepo=webtatic install php-mysql php-gd php-imap php-pear
    php-xml php-xmlrpc php-mbstring php-mcrypt

pentru mongodb este necesar de a instala packetul php-devel si de suita de programe ce vor compila pluginul de mongo pentru php

1
2
3
4
# yum --enablerepo=webtatic install php-devel
# yum groupinstall "Development Libraries" "Development Tools"
# pecl search mongo
# pecl install mongo

pentru a incarca pluginul automat, in fisierul /etc/php.ini trebuie adaugat linia:

1
extension=mongo.so

restartam apache pentru a incarca noile modificari facute

1
# /etc/init.d/httpd restart

pentru test:

1
2
# cd /var/www/html
# vim index.php

si adaugam continutul pentru index.php

1
<?php phpinfo(); ?>

si la incarcare paginii de index de pe server se pot vedea componentele ce sunt instalate precum si ca este instalat si pluginul de mongodb.

Apache mpm-itk

mpm-itk e un addon de apache ce iti permite sa generezi continut pentru site-uri cu drepturile anumitor utilizatori. Se pot defini utilizatorul/grup in definirea de VirtualHosts.

Binarele pentru instalare se afla pe repositoriul webtatic

1
2
3
# yum install --enablerepo=webtatic httpd-itk
# /etc/init.d/httpd stop
# vim /etc/sysconfig/httpd

adaugam linia in fisierul /etc/sysconfig/httpd

1
HTTPD=/usr/sbin/httpd.itk

acum putem reporni apache

1
# /etc/init.d/httpd start

la moment, modificarile nu sunt vizibile. Pentru a testa, trebuie sa creem pentru inceput un user nou

1
2
# useradd -d /home/husanu -s /bin/bash -m husanu
# passwd husanu

creem un virtualhost in apache

1
2
# cd /etc/httpd/conf
# vim httpd.conf

si adaugam configurarile:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
NameVirtualHost *:80

<VirtualHost *:80>
        ServerName foicucod.ro
        ServerAlias www.foicucod.ro
        ServerAdmin www@foicucod.ro

        DocumentRoot /home/husanu/www

        ErrorLog logs/ro.foicucod.www.err.log
        CustomLog logs/ro.foicucod.www.acc.log combined

        AssignUserId husanu husanu
        php_value session.save_path '/home/husanu/php_sessions'
</VirtualHost>

PS: datorita faptului ca execut scripturile cu un user X, folderul, in care PHP salveaza variabilele de sesiune, trebuie sa aiba posibilitatea de a fi scris/citit de catre userul X, de aceea supraincarc valoarea php session.save_path cu una personalizata.

dupa ce te loghezi la masina cu noul user creat (in cazul meu: husanu):

1
2
3
4
$ mkdir php_sessions
$ mkdir www
$ cd www
$ vim index.php

continutul pentru index.php:

1
2
3
4
5
www.foicucod.ro
<br/>
<?php
        system( 'whoami' );
?>

acum trebuie sa restartam serverul apache pentru a aplica setarile noi cu virtualhost

1
# /etc/init.d/httpd restart

si daca incarcam pagina (in cazul meu foicucod.ro) voi avea o pagina:

1
2
www.foicucod.ro
husanu

a 2-a linie reprezinta userul curent cu care ruleaza scriptul si respectiv am drepturile lui.

phpMyAdmin

1
2
3
4
5
# cd /tmp/
# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
# rpm -Uvh rpmforge-release-0.5.2-2.el5.rf.i386.rpm
# yum install phpmyadmin
# vi /etc/httpd/conf.d/phpmyadmin.conf

commentati toata directiva Directory

1
2
3
4
5
#<Directory "/usr/share/phpmyadmin">
#  Order Deny,Allow
#  Deny from all
#  Allow from 127.0.0.1
#</Directory>
1
# vi /usr/share/phpmyadmin/config.inc.php
1
2
3
4
5
// modificati linia
$cfg['Servers'][$i]['auth_type'] = 'cookie';

// cu linia
$cfg['Servers'][$i]['auth_type'] = 'http';

si restart la apache

1
# /etc/init.d/httpd restart

acum aveti o interfata web a bazei de date mysql la adresa : http://foicucod.ro/phpmyadmin/

ca bonus puteti trage cu ochiu si la phpmoadmin

atat.

2 thoughts on “new VPS for shared hosting

Leave a Reply

Your email address will not be published. Required fields are marked *