Zauważyłem, że w związku z coraz większą ilością części elektronicznych w moim “warsztacie” coraz słabiej orientuje się co mam na “stanie magazynowym”. Pomyślałem, że stworzę prymitywną bazę z prostym frontendem i będę tam wrzucał informacje o zakupach. Zanim przystąpiłem do działania sprawdziłem czy przypadkiem nie ma już takiego rozwiązania i okazało się, że jest http://www.partkeepr.org
Przy okazji znacznie wykraczające poza moje wymagania, postanowiłem tym razem nie wymyślać koła na nowo.
Instalacja na OSX na pewno nie należy do kategorii “agree, next, finish”.
Zaczynamy od instalacji MySQL-a brew install mysql
:
Uruchamiamy bazę i tworzymy schemat z którego będzie korzystał Partkeepr:
mysql.server start
mysql -uroot
CREATE DATABASE partkeepr CHARACTER SET UTF8;
GRANT USAGE ON *.* TO root@localhost IDENTIFIED BY '';
GRANT ALL PRIVILEGES ON partkeepr.* TO root@localhost;
Partkeepr wymaga również ImageMagick, DoctrineORM oraz Twig-a. Do instalacji ImageMagick użyłem Homebrew (wszystkie niestandardowe rzeczy staram się instalować za pomocą tego menadżera), “niestety” musimy dodać nieoficjalne źródła brew tap josegonzalez/php
oraz brew tap homebrew/dupes
:
Potem brew install josegonzalez/php/php54-imagick
. Jedną z zależności jest instalacja PHP w wersji 5.4. Generalnie zawsze staram się korzystać z natywnych narzędzi OSX (PHP jest w OSX) ale i tak później potrzebny jest pear
a tego już nie ma.
Na szczęscie można skorzystać z natywnego serwera Apache, trzeba tylko zmienić w pliku /private/etc/apache2/httpd.conf
lokalizację PHP z LoadModule php5_module libexec/apache2/libphp5.so
na LoadModule php5_module /usr/local/opt/php54/libexec/apache2/libphp5.so
Warto się upewnić czy wszystko poszło jak powinno, można to zrobić np. tak:
echo -e '' | sudo tee /Library/WebServer/Documents/phpinfo.php
Uruchamiamy Apache sudo apachectl start
. Otwierając teraz w przeglądarce adres http://localhost/phpinfo.php powinniśmy zobaczyć wersję PHP 5.4.15 i “gdzieś na dole” moduł imagick
Kolejnym krokiem jest instalacja DoctrineORM oraz Twig-a, wydajemy następujące polecenia:
sudo pear channel-discover pear.symfony.com
sudo pear channel-discover pear.doctrine-project.org
sudo pear install pear.doctrine-project.org/DoctrineORM
sudo pear install pear.doctrine-project.org/DoctrineSymfonyYaml
sudo pear install pear.doctrine-project.org/DoctrineSymfonyConsole
sudo pear channel-discover pear.twig-project.org
sudo pear install twig/Twig
Pobieramy Partkeepr i ustawiamy uprawnienia do katalogu w którym chcemy umieścić Partkeepr, ja zainstalowałem go w /Library/WebServer/Documents/partkeepr/
cd /Library/WebServer/Documents/
sudo wget http://partkeepr.org/downloads/partkeepr-0.1.9.tbz2
sudo tar -xvf partkeepr-0.1.9.tbz2
sudo mv partkeepr-0.1.9 partkeepr
sudo chown -R _www:_www /Library/WebServer/Documents/partkeepr
Instalator Partkeepr sprawdza strefę czasową, dlatego trzeba ją ustawić w /usr/local/etc/php/5.4/php.ini
np. date.timezone = "Europe/Warsaw"
. Warto również upewnić się, że short_open_tag = Off
Teraz można już uruchomić instalatora Partkeepr za pomocą linku: http://localhost/partkeepr/setup/
Powinniśmy zobaczyć poniższy ekran:
W następnym kroku instalator sprawdzi czy nie ma jakichś problemów ze środowiskiem:
Definiowanie dostępu do wcześniej stworzonej bazy:
Jeśli nie będzie problemów powinna rozpocząć się instalacja:
Zapis lub wyświetlenie pliku konfiguracyjnego:
Informacje na temat konfiguracji cron-a:
Koniec:
Po otworzeniu linku http://localhost/partkeepr/frontend/ powinniśmy mieć możliwość zalogowania się do aplikacji (admin/admin):
Jak widać w mojej bazie jest już Arduino ;), pozostała najgorsza część zadania czyli uzupełnienie “aplikacji magazynowej”.
Jeśli chcemy możemy uruchamiać MySQL-a od razu przy starcie systemu w tym celu należy wykonać polecenie:
ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
Co ciekawe uruchomienie Apache-a poprzez sudo apachectl start
spowoduje, że będzie on już uruchamiany przy starcie systemu.