Coyote to nazwa systemu obsługującego serwis 4programmers.net.
- PHP 7
- php-gd
- php-mongodb
- php-mcrypt
- php-curl
- php-mbstring
- php-pgsql
- php-mongodb
- php-xml
- PostgreSQL >= 9.4
- MongoDB >= 2.7
- composer
- node.js
- npm
- git
- Redis
- Elasticsearch 5.0
- Supervisor
sudo apt-get -y install php-gd php-mbstring php-mcrypt php-pear php-curl php-mongodb php-pgsql php-xml
git clone https://github.com/adam-boduch/coyote.git .
psql -c 'create database coyote;' -U postgres
cp .env.default .env
(plik .env zawiera konfiguracje bazy danych PostgreSQL oraz MongoDB)make install
(na produkcji) lubmake install-dev
(bez minifikacji JS oraz CSS)php artisan key:generate
(generowanie unikalnego klucza, który posłuży do szyfrowania danych)
Czy biblioteka mongo jest zainstalowana? Jeżeli tak to service php7.0-fpm restart
Czy biblioteka mcrypt jest zainstalowana? Jeżeli nie to apt-get install php-mcrypt
. Jeżeli tak to service php7.0-fpm restart
.
sudo apt-get install php7.0-dev
sudo apt-get install pkg-config libssl-dev
Działanie projektu wymaga zainstalowania serwera HTTP takiego jak Apache czy Nginx. PHP udostępnia jednak prosty serwer HTTP, który można wykorzystać, aby sprawdzić działanie aplikacji. Aby go uruchomić należy wykonać polecenie: php -S localhost:8000 -t public
W folderze projektu wykonujemy następujące polecenia:
-
cp .env.docker .env
-
cp Vagrantfile.docker Vagrantfile
-
vagrant up
-
vagrant ssh
-
cd /vagrant
-
sudo docker-compose build
-
sudo docker-compose up -d
-
sudo docker-compose exec php make install-dev
-
sudo docker-compose exec php php artisan key:generate
-
sudo docker-compose exec php php artisan es:create
-
sudo docker-compose exec php php artisan es:mapping
Strona jest dostępna w przeglądarce pod adresem: 175.0.0.10:8880
Aby nie instalować wszystkich pakietów lokalnie, można skorzystać z Vagranta. Obecna wersja nie umożliwia jeszcze całkowitej instalacji z wnętrza Vagranta (jeśli wiesz, jak sprawić, by npm install
i gulp
działało na Vagrancie pod systemem Windows, daj znać), więc wymagane są następujące narzędzia zainstalowane lokalnie:
- Vagrant
- npm
- gulp (instalowane przez
npm install -g gulp
)
- vagrant up
- npm install
- gulp
- w
etc/hosts
dodajemy wpis192.168.10.10 coyote.dev
- w przeglądarce pod adresem
coyote.dev
powinniśmy zobaczyć działającą wersję Coyote
W pisaniu testów, pomaga nam framework Codeception. Testy znajdują się w katalogu tests
, który zawiera testy jednostkowe, funkcjonalne oraz akceptacyjne. Aby uruchomić testy trzeba wejść do katalogu z projektem i wykonać polecenia:
vendor/bin/codecept build
(tylko jednorazowo)vendor/bin/codecept run
Jeżeli chcesz uruchomić testy akceptacyjne, to będziesz potrzebował narzędzia takiego jak Selenium czy PhantomJS. W katalogu tests
znajduje się plik acceptance.suite.yml.travis
który zawiera konfigurację testów akceptacyjnych i jest wykorzystywany przez Travis CI. Należy zmienić nazwę tego pliku na acceptance.suite.yml
i zmienić wartość url
na prawidłowy adres pod którym uruchomiony jest Coyote (np. http://localhost/
). Zakładamy, że PhantomJS jest uruchomiony (phantomjs --webdriver=4444
).
make update
(na produkcji) lub make update-dev
(na serwerze deweloperskim)
Konfiguracja projektu znajduje się w pliku .env
. Szczególnie zaleca się zmianę sterownika cache na redis:
CACHE_DRIVER=redis
Supervisor jest narzędziem monitorującym procesy, działającym w środowisku Linux. W Laravel dostępny jest mechanizm kolejkowania zadań (np. indeksowanie treści w Elasticsearch), który można uruchomić przy pomocy
php artisan queue:listen --sleep=10
Supervisor ma na celu automatyczne uruchamianie tego procesu po starcie systemu i pilnownie, aby zawsze był uruchomiony.
Konfigurację supervisor możesz znaleźć w pliku supervisor.conf
. Więcej informacji: https://laravel.com/docs/5.2/queues
W przypadku ustawienia środowiska na production
w pliku .env
, konieczne będzie ustawienie crona aby wykonywać
pewne czynności cykliczne.
- W konsoli wpisz
crontab -e
- Dodaj linię:
* * * * * php /var/www/path-to-app/artisan schedule:run >> /dev/null 2>&1
Po instalacji Elasticsearch, konieczne jest utworzenie indeksu oraz typów. Wykonaj poniższe polecenia:
php artisan es:create
php artisan es:mapping
Zachęcamy do aktywnego udziału w rozwoju projektu. Zajrzyj na zakładkę Issues i zobacz jakie zadanie możesz zrealizować. Realizujemy tylko te zadania, które są zaakceptowane i przypisane do wersji 2.0.
- Utwórz fork repozytorium
- Wprowadź zmiany
- Dodaj pull request