Skip to content

Instantly share code, notes, and snippets.

@lunodrade
Last active June 17, 2019 16:27
Show Gist options
  • Save lunodrade/203c26964b1cb65e5fa73b9ae3f1b30f to your computer and use it in GitHub Desktop.
Save lunodrade/203c26964b1cb65e5fa73b9ae3f1b30f to your computer and use it in GitHub Desktop.
Instalações adicionais em Linux, inclui: MongoDB, Composer, NodeJS, MosquittoServer, MosquittoSubscribe, PHPMyAdmin

Instalações adicionais

MongoDB (beta, fazer testes)

talvez precise sudo apt install -y mongodb e então o passo abaixo

primeiro método

$ sudo apt-get install php-dev
$ sudo apt-get install libcurl4-openssl-dev pkg-config libssl-dev
$ sudo apt-get install php-pear
$ sudo pecl install mongodb
$ sudo systemctl restart apache2

ver se tem o extension=mongodb.so no arquivo php.ini /etc/php/7.2/cli/php.ini o comando abaixo deveria fazer isso de modo automático

echo "extension=mongodb.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`

depois disso pode ser necessário fazer sudo apt install php-mongodb, mas testar antes.

pra remover algum antigo, usar sudo pecl uninstall mongodb antes de instalar o novo (linha 3 acima)

segundo método

$ cd ~
$ git clone https://github.com/mongodb/mongo-php-driver.git
$ cd mongo-php-driver
$ git submodule sync && git submodule update --init
$ phpize (php-dev)
$ ./configure
$ make all -j 5
$ sudo make install

pra ver as versões rodando

$ php --ri mongodb | grep version

Poderia retornar algo como: ??

MongoDB extension version => 1.5.5 libbson bundled version => 1.13.0 libmongoc bundled version => 1.13.0

E mongod --version

db version v3.6.3 git version: 9586e557d54ef70f9ca4b43c26892cd55257e1a5 OpenSSL version: OpenSSL 1.1.1 11 Sep 2018 allocator: tcmalloc modules: none build environment: distarch: x86_64 target_arch: x86_64

outro comando seria sudo apt-cache policy php-mongodb ou php -m

Composer

Composer serve como um gerenciador de pacotes do PHP, permitindo um arquivo de configuração listar as dependências e as mesmas assim podem ser instaladas rapidamente.

Os comandos a seguir instalam a última versão puxando direto do site (pelo apt install é uma versão dois anos mais antiga, as vezes). O comando também verifica a integridade do arquivo.

$ sudo apt install wget php-cli php-zip unzip
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ HASH="$(wget -q -O - https://composer.github.io/installer.sig)"
$ php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
$ sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

Agora que foi instalado com sucesso, vamos mostrar a última versão. As vezes o comando pode precisar de sudo dependendo do user logado.

$ composer 

NodeJS

Instalar o executável e o gerenciador de pacotes

$ sudo apt install -y nodejs npm

Mosquitto Server

Este é o server, que consegue fazer a transferência de rede de dados e ser alvo de host. É necessário ele para então depois usar um _publisher ou _subscribe

$ sudo apt install mosquitto
$ sudo systemctl enable mosquitto
$ sudo systemctl status mosquitto

Mosquitto Subscribe (com nodejs)

Isso serve para se inscrever em um servidor de mqtt (como o mosquitto server) e então ficar escutando mensagens com o namespace desejado. Ao escutar uma que se encaixe, salva isso num banco MongoDB configurado. Isso precisa de NodeJS e MongoDB configurado na máquina local (ou o mongo em server online).

$ cd ~
$ git clone https://github.com/lunodrade/mqtt-mongo-recorder.git
$ cd mqtt-mongo-recorder
$ npm install
$ MQTT_HOSTNAME="localhost" node server.js &

PHPMyAdmin

Biblioteca para acessar o banco de dados MySQL por meio de interface web.

$ sudo apt install phpmyadmin php-mbstring php-gettext php-xml
  • Ao ser perguntado sobre para qual server será configurado, observe que ele já sei destacado porém não selecionado, tenha certeza de selecionar o Apache2 e só depois dar ok.
  • Selecione Yes na segunda pergunta, sobre configurar dbconfig-common.
  • Depois por último configure uma senha que será usada para acessar a interface web de phpmyadmin.

Ativar a extensão mbstring do php e então reiniciar o server Apache2

$ sudo phpenmod mbstring
$ sudo systemctl restart apache2

Agora você pode acessar atráves de http://localhost/phpmyadmin

Se você não tiver acesso, pode ser porque houve erro no momento da autoconfiguração (quando tinha que selecionar o server), então corrija isso do seguinte modo:

$ sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
$ sudo a2enconf phpmyadmin.conf
$ sudo service apache2 reload

Agora você deve ter acesso.

Por fim, melhorar a segurança de acesso ao phpmyadmin, editando o arquivo com o texto logo abaixo. Prestando atenção na linha AllowOverride All.

$ sudo nano /etc/apache2/conf-available/phpmyadmin.conf
<Directory /usr/share/phpmyadmin>
    Options FollowSymLinks
    DirectoryIndex index.php
    AllowOverride All
    . . .

Salve o arquivo e reinicie o Apache2:

$ sudo systemctl restart apache2

Isso permite o uso de .htaccess pela aplicação, então edite ela com o conteúdo logo abaixo:

sudo nano /usr/share/phpmyadmin/.htaccess
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
  • AuthType Basic: Tipo de autenticação, no caso por senha usando arquivo.
  • AuthName: Mensagem no dialogo de autenticação.
  • AuthUserFile: Arquivo que guarda a senha, mantenha isso fora dos arquivos que são servidos online.
  • Require valid-user: Isto força que somente usuários autenticados tenham acesso ao phpmyadmin.

Criando um arquivo/usuário para esse acesso agora:

$ sudo htpasswd -c /etc/phpmyadmin/.htpasswd nomedousuario

Obs: para criar outros usuários extras, não use a flag -c neles, e usando outro nomedousuario de escolha.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment