Posts Tagged ‘php’

SAMP cu Solaris

solarisInstalarea pachetului SAMP (Solaris Apache MySQL PHP) se face destul de usor, avand in vedere ca ne pune la dispozitie o comanda care face acest lucru.

pkg install amp

Odata instalate, aceste pachete trebuie puse si pe enable, altfel ele nu vor porni, asa cum la alte sisteme de operare se intampla.

svcadm enable apache22

svcadm enable mysql

Aceste doua comenzi fac enable si pornesc cele doua servicii.

In cazul in care dorim sa facem restart la aceste servicii, rulam:

svcadm restart apache22

svcadm restart mysql

In mod implicit MySQL se instaleaza fara sa se aloce nici o parola pe userul root, iar pentru modificarea parolei trebuie sa ne conectam la serverul de mysql si apoi sa ii alocam o parola:

mysql sau mysql -u root -p

SET PASSWORD FOR root@localhost=PASSWORD(‘parola_alocata’);

Rularea VirtualHosts ca useri separati (pool-uri separate) in Apache cu php5-FPM si Ubuntu/Debian

phpapcIn acest tutorial voi prezenta modul de rulare a php-ului cu FastCGI si a VirtualHosturilor folosind pool-uri separate cu useri separati.

Pentru ca este un server pe care vor rula si baze de date, eu am instalat si MySQL. Asadar:

apt-get install mysql-server mysql-client

unde se urmeaza procedura instalarii alocand parola pentru contul root la MySQL.

Acum incepe instalarea propriu-zisa pentru apache, php5, mysql si php5-fpm.

apt-get install apache2-mpm-worker
apt-get install libapache2-mod-fastcgi php5-fpm php5 php5-mysql

, iar dupa finalizarea instalarii trebuie dat enable la modulele instalate; actions, fastcgi si alias.

a2enmod actions fastcgi alias

Inainte de a incepe configurarile trebuie precizat ca voi rula un VirtualHost folsind grupul web si userul web_test evident ca parte din acest grup. Prima data creez grupul si userul si apoi voi trece la partea de configurare:

groupadd web
useradd -s /bin/false -d /home/web_test -m -g web web_test

Acum mai treuie sa modificam in VirtualHost unde adaugam urmatoarele linii intre <VirtualHost> si </VirtualHost>:

<IfModule mod_fastcgi.c>
AddHandler php5-fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9001 -pass-header Authorization
</IfModule>

astfel incat sa arate in felul urmator:

<VirtualHost *:80>
ServerName web_test

DocumentRoot /home/web_test
DirectoryIndex index.php index.html

ErrorLog „/var/log/apache2/web_test_error_log”
CustomLog „/var/log/apache2/web_test_access_log” combined

<Directory „/home/web_test/”>
AllowOverride All
</Directory>

<IfModule mod_fastcgi.c>
AddHandler php5-fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9001 -pass-header Authorization
</IfModule>
ServerSignature Off
</VirtualHost>

De asemenea trebuie configurat php-fpm:

vim /etc/php5/fpm/pool.d/web_test.conf

unde am adaugat:

[web_test]
listen = 127.0.0.1:9001
user = web_test
group = web
listen.allowed_clients = 127.0.0.1
pm = dynamic
pm.max_children = 4
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.max_requests = 200
listen.backlog = -1
pm.status_path = /status
request_terminate_timeout = 120s
rlimit_files = 131072
rlimit_core = unlimited
catch_workers_output = yes
env[HOSTNAME] = $HOSTNAME
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

Aici se observa ca fastCGi face diferenta intre useri folosind hostnameul si portul pe care asculta, deci fiecare pool care ruleaza ca user separat trebuie sa aiba si un port diferit. Testarea se face ruland phpinfo(); si accesandu-l din browser. In cazul meu nu a functionat corect pentru ca nu gasea fisierul php5-fcgi asa ca a trebuit sa il creez manual ruland:

touch /usr/lib/cgi-bin/php5-fcgi

Testarea:

O putem face fie din phpinfo, sau ruland whoami.

Pentru phpinfo: vim /home/web_test/www/info.php unde adaugam:

<?php phpinfo(); ?>

Pentru whoami: vim /home/web_test/www/whoami.php unde adaugam:

<?php
echo exec('whoami');
?>

Optional am instalat si php-apc ca si accelerator al aplicatiilor care ruleaza cu php.

LAMP Server cu CentOS

centosInstalarea serverului LAMP in CentOS este putin diferita fata de Ubuntu sau Debian, unde cam totul vine aproape gata la rularea comenzii apt-get install.

Instalarea Apache:

yum install httpd

odata ce a fost instalat, el nu se porneste automat, ci trebuie pornit cu comanda:

/etc/init.d/httpd start

In mod implicit, odata instalat Apache pe CentOS, nu se poate accesa linkul din browser doar daca accesul se face de pe masina locala si ast adatorita unui firewall cu care vine CentOS instalat. Eu am dezactivat firewallul pentru ca am avut nevoie si de alte setari, asa ca l-am pus pe disable cu comenzile:

/etc/init.d/iptables save
/etc/init.d/iptables stop

chkconfig iptables off

Tot in mod implicit, datele se tin in /var/www/html, dar si aici se poate personaliza editand setarile servererului din httpd.conf.

Instalarea MySQL:

yum install mysql mysql-server

Aici din nou e la fel, trebuie pornit manual, iar odata cu pornirea i se initializeaza si tabelele.

/etc/init.d/mysqld start

Ca sa ne putem conecta la serverul MySQL trebuie sa avem o parola a userului root, dar care la instalare nu ni s-a cerut pentru a fi alocata, asa cum fac sistemele Debian-based. Nici o problema, ii creem si parola root, urmand comenzile:

mysql
mysql> USE mysql;
mysql> UPDATE user SET Password=PASSWORD(‘parola_noua’) WHERE user=’root’;
mysql> FLUSH PRIVILEGES;

apoi logarea la serverul MySQL este posibila ruland:

mysql -u root -p

Instalarea php, impreuna ca unele module necesare:

yum install php php-mysql php-common php-gd php-mbstring php-mcrypt php-devel php-xml

Dupa care bine-nteles trebuie restartat Apache, pentru a se actualiza si in setarile lui:

/etc/init.d/httpd restart

Instalarea phpMyAdmin:

Procedura este simpla:

yum install phpmyadmin

si aici din nou acelasi lucru ca si in cazul Apache, unde phpMyAdmin este accesibil doar de pe hosul local. Aici are un mare plus, mai ales ca pentru mine phpMyAdmin = evil datorita vulnerabilitatilor pe care le are.
Ca sa fie accesibil si de pe alte IP-uri, trebuie editat /etc/httpd/conf.d/phpMyAdmin.conf unde se adauga:

Require ip adresa_ip

apoi se poate accesa de pe adresa IP specificata la Require ip.

srv StandDuPp
Articole recente