5th September 2015, 18:17
#1
7 out of 7 members found this post helpful.
Primul tau site pe un VPS (fara cPanel)
Am profitat de oferta colegului Marius Cristian de AICI, asa ca m-am ales cu un VPS pentru teste, de la Smart VPS. L-am folosit, il folosesc, merge excelent si o sa va arat si voua pasii pe care ii puteti urma pentru a avea un site (sau mai multe) pe un VPS, plus avantajele pe care le puteti avea.
Se spune ca VPS-urile si dedicatele nu sunt pentru oricine, marele public fiind atat de obisnuit cu cPanel incat orice altceva pare prea complicat sa ne batem capul. In opinia mea treburile stau complet diferit. Cateva cunostinte de baza despre cum "sta" site-ul pe un server ar trebui sa aiba oricine are mai mult de un blog pe care scrie o data pe saptamana.
Mentionez ca nu sunt expert, ci incerc doar sa fac un tutorial pe intelesul a cat mai multi utiizatori seopedia. Asa ca astept sugestii pentru imbunatatirea celor scrise aici.
Aveti nevoie de urmatoarele:
- VPS
- terminal (putty)
- client ftp
Pasul 1. Instalarea sistemului de operare
In cazul unui VPS aceasta este cat se poate de simpla si se face automat. In cazul smartVPS se face din doua clickuri: alegem sistemul de operare preferat si apasam pe "install".
Vi se va cere numele serverului si parola de "root". Spre rusinea mea nu mai retin cand anume mi s-au cerut aceste date, dar trebuie mentionat ca parola serverului trebuie sa fie una complexa, iar numele serverului poate fi orice nume va face placere.
vpsadmin.jpg
Control Panel 2015-09-05 16-43-39.jpg
Pasul 2. Conectarea la server
Odata instalat sistemul de operare (eu am ales Debian7) ne vom putea conecta la VPS prin ssh. Pentru windows este necesar un program numit "putty" (sau alternative la acesta), iar cei cu linux si osX se pot conecta din terminal.
Deci, dupa ce deschideti terminalul sau putty, scrieti (inlocuind ip-ul cu cel al serverului):
Cod:
ssh root@111.222.333.444
Vi se va cere parola, apoi sunteti conectati.
Pasul 3. Instalarea componentelor de care avem nevoie pentru a avea un server web si pentru a-l putea administra
In incercarea de a inlocui cPanel cu o solutie gratuita, am gasit Ajenti. Este practic o unealta de administrare a serverului, cu un add-on pentru administrarea site-urilor pe care le vom gazdui.
Marile avantaje ale Ajenti fata de alte paneluri similare sunt ca nu este distructiv si este gratuit. Acesta poate fi instalat oricand si oprit oricand, fara sa afecteze functionalitatea serverului.
Instalarea este simpla si include toate componentele necesare unui server web.
Practic vom face copy/paste la cateva linii, nimic de speriat.
Ce facem in continuare este specific pentru Debian, instructiunile pentru alte sisteme de operare le gasiti pe site-ul ajenti.org
Instalarea Ajenti:
Cod:
wget -O- https://raw.github.com/ajenti/ajenti/1.x/scripts/install-debian.sh | sh
Instalarea AjentiV (cu care vom administra site-urile), Nginx, mysql, php (necesare pentru ca site-urile sa functioneze) ftp, mail
Cod:
apt-get install ajenti-v ajenti-v-nginx ajenti-v-ftp-pureftpd ajenti-v-mysql ajenti-v-php-fpm php5-mysql ajenti-v-mail
service ajenti restart
Vi se va cere o confirmare (daca sunteti siguri ca doriti sa instalati tot ce am scris mai sus). Scrieti Y si apasati enter.
Vi se va cere o parola pentru userul "root" al bazei de date. Alegeti o parola complexa, diferita de cea a serverului.
Veti mai intalni doi pasi, unul legat de mail, la care alegeti Yes si unul pentru nginx-naxsi-ui, la care alegeti tot Yes si urmati pasii (pus o parola pentru baza de date a acestui pachet)
De acum avem totul instalat si ne putem conecta la interfata web de administrare a serverului, Ajenti.
Pentru a accesa interfata web a Ajenti, scriem in browser (inlocuind ip-ul cu cel al VPS-ului):
Cod:
https://11.22.33.44:8000/
User: root
Pass: admin
Prima operatiune este schimbarea parolei standard.
parola.jpg
Apoi, pentru a ne loga cu noua parola, repornim Ajenti:
restart.jpg
Ultima modificare făcută de Dan; 6th September 2015 la 02:34.
5th September 2015, 18:17
#2
2 out of 2 members found this post helpful.
Pasul 4. Configurarea Webserverului si Ajenti
Vom folosi Nginx, asa ca vom configura apache sa "asculte" alte porturi decat cele standard.
Pentru asta, e nevoie de urmatoarele 2 modificari (in fisierele ports.conf si default.conf din apache):
elproxy 2015-09-05 17-55-34.jpg
hostsapache.jpg
Pentru ca modificarile sa aiba efect, este nevoie sa dam "save", apoi restart serviciului apache - o putem face din partea de sus a paginii:
restart-apache.jpg
Urmeaza sa introducem parola de la mysql in Ajenti, pentru ca acesta sa poata crea baze de date:
configuremysql.jpg
Dupa ce apasati pe configure, lasati totul asa cum este, completati doar parola pe care ati pus-o la punctul 3, adica pentru userul "root" al bazei de date.
Apasati apoi pe OK, SAVE si RESTART
Pasul 5: Adaugarea site-urilor
Pentru inceput, mergeti la sectiunea "websites" si apasati pe "enable".
Apoi, adaugam primul site, dandu-i un nume intuitiv (de preferat chiar numele domeniului pe care dorim sa il adaugam):
creamsite.jpg
Apasam apoi pe "restart websites" (practic comanda aceasta da restart serviciului Nginx).
In acest moment, daca totul a mers bine, cand introducem in browser ip-ul VPS-ului, ar trebui sa vedem o pagina cu "service unavailable, maintenance mode".
Pentru ca site-ul sa functioneze, este nevoie sa il configuram, apasand pe "manage", in dreptul sau.
Am facut un video cu setarile necesare, cred ca este mai simplu de urmarit:
(daca cineva are de gand sa ma testeze cu parolele din video - le-am schimbat
)
Calea fisierelor este:
Cod:
/var/www/numesite/public_html
Userul si parola FTP le veti folosi pentru a accesa fisierele site-ului
Userul si parola bazei de date le veti folosi pentru a configura wordpress
Nginx nu foloseste .htaccess, asa ca este nevoie de corespondetul sau pentru nginx. Configuratia de mai jos este una recomandata PENTRU WORDPRESS chiar in tutorialele Ajenti si ar trebui sa functioneze pentru toti.
In tabul "Advanced", in partea de sus, puneti urmatoarele:
Cod:
# This order might seem weird - this is attempted to match last if rules below fail.
location / {
try_files $uri $uri/ /index.php?$args;
}
# Add trailing slash to */wp-admin requests.
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
# Directives to send expires headers and turn off 404 error logging.
location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|at om|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls |exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
access_log off; log_not_found off; expires max;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
# Keep logging the requests to parse later (or to pass to firewall utilities such as fail2ban)
location ~ /\. {
deny all;
}
# Deny access to any files with a .php extension in the uploads directory
# Works in sub-directory installs and also in multisite network
# Keep logging the requests to parse later (or to pass to firewall utilities such as fail2ban)
location ~* /(?:uploads|files)/.*\.php$ {
deny all;
}
# Zero-day exploit defense.
# http://forum.nginx.org/read.php?2,88845,page=3
# Won't work properly (404 error) if the file is not stored on this server, which is entirely possible with php-fpm/php-fcgi.
# Comment the 'try_files' line out if you set up php-fpm/php-fcgi on another machine. And then cross your fingers that you won't get hacked.
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
client_max_body_size 100m;
Apoi fireste, Apply Changes si Restart Websites.
Avem acum totul pus la punct pentru a instala wordpress sau pentru a muta un site wordpress.
Pentru alte CMS-uri sau pentru artificii si redirecturi puteti gasi suficiente resurse de genul: htaccess to nginx converter
Ultima modificare făcută de Dan; 6th September 2015 la 03:17.
5th September 2015, 18:17
#3
2 out of 2 members found this post helpful.
Pasul 6: NameServere + Instalarea Wordpress / Mutarea Wordpress
Ideal pentru managementul DNS este Cloudflare. Va faceti cont (daca nu aveti), adaugati domeniul, urmati instructiunile, alegeti planul "free".
Setarile minime acolo trebuie sa fie:
dnscloud.jpg
Fireste, daca aveti inregistrari suplimentare (spre exemplu emailul domeniului la google apps), faceti modificarile corespunzator.
Puteti face cele de mai sus si la godaddy daca va e mai comod >> https://uk.godaddy.com/help/access-t...-manager-19182
Dupa ce s-au propagat schimbarile (poate dura pana la cateva ore), puteti incepe sa instalati/mutati wordpress.
Pentru asta va fi nevoie sa va conectati cu un client FTP folosind datele din Ajenti > websites > site-ul in cauza > FTP
Dupa ce ati urcat fisierele (wordpress de la wordpress.org dezarhivat / sau ce fisiere aveti nevoie), intrati la Ajenti >websites > site-ul in cauza > general > fix file permissions
a) instalare noua:
Acum, daca introduceti in browser adresa site-ului, ar trebui sa vedeti pagina de instalare a wordpress.
Cand vi se cer datele de conectare pentru baza de date, le gasiti in Ajenti > websites > site-ul in cauza > mysql (parola este cea pentru userul deja existent, nu in casuta de jos)
Enjoy
b) mutare wordpress:
Urcati prin FTP fisierele site-ului
Pentru a importa baza de date exista doua variante - fie instalati phpmyadmin (nu recomand, dar gasiti cu google cum se face cu debian + nginx) fie folositi o aplicatie desktop gratuita - metoda mult mai eleganta din punctul meu de vedere. Pentru windows: http://www.heidisql.com/download.php | Pentru osX: http://www.sequelpro.com/ << Sunt intuitive si practic trebuie sa va conectati folosind ip-ul serverului, userul si parola, la baza de date a site-ului si sa faceti import la fisierul dorit.
Dupa ce ati pus baza de date si fisierele, modificati fisierul wp-config.php cu database, user si password pe care le gasiti in Ajenti > websites > site-ul in cauza > mysql
Urmeaza:
- crearea de casute de email
- instalarea si configurarea unui plugin de cache pentru wordpress + memcache, opcache
- testarea site-ului: viteza, numar de utilizatori, timp de raspuns etc
- backupuri, securitate
Ultima modificare făcută de Dan; 7th September 2015 la 11:53.
5th September 2015, 19:17
#4
3 out of 3 members found this post helpful.
5th September 2015, 20:48
#5
2 out of 2 members found this post helpful.
Sper sa nu incurc aici rezervarile dar trebuie sa-ti ofer un pont. ( Se poate sterge mesajul daca polueaza tutorialul)
@Dan
Sa vezi ce usor si ce frumos se instaleza si se configureaza un server cu ajutorul unui script Bash .
Dai YES, NO, Enter.
M-am jucat putin si cu " whiptail" dar e putin mai greu, sunt unele chestii pe care nu am reusit sa le inteleg pe deplin.
(La instalarea unui server Debian/Ubuntu dupa ce ii dai update poti folosi comanda tasksel pentru a instala in mod grafic serverul apache si mysql folosind " whiptail")
( Vei gasi multe scripturi " whiptail" si pe paginile celor ce se ocupa cu Raspberry Pi , le folosesc pentru a executa unele operatiuni in mod "grafic" in loc de comenzi in terminal )
xmodulo.com/create-dialog-boxes-interactive-shell-script.html
Am reusit sa configurez un script whiptail care iti ofera o lista de unde alegi ce platforma online vrei sa instalezi pe server .
Nu e captura de ecran de la mine dar e un exemplu: http://i.stack.imgur.com/Z4FUp.png
5th September 2015, 21:03
#6
1 out of 1 members found this post helpful.
Am pus "rezervat" ca sa nu amestec tutorialul cu raspunsurile care vor aparea intre timp.
Dupa cum spuneam, nu sunt avansat si nu ma adresez avansatilor. Incerc sa tin lucrurile cat mai simple si "error free".
Cand o sa inteleg ce e whiptail, o sa adaug. Pana atunci, iti zic sincer ca e prima oara in viata mea cand vad termenul
)
5th September 2015, 21:42
#7
2 out of 2 members found this post helpful.
Un exemplu de script Bash pentru Debian.
Nu contine prostii, e foarte simplu, e adevarat e cam primitiv si mai trebuie lucrat un pic la el, finisat pe ici pe colo.
L-am facut din bucati, o bucata de cod de colo, o bucata din alta parte.
Creezi un fisier text ce contine codul de jos pe care il vei numi de exemplu " install-lamp-ajenti-smf " si vei avea grija sa il salvezi cu extensia .sh apoi il urci undeva.
Cod:
#!/bin/bash
if [ $EUID != 0 ]; then
echo "This script must be run as root (eg.: sudo ./install-lamp-ajenti-smf.sh)"
exit 1
fi
echo "***********************************************"
echo "1) Apache2, PHP, Ajenti Webserver Control Panel"
echo " "
echo "2) MySQL, phpMyAdmin and SMF on Debian 7 VPS"
echo "***********************************************"
echo "Upgrade your system to newer version"
echo "Press enter to continue"
read -r __foo
apt-get update && apt-get dist-upgrade
echo "******************************"
echo "1) Install Apache server & PHP"
echo "******************************"
echo "Press ENTER to continue"
read -r __foo
apt-get install apache2 apache2-utils && apt-get install vsftpd && apt-get install fail2ban && apt-get install nano && apt-get install php5 libapache2-mod-php5 php5-mcrypt php5-mysql php-pear
echo "*******************"
echo "Configure localtime"
echo "*******************"
echo "Press ENTER to continue"
read -p "Are you sure? (y/n) " -n 1
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
dpkg-reconfigure tzdata
fi
echo "**********************************************************************"
echo "Before deleting default index.html page"
echo "open your public ip in a browser to see if apache is working properly"
echo "Delete the default index.html page "
echo "*********************************************************************"
echo "Press ENTER to continue"
read -r __foo
rm -rf /var/www/*
echo "*******************************************************"
echo "Install Ajenti Webserver Control Panel"
echo "You can use Ajenti Webserver Control Panel to configure"
echo "all your VPS config files, upload files and more"
echo "*******************************************************"
read -p "Are you sure? (y/n) " -n 1
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
wget -O- https://raw.github.com/Eugeny/ajenti/master/scripts/install-debian.sh | sh
fi
echo "***************************************************************"
echo "2) If you use only a static web page and no MySQL database"
echo "you can quit this step "
echo "***************************************************************"
echo "Install MySQL server & phpmyadmin"
echo "Configure database for phpmyadmin with dbconfig-common? <-- Yes"
echo "Secure your mysql installation"
echo "***************************************************************"
read -p "Are you sure? (y/n) " -n 1
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql && apt-get install phpmyadmin && mysql_install_db && /usr/bin/mysql_secure_installation
fi
echo "***************************************************************"
echo "Increase max phpmyadmin upload size from 2M to whatever"
echo "***************************************************************"
echo "fiind and change: upload_max_filesize = 2M"
read -p "Are you sure? (y/n) " -n 1
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
nano /etc/php5/apache2/php.ini
fi
echo "***************************************************************"
echo "Remove packages that are no more needed and clean the APT cache"
echo "***************************************************************"
echo "Press ENTER to continue"
read -r __foo
apt-get autoremove && apt-get autoclean
echo "************************************************"
echo "Download and unzip the SMF in /var/www directory"
echo "************************************************"
echo "Press ENTER to continue"
read -p "Are you sure? (y/n) " -n 1
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
cd /var/www
wget http://mirror.ord.simplemachines.org/downloads/smf_2-0-9_install.tar.gz
tar xvfz smf_2-0-9_install.tar.gz
rm -rf smf_2-0-9_install.tar.gz
fi
echo "******************************************************"
echo "Set directory and file permissions for SMF"
echo "******************************************************"
read -p "Are you sure? (y/n) " -n 1
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
cd /var/www
for dirs in attachments avatars cache Packages Packages/installed.list Smileys Themes agreement.txt Settings.php Settings_bak.php; do chmod 777 $dirs; done
fi
echo "******************************************************"
echo "Configure the vsftpd.conf"
echo "Copy this text into a text file before you press enter"
echo "anonymous_enable=YES -> change to NO"
echo "#local_enable=YES -> remove the #"
echo "#write_enable=YES -> remove the #"
echo "#chroot_local_user=YES -> remove the #"
echo "After you have finished press ctrl+x+Y+enter to save"
echo "******************************************************"
read -p "Are you sure? (y/n) " -n 1
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
nano /etc/vsftpd.conf
fi
echo "*************"
echo "Server Reboot"
echo "*************"
read -p "Are you sure? (y/n) " -n 1
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
reboot
fi
Dupa logare pe server ca root in terminal se introduce acest "cod" .
wget
Domeniu.com && chmod +x install-lamp-ajenti-smf.sh && ./install-lamp-ajenti-smf.sh
Sper sa nu sfarsesc ca Bruce Lee fiindca am dezvaluit "tainele ascunse" ale SysAdmin-ilor neinitiatilor in aceasta arta straveche.
Ultima modificare făcută de IulianC; 5th September 2015 la 22:02.