Sortare array multidimensional in PHP

Exista situatii in care anumite informatii sunt stocate intr-un array multidimensional, cum ar fi, de exemplu, continutul unui tabel care trebuie apoi afisat intr-o pagina. Daca tabelul are un numar considerabil de linii si coloane este posibil sa apara nevoia sortarii informatiei dupa anumite coloane.

In cazul in care informatia este adusa direct dintr-o tabela a unei baze de date, atunci lucrurile sunt destul de simple, pentru ca sortarea se poate face la momentul interogarii bazei de date. Insa, daca informatia de pe anumite coloane ale tabelului este calculata dupa anumite formule si nu poate fi regasita direct in baza de date interogata, atunci lucrurile se complica putin. In aceasta situatie, sortarea trebuie facuta direct pe array-ul multidimensional care contine informatia din tabelul de afisat.

Read More

Generare certificat VPN

In vederea realizarii unei conexiuni sigure prin VPN la un server care ruleaza OpenVPN (si nu numai) este necesara folosirea unui certificat. Acest certificat se genereaza pe server-ul de VPN iar apoi se copiaza pe calculatorul clientului si va fi utilizat in realizarea conexiunii.

In continuare vom lua ca exemplu generarea unui certificat VPN pentru utilizatorul lorand.szekely

Read More

Creare folder partajat CentOS

Windows partajeaza resursele cum ar fi imprimantele sau sistemul de fisiere (file system) folosind protocolul Server Message Block (SMB). Pentru ca un sistem de operare cum este CentoOS sa poata partaja aceste resurse intr-o retea cu sisteme Windows si invers, trebuie, prin urmare, sa suporte SMB. Acest lucru se poate realiza folosind Samba.

Samba permite atat sistemelor CentOS sa partajeze resurse cu un sistem Windows, cat sistemelor Windows sa partajeze resurse cu sistemele CentoS. CentOS acceseaza resursele Windows folosind pachetul samba-client. Pe de alta parte, resursele CentOS sunt partajate cu sistemele Windows folosind pachetul samba. In mod normal, pachetul samba-client este instalat si configurat by default si permite utilizatorului sa acceseze resursele partajate pe un sistem Windows fara alte configurari. In schimb, pentru a permite unui sistem CentOS sa partajeze resurse cu un sistem Windows sunt necesare cateva configurari suplimentare.

Read More

Fujitsu ServerView RAID Manager

Adaugare HDD hotplug la un server Fujitsu Primergy RX300.

– se insereaza HDD-ul in locasul sau
– intr-un browser se acceseaza adresa: http://ip-server:3173
– autentificarea se face cu un utilizator cu drepturi de administrator
– se creaza un nou LogicalDrive in care se adauga HDD-ul proaspat atasat
– click dreapta pe LogicalDrive -> Start Initialization
– dupa finalizarea initializarii HDD-ul va fi vizibil in Windows Server -> Manage -> Disk Drives
– se partitioneaza, se formateaza si este functional.

Revocare certificat in OpenVPN

Pentru revocarea certificatului unui client se foloseste comanda:

./revoke-full marco

Daca apare eroarea :

bash: ./revoke-full: Permission denied

atunci trebuie verificat ca accesul pe fisierul ./revoke-full  sa fie 0744  (implicit este 644 ).

De asemenea se poate da un restart la serviciu /etc/init.d/openvpn restart  si apoi rula comanda ./vars.

Mesajul care apare dupa revocare trebuie sa fie:

[root@gw openvpn]# ./revoke-full marco
Using configuration from /etc/openvpn/openssl.cnf
Revoking Certificate 0A.
Data Base Updated
Using configuration from /etc/openvpn/openssl.cnf
marco.crt: C = RO, ST = TM, O = Lintesa, CN = marco, emailAddress = email@domain.ro
error 23 at 0 depth lookup:certificate revoked

La revocarea unui certificat se genereaza fisierul crl.pem  care trebuie copiat in locatia /etc/openvpn/ , apoi in fisierul server.conf  se adauga linia crl-verify crl.pem . Fisierul crl.pem  este de tip append-only si este verificat de fiecare data cand un client se conecteaza prin openvpn, asa ca nu trebuie facut restart la serviciul openvpn dupa revocarea unui certificat.

Nota: Toate comenzile au fost executate in folderul /etc/openvpn .

Alte surse:
http://openvpn.net/index.php/open-source/documentation/howto.html#revoke
http://blog.abhijeetr.com/2012/06/revokeunrevoke-client-certificate-in.html

Inlocuire tastatura ASUS X51L

La laptopul ASUS X51L tastatura nu este prinsa in suruburi. In partea de sus si in partea dreapta sunt niste cleme mici de siguranta care trebuie impinse lateral sub carcasa de plastic a laptopului si care elibereaza tastatura sa vina in sus. Aceste cleme trebuie impinse cu o surubelnita subtire si actionate sensibil ca sa nu se rupa. Dupa ce tastatura este ridicata se scoate cablul din soclu si se inlocuieste tastatura. Pentru scoaterea cablului din soclu trebuie deschisa sigurant acestuia tragand usor de ea din fiecare capat.

Se introduce cablul de la noua tastatura in soclu, se inchide siguranta acestuia, iar la final, noua tastatura se apasa in jos pana se aud clicurile de la cele 4 cleme de siguranta.

Driver MSSQL pentru PHP

La unul din proiectele mele am avut nevoie sa extrag o serie de informatii din SAP si sa le introduc intr-o baza de date MySQL pe care apoi sa o extind cu informatii aditionale si sa creez/extrag diferite rapoarte. In configuratia clientului SAP folosea baze de date MSSQL, iar server-ul web pe care rula aplicatia rula CentOS administrat prin Plesk.

Pentru a se conecta la o baza de date MSSQL, PHP are nevoie de o extensie/un driver care sa-i permita acest lucru, la fel cum are nevoie de un driver pentru conectarea la o baza de date MySQL. Asa cum spune si documentatia PHP, driver-ul pentru MSSQL este disponibil numai pentru PHP care ruleaza pe Windows.

Read More

Instalare si configurare OpenVPN pe Mac OS X

Instalare Tunnelblick

  1. Se descarca Tunnelblick de la adresa https://tunnelblick.net/downloads.html
  2. Dublu click pe fisierul descarcat (Tunnelblick_3.7.4b_build_4921.dmg)
  3. Dublu click pe iconita Tunnelblick
  4. Daca este afisata o fereastra de confirmare pentru rularea aplicatiei (chiar daca este descarcata de pe internet) se alege Open
  5. Asteapta pana instalarea se finalizeaza cu succes.

Dupa instalare, Tunnelblick va solicita un fisier de configurare pentru conexiunea la un server OpenVPN. In cazul in care exista acest fisier el poate fi utilizat. Daca nu exista, atunci Tunnelblick poate genera un fisier standard de configurare care poate fi modificat.

Importul unui fisier de configurare existent

  1. Se creaza un folder (oriunde) cu denumirea asa cum se doreste sa fie identificata conexiunea respectiva.
  2. In acest folder se copiaza toate fisierele legate de acea configuratie
    • cel putin un fisier .ovpn sau .conf
    • alte fisiere cu certificate sau key pentru configurare (.key, .crt, .pem, .cer, .der, .p12, .p7b, .p7c, .pfx)
    • scripturi pentru configurare (obligatoriu cu extensia .sh)
  3. Se adauga extensia .tblk la denumirea folderului. Dipa aceasta modificare iconita folderului se va schimba corespunzator unei configuratii Tunnelblick VPN
  4. Dublu-click pe acest folder pentru importul configuratiei.

Un exemplu de fisier de configurare (client.ovpn):

client
dev tun
proto udp
remote 89.136.216.194 1194
nobind
persist-key
persist-tun
ca ca.crt
cert lorand.szekely.crt
key lorand.szekely.key
ns-cert-type server
comp-lzo
verb 3

In cazul acestei configuratii, folderul contine urmatoarele fisiere:

  • client.ovpn (fisierul de configurare)
  • ca.crt (certificatul
  • lorand.szekely.crt (certificatul corespunzator utilizatorului lorand.szekely)
  • lorand.szekely.key (cheia privata pentru certificatul utilizatorului lorand.szekely)

Este recomandata utilizarea separata a perechilor de fisiere .crt/.key pentru fiecare client/utilizator in parte (lorand.szekely.crt, lorand.szekely.key)

Conectarea/Deconectarea la un server OpenVPN

Pentru realizarea conexiunii la un server OpenVPN click pe iconita Tunnelblick din bara de sus si apoi click pe conexiunea dorita (Connect configuratie).

Pentru deconectare click pe iconita Tunnelblick si apoi Disconnect configuratie.

Daca se doreste consultarea detaliilor legate de o conexiune click pe iconita Tunnelblick si apoi VPN Details.

Documentatie si Download Tunnelblick
https://tunnelblick.net/index.html

Model de fisier de configuratie pentru OpenVPN
https://github.com/OpenVPN/openvpn/blob/master/sample/sample-config-files/client.conf

Documentatie OpenVPN
https://openvpn.net/index.php/open-source/documentation.html

Altele informatii utile:
http://strongvpn.com/setup_macosx_openvpn_tunnelblick.shtml

PHP Warning: open_basedir restriction in effect

Unul dintre elementele de siguranta ale PHP este si parametrul open_basedir , care se asigura ca un script PHP nu poate accesa un fisier aflat in afara locatiei/locatiilor permise.

Atunci cand un script php incearca accesarea unui fisier, de exemplu cu fopen() sau gzopen(), se verifica locatia fisierului. Daca fisierul se afla in afara locatiei permise, PHP va refuza sa-l deschida si va returna urmatoarea eroare:

PHP Warning: fopen(): open_basedir restriction in effect.
File(/var/www/vhosts/host_name/folder_name/filename.txt) is not within the allowed path(s): (/var/www/vhosts/host_name/other_folder_name/:/tmp/) in /var/www/vhosts/host_name/script.php on line 27

Eroarea apare in log-ul server-ului de http, Apache (error_log).

Exista mai multe solutii pentru aceasta problema:

Read More

Instalare Ubuntu Tweak in Ubuntu 12.04

Ubuntu Tweak este o aplicatie care permite configurarea Ubuntu intr-un mod foarte accesibil pentru oricine. Cu ajutorul lui Ubuntu Tweak se permite accesul la optiuni si setari ale desktopului sau ale sistemului, la care altfel nu am avea acces.

Ubuntu Tweak nu este distribuit oficial de Canonical, asa ca poate fi instalat numai dupa ce ii adaugam o noua sursa.

Instalare Ubuntu Tweak

sudo add-apt-repository ppa:tualatrix/ppa
sudo apt-get update
sudo apt-get install ubuntu-tweak

 

Instalare Notepad++ in Ubuntu 12.04

Nu am gasit un soft de editare php care sa mearga sub Linux, sa stie sa deschida/salveze fisierele direct prin FTP/SFTP si sa-mi placa mai mult decat Notepad++. Asa ca am fost nevoit sa instalez Notepad++ in Ubuntu 12.04 (versiunea utilizata de mine).

Numai ca Notepad++, desi este un soft open source,  nu este suportat oficial de Ubuntu, ci are doar versiune pentru Windows. Prin urmare il pot utiliza numai prin Wine (www.winehq.org).

Pasi pentru instalarea Notepad++:

1. Mai intai trebuie instalat Wine:

sudo apt-get install wine

2. Apoi se descarca Notepad++ de pe site-ul notepad-plus-plus.org. Link direct: http://notepad-plus-plus.org/download/.

3. Alegeti optiunea “Open with Wine Windows Program”.

4. Alegeti limba.

5. Instalati. Alegeti sa creeze un shortcut pe desktop.