Autor wpisu: batman, dodany: 06.07.2013 21:58, tagi: javascript
Autor wpisu: Athlan, dodany: 05.07.2013 14:01, tagi: php.pl
Howdy! Recently I have faced the inconvenience that I have to develop parts of application beeing friendly-configurable on Linux and at the same time installing them on Windows is a nightmare.
What to do when do you develop on Windows, but you need the production environment based on Linux and you don’t want to buy server? Install Linux locally on Windows and run server on VirtualBox installed on Windows. The same story concerns the situation, when the production server have a lot of shit dependencies you don’t want to have on your developing environment, even it is Linux.
So how to connect VirtualBox Linux server from Windows?
- Download the VirtualBox and Linux distribution you want to install (.iso format will be convinience). I have coised Ubuntu, because of rapid installation.
- Create a new virtual machine for your Linux. More info.
- Mount your .iso and install Linux on VirtualBox. Installation is really user-friendly.
- Now go to the setting of your virtual machine -> network adapters settings -> and change your network adapter to NAT. More info.
- Check if everything is ok, in particular that network adaper on virtual machine obtained the IP address. Just type:
/sbin/ifconfig
or:
/sbin/ifconfig | grep addr
Note the assigned IP address.
- Try to ping your virtual machine from host operating system, where VirtualBox is running:
ping virtaul_machine_ip_address
- If everything is ok, your machines works mutualy. Now, install Open SSH server on your linux. For ubuntu:
sudo apt-get install openssh-server
- Now, you can open the connection on your host device. On windows, you can use Putty for connect to the virtual machine’s command line.
My Ubuntu’s command line from Windows 8. Localy.
Happy coddin’!
Autor wpisu: matipl, dodany: 05.07.2013 13:13, tagi: php
Jak zapewne wiecie nie lubię mówić oczywistych-oczywistości. Ale kolejny raz spotykam „admina”, który uznaje wyłącznie oprogramowanie z pakietów.
W ogólności to dobre podejście, uznaje się że oprogramowanie dystrybuowane przez system pakietów w Linuksie jest sprawdzone, stabilne i bezpieczne.
Niestety system wydawniczy pakietów nie zawsze nadąża za rzeczywistością, lub nie przystaje do naszych specyficznych warunków.
Tym bardziej dotyczy to PHP oraz nginx. PHP ze względu na swój plan wydawniczy oraz specyfikę samego projektu. W wydaniach dystrybucyjnych najczęściej wszelkie dodatkowe moduły (np. PDO) są instalowane jako zewn. moduły, co wpływa na wydajność całego silnika. Dlatego najlepiej używane przez nas moduły od razu skompilować w core, a dodatki które są standardowo włączane – wyłączyć. Natomiast nginx to mimo wszystko młody projekt, który dość prężnie się rozwija, ale zdarzają się również spore wpadki. W maju 2013 roku okazało się, że wersje nginx 1.1.4-1.2.8, 1.3.9-1.4.0 posiadają sporą lukę bezpieczeństwa.
Zatem do dzieła. Pierwsza kompilacja środowiska może Wam trochę zająć, ale już kolejne aktualizacje (wczoraj ukazała się wersja PHP 5.4.17) zajmują około 5-10 minut.
Najpierw musimy pamiętać, aby nasz system operacyjny posiadał odpowiednie biblioteki, które są potrzebne do kompilacji poszczególnych aplikacji. W naszym przykładzie jest to Debian 6.0. Instalacja wymaganych zależności:
apt-get install make gcc g++ libxml2-dev zlib1g-dev bzip2 libbz2-dev libcurl4-gnutls-dev libjpeg62-dev libpng12-dev libfreetype6-dev libmcrypt-dev libmysqlclient-dev lemon libtidy-dev libxslt1-dev libpcre++-dev libssl-dev automake autoconf
Następnie ściągamy źródła PHP – http://php.net/downloads.php. Poniższe parametry konfiguracyjne powinny działać dla PHP 5.3/5.4/5.5 bez problemu.
Po rozpakowaniu źródeł w ichniejszym katalogu tworzymy sobie skrypt compile_php o zawartości:
make distclean ./configure \ --enable-fpm \ --enable-cli \ --enable-inline-optimization \ --disable-rpath \ --disable-ipv6 \ --enable-mbstring \ --enable-mbregex \ --with-mysql \ --with-pdo-mysql=mysqlnd \ --with-mysqli=mysqlnd \ --with-gettext \ --with-curl \ --with-zlib \ --with-zlib-dir=/usr \ --with-gd \ --with-jpeg-dir=/usr \ --with-png-dir=/usr \ --with-freetype-dir \ --enable-gd-native-ttf \ --enable-exif \ --enable-shmop \ --with-xsl=shared \ --enable-soap=shared \ --enable-sockets \ --enable-pcntl=shared \ --with-mcrypt \ --with-bz2 \ --with-tidy \ --with-pcre-dir \ --with-pear make -j2 make install
Pierwsza linijka wyczyści nam projekt z poprzednich kompilacji. Następne to konfiguracja i kompilacja php (z obsługą php-fpm, php-cli, PDO, MySQL, GD, JPEG/PNG, mbstring, Exif, PEAR oraz kilka innych modułów).
Polecam zakomentować 2 ostatnie linijki, aby móc sprawdzić czy configure przebiegł poprawnie. Po make install nasza instancja PHP znajdzie się w /usr/local/php.