Více programovacích jazyků na jednom localhostu rubrika: Programování: Jiné

2 digitechviper3
položil/-a 4.10.2015

Ahoj lidi,
nevím si rady se spuštěním projektů v různých programovacích jazycích. Jako virtuální server mám apache a k tomu php. Takže mám klasicky složku "www" se soubory co se spouští přes localhost. V případě, že bych chtěl vyzkoušet jiný programovací jazyk pro web, např. Ruby nebo Javu (ty dva mě asi nejvíce lákají) tak jak bych měl přibližně postupovat? Stačí si např. Ruby jen nainstalovat a pak v té složce www vytvořit projekt, který prostě bude obsahovat ruby soubory a spustí se to? Nebo mám pod apachem vytvořit další doménu, třeba ruby.localhost a tam Ruby nějak nainstalovat? Navíc si nejsem jistý, jestli Ruby nebo Java pod apachem vůbec funguje. Instaloval jsem jen základní balíček apache2, tak jestli k tomu mám doinstalovat nějaké další balíčky pro podporu nebo jestli mám instalovat nějaký jiný web server?
Co se správy webových serverů týče, tak jsem naprostý začátečník, googlit ale umím celkem slušně :) takže mě stačí jen nasměrovat, napsat třeba "hej, takhle jak si to tu napsal tak to vůbec nefunguje, najdi si tohle a tohle/funguje to zhruba takhle a takhle" a já se snad chytnu :)
Takže díky za odpovědi.

odkaz
2 ovenator
odpověděl/-a 7.10.2015
 
upravil/-a 7.10.2015

Moje odpověď se netýká nastavení apache, ale myslím, že může být užitečná pro vývoj na více technologiích.
Pokud chceš experimentovat tak bych ti doporučil podívat se na docker-compose. Jednoduše pak do adresáře PHP projektu přidáš soubor docker-compose.yml obsahující něco jako

app:
  image: php:5.6-apache
  volumes:
    - .:/var/www/html
  ports:
    - "3000:80"

pro Javu něco jako

app:
  image: tomcat:8.0
  volumes:
    - ./target:/deployment_directory
  ports:
    - "3000:80"

potom zavoláš docker-compose up a aplikace bude běžet na localhost:3000.

K aplikaci budeš potřebovat databázi, tak si ji definuješ

pg_db:
  image: postgres:9.5

potom

app:
  ...
  links:
    - pg_db:db

v aplikaci(app) pak můžeš na databázi odkazovat jako "jdbc:postgresql://db:5432/test".

Má to zásadní výhody:

  • kontejner je bezestavový, aplikace při každém spuštění běží v přesně stejném prostředí
  • můžeš tuto aplikaci spustit an libovolném počítači s docker-compose, nic dalšího není třeba instalovat
  • žadné přeinstalace nebo upgrady, prostě napíšeš jakou verzi chceš a dostaneš ji, úplně čistou

Toto je jen nastínění, musíš si o tom zjistit více.

Výslednou aplikaci můžeš zabalit do 'image' a nasadit na kontejnerový server, horizontálně škálovat atd.

Komentáře

  • Taco : Dá se zbavit toho portu? Tedy, aby mi to běželo na localhost:80 ? To links určuje co? 7.10.2015
  • ovenator : 'app' je název jednoho kontejneru, který je spuštěn pomocí 'docker run', odsazené položky jsou jen parametry toho příkazu. Takže by mělo fungovat něco jako 'net: host' místo 'ports' viz. https://docs.docker.com/reference/run/#network-settings. 'pg_db' je sice ve stejném souboru (nemusí být), ale je to jiný kontejner s vlastní ip adresou. 'links' strčí tuto adresu do kontejneru 'app' jako hostname 'db'. 7.10.2015
  • ovenator : Jinak v ports může být samozřejmě libovolný port místo 3000 "host_port:container_port". 7.10.2015
  • Taco : Díky, vyzkouším. 7.10.2015
  • Anonym : malá poznámka - např. Google API Client nepodporuje OAuth na jiné lokální doméně, než je localhost, proto je dobré si zvyknout na různé porty právě na něm 8.10.2015

Pro zobrazení všech 7 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.