Symfoware

Symfowareについての考察blog

Ubuntu Server 18.04 GUI表示が必要なアプリケーションをssh接続で実行(X Window System + ForwardX11)

ROSのチュートリアルをやっているとき、GUIが表示されるアプリケーションがありました。
Understanding ROS Nodes

実行するとディスプレイがないってエラーになります。


$ rosrun turtlesim turtlesim_node
qt.qpa.screen: QXcbConnection: Could not connect to display
Could not connect to any X display.



Ubuntu Server 18.04は仮想環境(KVM)にインストールした状況で実行。
これだけのためにGUIをインストールするのはちょっと...



X Window System + ForwardX11



こちらの記事が参考になりました。
Ubuntu 18.04 LTS に後から GUI (X Window System) を追加する
How to set up X11 forwarding in Ubuntu

作戦は
・ServerにはX Window Systemをインストール
・クライアントのUbuntu 18.04 DesktopからForwardX11を有効にしてssh接続

まず、Server側にX Window Systemをインストールします。


$ sudo apt install xserver-xorg



sshの設定を変更


$ sudo vi /etc/ssh/ssh_config



設定値を


ForwardX11 yes
ForwardX11Trusted yes



に変更します。


Host *
# ForwardAgent yes
ForwardX11 yes
ForwardX11Trusted yes




サーバー側は一旦リブートしておきます。


$ sudo reboot





ssh接続のXオプション



リブートが終わったら、クライアントからは-Xオプション付きでssh接続します。


$ ssh -X ubuntu@192.168.1.100



通常通り、コンソール画面でログイン。
最初「GUIないじゃん」と思ったのですが、GUIが必要なアプリケーションを実行すると、
クライアントではsshターミナルとは別のウィンドウが表示されアプリケーションが表示されます。

これは便利。


【参考URL】

Ubuntu 18.04 LTS に後から GUI (X Window System) を追加する
How to set up X11 forwarding in Ubuntu

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2018/11/11(日) 17:45:36|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集

Ubuntu 18.04 に TeamSQLをインストール

こちらでTeamSQLを知りました。
Sequel Proを超えるGUIツールが出てきたぞ

Cross-platform SQL Client
https://teamsql.io/

Ubuntu 18.04にインストールしてみます。

ダウンロードとインストール



TeamSQL、データベースへの接続はJavaを使用しているようです。
先にjavaの実行環境をインストールしておきます。


$ sudo apt install openjdk-11-jdk


※jreでもOKのはずです。

続いてアプリケーションのダウンロード。
「Download for Freer」をクリック。

919_01.png

「Download for Ubuntu」をクリック。

919_02.png


「TeamSQL-4.0.371-x86_64.AppImage」がダウンロードできました。

拡張子「AppImage」ってなんだろう?と思い調べてみると、こちらが参考になります。
カンタンLinux|AppImage形式のインストール方法は?

ファイル単体で実行可能な形式のようです。
実行権限を付与した後、実行してやります。


$ chmod a+x TeamSQL-4.0.371-x86_64.AppImage
$ ./TeamSQL-4.0.371-x86_64.AppImage



確認画面が表示されるので「Yes」をクリック。

919_03.png

起動できました。

919_04.png

メールアドレスやユーザーIDを入力して登録します。

919_05.png

ユーザー登録後、こんな画面になるはずです。

919_06.png



データベース接続



左側「CONNECTIONS」の「+」をクリックしてデータベース接続を追加。

919_07.png

接続に必要な情報を入力します。
SSH Tunnelにも対応しているのが嬉しいですね。
※ここでJavaがインストールされていないとエラーが表示されました。

919_08.png

無事接続できました。

919_09.png



クエリーの実行



テーブルを選択して「+」でタブを追加。

919_10.png

こんな感じでSQLが実行できます。

919_11.png



クエリーの履歴や保存



実行したクエリーの履歴が検索できるのは便利ですね。

919_12.png

その他にも、よく使うクエリーを保存しておいたりチームで共有したりする機能があるようです。
これは便利。

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2018/09/25(火) 00:20:33|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集

Snipe-IT を Ubuntu Server 18.04にインストール

IT資産管理ツールの「Snipe-IT」
Ubuntu Server 18.04にインストールしてみます。

Ubuntu Server 18.04
Nginx
MySQL 5.7
php-fpm 7.2

という環境です。


必要なソフト



事前にnginxやphp、MySQLをインストールしておきます。
nginxはextrasじゃなくてもOKです。


$ sudo apt install nginx-extras
$ sudo apt install mysql-server
$ sudo apt install php7.2-fpm php-gd php-mbstring php-curl php-dom php-mysql





ダウンロード



インストール手順はこちらを参考にしました。
https://snipe-it.readme.io/docs/downloading#section-3-download-the-installer

Git Cloneでの資産取得が推奨されているので従います。


$ cd /var/www
$ sudo git clone https://github.com/snipe/snipe-it



ユーザーを変更しておきます。


$ sudo chown -R `whoami`:`whoami` ./snipe-it






設定



続いてConfigurationです。
https://snipe-it.readme.io/docs/configuration

チェックアウトしたディレクトリに移動。
サンプルの設定ファイルをコピーします。


$ cd snipe-it/
$ cp .env.example .env



コピーした設定ファイルを編集。


$ vi .env



最低限変更が必要な箇所はタイムゾーンとデータベースの接続設定です。
環境に合わせて変更します。


# --------------------------------------------
# REQUIRED: BASIC APP SETTINGS
# --------------------------------------------
APP_ENV=production
APP_DEBUG=false
APP_KEY=ChangeMe
APP_URL=null
APP_TIMEZONE='Asia/Tokyo'
APP_LOCALE=ja


# --------------------------------------------
# REQUIRED: DATABASE SETTINGS
# --------------------------------------------
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_DATABASE=snipeit
DB_USERNAME=admin
DB_PASSWORD=P@ssw0rd
DB_PREFIX=null
DB_DUMP_PATH='/usr/bin'
DB_CHARSET=utf8mb4
DB_COLLATION=utf8mb4_unicode_ci







依存しているライブラリのインストール



依存しているライブラリのインストールを行います。
https://snipe-it.readme.io/docs/install-dependencies


$ curl -sS https://getcomposer.org/installer | php
$ php composer.phar install --no-dev --prefer-source



エラーが発生しました。

Loading composer repositories with package information
Installing dependencies from lock file
Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. Run update to update them.
Your requirements could not be resolved to an installable set of packages.



ロックファイルを削除してリトライ。


$ rm -f composer.lock
$ php composer.phar install --no-dev --prefer-source



またエラーが発生しました。

Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

Problem 1
    - Installation request for laravel/framework 5.4.35 -> satisfiable by laravel/framework[v5.4.35].
    - roave/security-advisories dev-master conflicts with laravel/framework[v5.4.35].
    - Installation request for roave/security-advisories dev-master -> satisfiable by roave/security-advisories[dev-master].




解決はこちらが参考になります。
Composer Security Conflict security-advisories with laravel 5.4.35

composer.jsonからroave/security-advisoriesを削除します。


$ vi composer.json



44行目の指定を削除。


- "roave/security-advisories": "dev-master",



リトライ


$ php composer.phar install --no-dev --prefer-source



これでインストールできました。




初期設定とパーミッション



API Keyを作成します。


$ php artisan key:generate
**************************************
*     Application In Production!     *
**************************************

Do you really wish to run this command? (yes/no) [no]:
> yes




ディレクトリのパーミッションを変更しておきます。


$ chmod -R 777 storage
$ chmod -R 777 public/uploads





データベースの準備



データベースにユーザーとデータベースを作成しておきます。


$ sudo mysql -uroot
mysql> CREATE USER 'admin'@'%' IDENTIFIED BY 'P@ssw0rd';
mysql> GRANT ALL ON *.* TO 'admin'@'%';
mysql> quit



作成したユーザーで接続できるかテストし、データベースを作成します。


$ mysql -uadmin -p
Enter password:

mysql> CREATE DATABASE snipeit CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;





nginxの設定



nginxの設定を変更します。


$ sudo vi /etc/nginx/sites-enabled/default



変更箇所の抜粋です。


server {

        listen 80 default_server;
        listen [::]:80 default_server;

        root /var/www/snipe-it/public;

        # Add index.php to the list if you are using PHP
        index index.php index.html index.htm index.nginx-debian.html;

        server_name 192.168.1.102;

        location / {
                try_files $uri $uri/ /index.php;

                location = /index.php {
                        fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
                        fastcgi_param SCRIPT_FILENAME /var/www/snipe-it/public$fastcgi_script_name;
                        include fastcgi_params;
                }
        }
        location ~ \.php$ {
                return 444;
        }

}



nginxを再起動。


$ sudo service nginx restart



これで設置作業は完了です。




Pre-Flight



ブラウザで表示するとセットアップ画面が表示されます。

917_01.png

「Next: Create Database Tables」をクリックするとテーブルの作成が行われます。
結構時間がかかるようで通信がタイムアウトしました。

作成は途中まで進むようで、何回かこの画面でデータベース作成をクリックすると次に進めます。

917_02.png

初期ユーザーを作成。

917_03.png

これで画面が表示されました。

917_04.png


【参考URL】
https://snipe-it.readme.io/docs/installation
CentOS7 に Snipe-IT を導入
Snipe-IT を Ubuntu 16.04 LTS(AMI) に導入する
https://www.nginx.com/resources/wiki/start/topics/recipes/codeigniter/
Composer Security Conflict security-advisories with laravel 5.4.35

テーマ:サーバ - ジャンル:コンピュータ

  1. 2018/08/25(土) 17:16:50|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集

Ubuntu Server 18.04.1 sources.listの変更点

nginx-extras
Ubuntu 18.04ではインストールできたのに、
Ubuntu 18.04.1ではインストールできなくて気が付きました。

sources.list



こちらが参考になりました。
Ubuntu 18.04.1を新規インストールするときはapt lineに注意しよう

/etc/apt/sources.listを比較してみます。

・Ubuntu Server 18.04


## Note, this file is written by cloud-init on first boot of an instance
## modifications made here will not survive a re-bundle.
## if you wish to make changes you can:
## a.) add 'apt_preserve_sources_list: true' to /etc/cloud/cloud.cfg
##     or do the same in user-data
## b.) add sources in /etc/apt/sources.list.d
## c.) make changes to template file /etc/cloud/templates/sources.list.tmpl

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://archive.ubuntu.com/ubuntu bionic main restricted
deb-src http://archive.ubuntu.com/ubuntu bionic main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://archive.ubuntu.com/ubuntu bionic-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu bionic-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://archive.ubuntu.com/ubuntu bionic universe
deb-src http://archive.ubuntu.com/ubuntu bionic universe
deb http://archive.ubuntu.com/ubuntu bionic-updates universe
deb-src http://archive.ubuntu.com/ubuntu bionic-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://archive.ubuntu.com/ubuntu bionic multiverse
deb-src http://archive.ubuntu.com/ubuntu bionic multiverse
deb http://archive.ubuntu.com/ubuntu bionic-updates multiverse
deb-src http://archive.ubuntu.com/ubuntu bionic-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://archive.ubuntu.com/ubuntu bionic-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu bionic-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu bionic-security main restricted
deb-src http://security.ubuntu.com/ubuntu bionic-security main restricted
deb http://security.ubuntu.com/ubuntu bionic-security universe
deb-src http://security.ubuntu.com/ubuntu bionic-security universe
deb http://security.ubuntu.com/ubuntu bionic-security multiverse
deb-src http://security.ubuntu.com/ubuntu bionic-security multiverse

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu bionic partner
# deb-src http://archive.canonical.com/ubuntu bionic partner




・Ubuntu Server 18.04.1


deb http://archive.ubuntu.com/ubuntu bionic main
deb http://archive.ubuntu.com/ubuntu bionic-security main
deb http://archive.ubuntu.com/ubuntu bionic-updates main



めちゃくちゃあっさりになっていますね。


不足分



今回、nginx-extrasをインストールしたかったので、
以下の3行を/etc/apt/sources.listに追記しました。


deb http://archive.ubuntu.com/ubuntu bionic restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu bionic-security restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu bionic-updates restricted universe multiverse



これでapt searchで発見できるようになりました。


$ sudo apt update
$ apt search nginx-extras
ソート中... 完了
全文検索... 完了
lua-nginx-memcached/bionic 0.10-1 all
Pure Lua memcached client driver for the nginx embedded Lua language

lua-nginx-redis/bionic 0.26-1 all
Pure Lua redis client driver for the nginx embedded Lua language

lua-nginx-websocket/bionic 0.06-1 all
Lua websocket client driver for the nginx embedded Lua language

nginx/bionic 1.14.0-0ubuntu1 all
small, powerful, scalable web/proxy server

nginx-extras/bionic 1.14.0-0ubuntu1 amd64
nginx web/proxy server (extended version)



テーマ:プログラミング - ジャンル:コンピュータ

  1. 2018/08/25(土) 15:41:50|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集

nginx + php-fpmでfuelphp 1.8.1を動作させる

Ubuntu Server 18.04
nginx
php-fpm

この環境で、fuelphpを動かしてみます。


下準備



こちらを参考に設定します。
URL のリライト - nginx

php-fpmはソケットで待ち受けるよう構成しています。


$ vi /etc/php/7.2/fpm/pool.d/www.conf



listenの設定。


listen = /run/php/php7.2-fpm.sock




fuelphpはzipファイルをダウンロードし、「/var/www/fuelphp」に配置しました。

913_01.png

「oil efine install」で、書き込み権限が必要なディレクトリの設定を変更します。


$ cd /var/www/fuelphp/
$ oil refine install
    Made writable: /var/www/fuelphp/fuel/app/cache
    Made writable: /var/www/fuelphp/fuel/app/logs
    Made writable: /var/www/fuelphp/fuel/app/tmp
    Made writable: /var/www/fuelphp/fuel/app/config





nginxの設定ファイル



nginxの設定ファイルを編集します。


$ sudo vi /etc/nginx/sites-enabled/default



内容は以下のようになりました。


server {
        listen 80 default_server;
        listen [::]:80 default_server;

        root /var/www/fuelphp/public;
        index index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
                index index.php;
                try_files try_files $uri $uri/ /index.php$is_args$args;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
                fastcgi_param FUEL_ENV "development";
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }

}




設定ファイルを読み込み。


$ sudo service nginx reload



ブラウザで、http://[サーバーIP]を表示すると、こんな画面になるはずです。

913_02.png

テーマ:サーバ - ジャンル:コンピュータ

  1. 2018/07/29(日) 21:13:25|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
次のページ