I många fall är det behagligt att kunna administrera sina databaser visuellt, ett kanonbra verktyg för det är phpmyadmin, det är dessutom gratis och opensource, vilket gör det hela ännu roligare.
När du installerar phpmyadmin via en pakethanterare, tex APT, så kommer den i många fall ge dig valet att välja vilken webbserver du vill konfigurera phpmyadmin för, än så länge finns inte valet Nginx, men det betyder inte att det inte går att köra phpmyadmin på Nginx. Jag valde att ladda ner phpmyadmin själv och inte använda den version som kommer med när man drar ner den via apt, detta av ren och skär lättja.
Börja med att ladda hem PhpMyAdmin från: http://www.phpmyadmin.net/home_page/downloads.php packa upp grejerna i en passande mapp, jag valde /usr/share men du kan lika gärna använda /var/www, kom ihåg vart du lägger filerna bara då du måste anpassa konfigurationen därefter.
När du packat upp filerna så är det bara att fixa konfigurationen för Nginx, min ser ut som nedan.
server {
listen 80;
server_name host.se;
access_log /var/log/nginx/phpmyadmin.access.log;
error_log /var/log/nginx/phpmyadmin.error.log debug;
location / {
root /usr/share/phpmyadmin/;
index index.php;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
Det är alles, lycka till!
I sitt blogginlägg på CmsDirekt skriver David V. Wallin lite kort om hur man får ramverket CodeIgniter att lira på Nginx: Det är egentligen bara en rewriteregel och en liten förändring på hur man skickar sidor till php-fpm. Såhär ser konfigurationen ut som du kompletterar din vhost med:
location /{
if (!-f $request_filename) {
rewrite ^(.*) /index.php?$1 last;
}
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME /var/www/example.org/index.php;
}
Notera att efter SCRIPT_FILENAME så skickar vi inte med variablen $FASTCGI som vi gör när vi konfigurerar för vanligt php, utan vi skickar explicit med index.php eller vilken sida man nu har som förstasida.
Ibland har man domäner på sin maskin som man inte använder, som man kanske vill parkera så länge eller så har man ibland flyttat den till en annan adress, till exempel i samband med att siten bytte namn. För att hantera detta på ett snyggt sätt och slippa duplicate content i sökmotorerna så kan man lägga en ‘redirect’ på domänen i fråga. En redirect är en HTTP-status kod som talar om för webbläsaren, sökmotorn etc hur de ska hantera sidan, om de ska gå vidare eller om de ska slå upp den. De två vanligaste HTTP-statuskoderna är 200 och 404.
404 betyder att innehållet man letar efter inte finns, man kanske försöker öppna en fil som inte finns eller liknande.
200 betyder helt enkelt att filen hittas och det är OK att slå upp/visa sidan.
300-serien indikerar att filen/siten har flyttats, tex så betyder 301 att den flyttat permanent och 302 att den flyttat temporärt och kommer att komma tillbaka.
500-serien indikerar att det är något som är fel på servern.
I mitt fall har vi en server där jag hanterar många olika domäner, dock så har servern själv ingen egen domän som är dess ‘primära’ utan en domän utan hemsida som bara är för managementsyfte. Dessutom så vill vi inte att min maskin ska visa blanka sidor eller säga att en site inte finns, så för att hantera det så har jag lagt en redirect med status 301 på en virtuell host som fångar alla domäner som inte är specificerade någon annanstans, exemplet hittade jag på Nginx Wiki: NginxVirtualHostExample.
server {
server_name _;
server_name_in_redirect off;
rewrite ^/(.*) http://www.ngweb.se/$1 permanent;
}
Den här Vhost konfigurationen tar alla anrop till servern till en domän som inte finns på maskinen och skickar dem till www.ngweb.se.
För att göra det tydligare så överväger jag att be David skriva en undersida som talar om att det är en domän som ägs av ngweb.se, så det blir riktigt tydligt.
Har du en drupalsite som du vill köra på Nginx så måste du skriva om rewrite reglerna för siten, precis som för WordPress( som du kan läsa om här: Nginx rewrite för wordpress ).
Precis som för wordpress ska du lägga till rewriteregler i location för roten för siten, det bör se ut såhär:
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?q=$1 last;
}
Eventuellt kan du behöva lägga till “break;” innan slutklammern för rewrite regeln.
Nginx är en snabb och effektiv webbserver med många användningsområden, den kan agera som gateway, lastbalanserare mm.
Jag ska installera den tillsammans med PHP5-FPM och konfigurera upp en standardwebbsite. Det här gör jag på en maskin som kör debian stable/Debian Lenny. Många använder fastcgi för att köra php, men det finns ett bättre sätt; PHP5-FPM.
Vi börjar med att lägga till Dotdeb som källa för apt, detta gör att debian ännu så länge inte har php5-fpm paketerat.
sudo echo "deb http://php53.dotdeb.org stable all" >> /etc/apt/sources.list
Uppdatera nu paketförråden med apt-get update och installera sedan Nginx och php5-cli.
apt-get install nginx php5-cli php5-common php5-suhosin
Installera därefter php5-fpm.
apt-get install php5-fpm php5-cgi
Nu ska vi konfigurera en Virtuell Host i Nginx som kommer att använda php5. Jag utgår från Nginx default/exempel konfig som finns i /etc/nginx/sites-available/default
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/localhost.access.log;
error_log /var/log/nginx/localhost.error.log debug;
location / {
root /var/www/nginx-default;
index index.html;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
Nu är det bara att skapa en fil i mappen /var/www/nginx/default med innehåller <?php phpinfo(); ?> och köra /etc/init.d/php5-fpm restart så ska det fungera och du bör se en text som liknar den nedan!

Eftersom jag har en nyinstallerad WordPress site på en webbserver som kör Nginx så vill jag ju så klart ha snygga URL:er, det är enklare att förstå, snyggare och mer sökmotor vänligt. För att lösa det så skrev jag om vhost konfigurationen så den ser ut såhär:
location / {
root /var/www/abergman.se;
index index.php;
if (-e $request_filename) {
break;
}
rewrite ^/(.+)$ /?q=$1 last;
}
Därefter ändrade jag inställningarna i WordPress under “Settings -> Permalinks -> Custom Format ” till:
/%year%/%monthnum%/%day%/%postname%/
Det gör att länkarna ser ut såhär: http://www.abergman.se/2010/05/13/migrera-webbsiter/ istället för http://www.abergman.se/?p=77 för att snygga till det ännu mer kan man även välja att bara visa titeln genom att ändra till:
/%postname%/
Vilket jag nu använder, det blir snyggt och enkelt.
Senaste kommentarerna