wget http://heanet.dl.sourceforge.net/sourceforge/xampp/xampp-linux-1.7.tar.gz
tar xvfz xampp-linux-1.7.tar.gz -C /opt
Uruchamianie serwerów poprzez: /opt/lampp/lampp start
Ewentualne podstawowe zabezpieczanie: /opt/lampp/lampp security
W pliku .bashrc użytkownika na którym pracujemy dodajemy linię:
export PATH=$PATH:/opt/lampp/bin/
Następnie przechodzimy do instalacji Symfony:
mkdir -p /home/sfprojects/jobeet
cd /home/sfprojects/jobeet
mkdir -p lib/vendor
cd lib/vendor
wget http://www.symfony-project.org/get/symfony-1.2.2.tgz
tar zxpf symfony-1.2.2.tgz
mv symfony-1.2.2 symfony
rm symfony-1.2.2.tgz
cd ../..
php lib/vendor/symfony/data/bin/check_configuration.php
No i na pierwszy ogień należy w /opt/lampp/etc/php.ini ustawić:
short_open_tag = Off
magic_quotes_gpc = Off
register_globals = Off
I restart serwerów:
/opt/lampp/lampp stop
/opt/lampp/lampp start
Ponowne sprawdzenie:
php lib/vendor/symfony/data/bin/check_configuration.php
Nieźle, ale do pełni szczęścia doinstalujemy Alternative PHP Cache (APC)
Przede wszystkim potrzebujemy paczki developerskiej dla XAMMP'a:
wget http://garr.dl.sourceforge.net/sourceforge/xampp/xampp-linux-devel-1.7.tar.gz
tar xvfz xampp-linux-1.7.tar.gz -C /opt
apt-get install autoconf
Np. w katalogu domowym użytkownika:
wget http://pecl.php.net/get/APC-3.0.19.tgz
tar xvf APC-3.0.19.tgz
cd APC-3.0.19/
/opt/lampp/bin/phpize
./configure
make
make install
W pliku /opt/lampp/etc/php.ini dodajemy poniższe linie:
extension="apc.so"
apc.enabled="1"
apc.shm_size="30"
Ponowny restart serwerów (stop/start) i oby ostatecznie sprawdzamy po stronie konsoli:
cd /home/sfprojects/jobeet/
php lib/vendor/symfony/data/bin/check_configuration.php
Powinno już być bez błędów / ostrzeżeń. Ewentualnie upewniamy się poprzez wywołanie: "php -m" czy moduł APC został załadowany.
Następnie sprawdzamy check_configuration.php poprzez wywołanie z poziomu przeglądarki. Wystarczy skopiować plik i wywołać poprzez wpisanie odpowiedniego URL'a. Jeśli wszystko jest OK zobaczymy coś na kształt:
********************************
* *
* symfony requirements check *
* *
********************************
php.ini used by PHP: /opt/lampp/etc/php.ini
** Mandatory requirements **
OK requires PHP >= 5.2.4
OK php.ini: requires zend.ze1_compatibility_mode set to off
** Optional checks **
OK PDO is installed
OK PDO has some drivers installed: sqlite, pgsql, mysql, sqlite2
OK PHP-XML module installed
OK XSL module installed
OK can use token_get_all()
OK can use mb_strlen()
OK can use iconv()
OK can use utf8_decode()
OK has a PHP accelerator
OK php.ini: short_open_tag set to off
OK php.ini: magic_quotes_gpc set to off
OK php.ini: register_globals set to off
OK php.ini: session.auto_start set to off
Sprawdzamy wersję Symfony:
php lib/vendor/symfony/data/bin/symfony -V
Generujemy szkielet naszego projektu:
php lib/vendor/symfony/data/bin/symfony generate:project jobeet
Powyższe tworzy skrót 'symfony' dzięki czemu mniej wklepujemy w linii komend.
Projekt = zbiór aplikacji korzystających z tego samego modelu danych.
Generujemy szkielet aplikacji 'frontend'
php symfony generate:app --escaping-strategy=on --csrf-secret=UniqueSecret frontend
W pliku konfiguracyjnym dla projektu config/ProjectConfiguration.class.php zmieniamy linię z require_once na:
require_once dirname(__FILE__).'/../lib/vendor/symfony/lib/autoload/sfCoreAutoload.class.php';
co zapewni nam lepszą przenośność projektu na inne serwery.
Aby nasz projekt był widoczny z przeglądarki, na warsztat bierzemy plik /opt/lampp/etc/httpd.conf i na samym końcu dodajemy:
# Ta linia może wystąpić tylko raz
NameVirtualHost 10.0.0.14:8080
Listen 10.0.0.14:8080
DocumentRoot "/home/sfprojects/jobeet/web"
DirectoryIndex index.php
AllowOverride All
Allow from All
Alias /sf /home/sfprojects/jobeet/lib/vendor/symfony/data/web/sf
AllowOverride All
Allow from All
Adres 10.0.0.14 wynika tylko stąd, że środowisko Debian+Symfony jest uruchamiane jako maszyna wirtualna, natomiast sprawdzanie aplikacji odbywać się będzie w ramach fizycznego systemu operacyjnego.
Restartujemy serwery i sprawdzamy jak chula: http://10.0.0.14:8080/index.php/
Następnie sprawdzamy jak działa nasze środowisko developerskie: http://10.0.0.14:8080/frontend_dev.php/ - nie działa.
Komunikat "You are not allowed to access this file. Check frontend_dev.php for more information." otrzymaliśmy z powodu łączenia się z innej maszyny. Edytujemy ten plik, wpisując zamiast 127.0.0.1 adres IP maszyny z której sprawdzać będziemy działanie naszego projektu.
Teoretycznie całe środowisko jest już gotowe. Warto jednak (zgodnie z tutorialem) poświęcić jeszcze 10 min na zapoznanie się z atakami XSS oraz CSRF, a także poznać zagadnienie wersjonowania aplikacji, co też teraz uczynię.
Przede wszystkim należy znaleźć hosting. Z braku doświadczenia wybrałem http://xp-dev.com/. Zakładamy konto np. 'repo'. Logujemy się. W menu Subversion wybieramy Create a new repository. Nadajemy nazwe np. 'jobeet'
Nasze repozytorium znajduje się pod adresem: https://svn.xp-dev.com/svn/repo_jobeet
Przydałby się jakiś klient: apt-get install subversion
I pobierzmy testowo (check out?) nasze puste repozytorium do katalogu jsr:
svn co https://svn.xp-dev.com/svn/repo_jobeet jsr
Jeśli wszystko jest OK, możemy skasować katalog jsr.
Następnie tworzymy standardową strukturę katalogów repozytorium:
svn mkdir -m "utworzona domyslna struktura katalogow" https://svn.xp-dev.com/svn/repo_jobeet/trunk https://svn.xp-dev.com/svn/repo_jobeet/tags https://svn.xp-dev.com/svn/repo_jobeet/branches
Checkout'ujemy pusty katalog trunk/:
cd /home/sfprojects/jobeet
svn co https://svn.xp-dev.com/svn/repo_jobeet/trunk/ .
Czyścimi cache i log:
rm -rf cache/* log/*
Ustawiamy na wszelki wypadek uprawnienia:
chmod 777 cache/ log/
Importujemy katalogi i pliki:
svn add *
Ustawiamy ignorowanie cache:
svn propedit svn:ignore cache
Otworzy się edytor. Wpisujemy * by ignorowana była cała zawartość i zapisujemy.
Podobnie dla katalogu log:
svn propedit svn:ignore log
I ostatecznie importujemy do repozytorium nasz projekt:
svn import -m "import poczatkowy" . https://svn.xp-dev.com/svn/repo_jobeet/trunk
Brak komentarzy:
Prześlij komentarz