ソフラボの技術ブログ

仕事で使ったプログラミング、サーバー周りで役に立つこと、Webサービス開発に必要な技術情報、モバイル情報を書いてます。わかりやすく見やすくをモットーにしています。

XSERVERでCodeIgniter4を動かすための.htaccessの設定方法

XSERVERでCodeIgniter4を動かそうとすると、どうもmod_rewriteが認識されていないようだったので、どこで設定するのか少しハマりました。
今後もハマらないようにメモとして記事に残しておきます。

XSERVERの仕様

XSERVERで使われているWebサーバーはNGINXですが、なぜかApache.htaccessが動作する謎仕様です。

ドメインごとにホームディレクトリが作られるので、その中の「public_html」配下がWebサイトとして動作するディレクトリになります。

XSERVERでの.htaccessの設定場所

上記仕様の通り、.htaccessは「public_html」配下に置かれたものが認識されます。
CodeIgniterにもpublicディレクトリ配下に.htaccessがありますが、こちらはなぜか認識しないので編集しても動作が変わらない点に注意してください。

FTPやファイルマネージャーから直接.htaccessを編集しても良いですが、サーバーパネルにある「.htaccess編集」から編集すると簡単に操作できます。
www.xserver.ne.jp

CodeIgniter用の.htaccess内容

以下の内容で追記してください。間違っても既存の設定を削除しないように気をつけましょう。
CodeIgniter3、4で動作確認済みです。

# mod_rewrite有効化
RewriteEngine On

# https強制
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# index.phpの置換
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

winetricksでvlgothicがインストールできない対処方法

エラー内容

コマンドを実行するとダウンロードしたアーカイブチェックサムが不一致というエラーが出てインストールが完了しません。

$ winetricks --force fakejapanese_vlgothic

warning: taskset/cpuset not available on your platform!
------------------------------------------------------
warning: You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Using winetricks 20230212 - sha256sum: 524c3cd602ef222da3dc644a0a741edd8bca6dfb72ba3c63998a76b82f9e77b2 with wine-8.0.1 (CrossOver FOSS 23.0.1) and WINEARCH=win64
Executing w_do_call fakejapanese_vlgothic
------------------------------------------------------
warning: You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Executing load_fakejapanese_vlgothic 
Executing w_do_call vlgothic
------------------------------------------------------
warning: You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Executing load_vlgothic 
------------------------------------------------------
warning: Checksum for /Users/owner/.cache/winetricks/vlgothic/VLGothic-20141206.tar.xz did not match, retrying download
------------------------------------------------------
Executing cd /Users/owner/.cache/winetricks/vlgothic
Downloading https://ja.osdn.net/projects/vlgothic/downloads/62375/VLGothic-20141206.tar.xz to /Users/owner/.cache/winetricks/vlgothic
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100     2    0     2    0     0      2      0 --:--:-- --:--:-- --:--:--     2
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
curl: (60) SSL certificate problem: certificate has expired
More details here: https://curl.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.
Executing cd /Users/owner/.cache/winetricks/vlgothic
Downloading https://web.archive.org/web/2000/https://ja.osdn.net/projects/vlgothic/downloads/62375/VLGothic-20141206.tar.xz to /Users/owner/.cache/winetricks/vlgothic
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:--  0:00:02 --:--:--     0
100 57620  100 57620    0     0  16634      0  0:00:03  0:00:03 --:--:--  144k
Executing cd /Users/owner
------------------------------------------------------
SHA256 mismatch!

URL: https://web.archive.org/web/2000/https://ja.osdn.net/projects/vlgothic/downloads/62375/VLGothic-20141206.tar.xz
Downloaded: 580177c3a0464e97e0f35047ea8b8e91c7fd08fe996110b29a26a31e92b1c5f7
Expected: 982040db2f9cb73d7c6ab7d9d163f2ed46d1180f330c9ba2fae303649bf8102d

This is often the result of an updated package such as vcrun2019.
If you are willing to accept the risk, you can bypass this check.
Alternatively, you may use the --force option to ignore this check entirely.

Continue anyway?
------------------------------------------------------
Press Y or N, then Enter: N
------------------------------------------------------
warning: Operation cancelled, quitting.
------------------------------------------------------

原因

チェックサムが異なるというエラーだが、実際はコマンド経由でダウンロードしたアーカイブファイル「VLGothic-20141206.tar.xz」が壊れているため解凍できずにエラーが発生している状態でした。

対処方法

1.Googleで適当に「VLGothic-20141206.tar.xz」で検索します。
管理人は以下からダウンロードしました。
http://repository.timesys.com/buildsources/v/vlgothic/vlgothic-20141206/

2.ダウンロードしたファイルを以下の場所に置きます。

/Users/{ユーザー名}/.cache/winetricks/vlgothic

3.再度コマンドを実行時に、--forceをつけてチェックサムエラーを回避します。

$ winetricks --force fakejapanese_vlgothic

warning: taskset/cpuset not available on your platform!
------------------------------------------------------
warning: You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Using winetricks 20230212 - sha256sum: 524c3cd602ef222da3dc644a0a741edd8bca6dfb72ba3c63998a76b82f9e77b2 with wine-8.0.1 (CrossOver FOSS 23.0.1) and WINEARCH=win64
Executing w_do_call fakejapanese_vlgothic
------------------------------------------------------
warning: You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Executing load_fakejapanese_vlgothic 
Executing w_do_call vlgothic
------------------------------------------------------
warning: You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Executing load_vlgothic 
Executing cd /Users/owner/.wine/dosdevices/c:/windows/temp
Executing tar -Jxf /Users/owner/.cache/winetricks/vlgothic/VLGothic-20141206.tar.xz
------------------------------------------------------
warning: Running /usr/local/bin/wineserver -w. This will hang until all wine processes in prefix=/Users/owner/.wine terminate
------------------------------------------------------
Executing wine C:\windows\syswow64\regedit.exe C:\windows\Temp\_register-font.reg
007c:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
007c:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
007c:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
007c:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
00cc:err:environ:init_peb starting L"C:\\windows\\syswow64\\regedit.exe" in experimental wow64 mode
Executing wine64 C:\windows\regedit.exe C:\windows\Temp\_register-font.reg
Executing cp /Users/owner/.wine/dosdevices/c:/windows/temp/_register-font.reg /var/folders/bq/w7zvzth950d8cj7nv514vy7c0000gn/T//winetricks.0UcuiTpE/_reg_74f137bd_6391.reg
Executing wine C:\windows\syswow64\regedit.exe C:\windows\Temp\_register-font.reg
00fc:err:environ:init_peb starting L"C:\\windows\\syswow64\\regedit.exe" in experimental wow64 mode
Executing wine64 C:\windows\regedit.exe C:\windows\Temp\_register-font.reg
Executing cp /Users/owner/.wine/dosdevices/c:/windows/temp/_register-font.reg /var/folders/bq/w7zvzth950d8cj7nv514vy7c0000gn/T//winetricks.0UcuiTpE/_reg_c62563e6_6391.reg
Executing wine C:\windows\syswow64\regedit.exe C:\windows\Temp\_register-font.reg
012c:err:environ:init_peb starting L"C:\\windows\\syswow64\\regedit.exe" in experimental wow64 mode
Executing wine64 C:\windows\regedit.exe C:\windows\Temp\_register-font.reg
Executing cp /Users/owner/.wine/dosdevices/c:/windows/temp/_register-font.reg /var/folders/bq/w7zvzth950d8cj7nv514vy7c0000gn/T//winetricks.0UcuiTpE/_reg_6ae53c21_6391.reg
Executing wine C:\windows\syswow64\regedit.exe C:\windows\Temp\_register-font.reg
015c:err:environ:init_peb starting L"C:\\windows\\syswow64\\regedit.exe" in experimental wow64 mode
Executing wine64 C:\windows\regedit.exe C:\windows\Temp\_register-font.reg
Executing cp /Users/owner/.wine/dosdevices/c:/windows/temp/_register-font.reg /var/folders/bq/w7zvzth950d8cj7nv514vy7c0000gn/T//winetricks.0UcuiTpE/_reg_adcd8fcc_6391.reg
Executing wine C:\windows\syswow64\regedit.exe C:\windows\Temp\_register-font-replacements.reg
018c:err:environ:init_peb starting L"C:\\windows\\syswow64\\regedit.exe" in experimental wow64 mode
Executing wine64 C:\windows\regedit.exe C:\windows\Temp\_register-font-replacements.reg
Executing cp /Users/owner/.wine/dosdevices/c:/windows/temp/_register-font-replacements.reg /var/folders/bq/w7zvzth950d8cj7nv514vy7c0000gn/T//winetricks.0UcuiTpE/_reg_86ccd31f_6391.reg
Executing wine C:\windows\syswow64\regedit.exe C:\windows\Temp\_register-font-replacements.reg
01bc:err:environ:init_peb starting L"C:\\windows\\syswow64\\regedit.exe" in experimental wow64 mode
Executing wine64 C:\windows\regedit.exe C:\windows\Temp\_register-font-replacements.reg
Executing cp /Users/owner/.wine/dosdevices/c:/windows/temp/_register-font-replacements.reg /var/folders/bq/w7zvzth950d8cj7nv514vy7c0000gn/T//winetricks.0UcuiTpE/_reg_ba37f77c_6391.reg
Executing wine C:\windows\syswow64\regedit.exe C:\windows\Temp\_register-font-replacements.reg
01ec:err:environ:init_peb starting L"C:\\windows\\syswow64\\regedit.exe" in experimental wow64 mode
Executing wine64 C:\windows\regedit.exe C:\windows\Temp\_register-font-replacements.reg
Executing cp /Users/owner/.wine/dosdevices/c:/windows/temp/_register-font-replacements.reg /var/folders/bq/w7zvzth950d8cj7nv514vy7c0000gn/T//winetricks.0UcuiTpE/_reg_76961d0e_6391.reg

4.以上でインストール完了です。

Visual Studio 2015から2019への移行で Crystal Reports をバージョンアップする

Visual Studioの開発環境が古いものになってきたので最新版に移行することにしました。

現在は2022が最新ですが、当時2022がリリースされる直前かつそれに対応したCrystal Reportsのランタイムがなかったため2019での内容になります。

恐らくVisual Studioのバージョンが変わっても大きな変更がない限り使えると思います。

動作環境

旧環境

Windows 10
VisualStudio Community 2015
.NETFramework 4.6.1
CrystalReports 13.0.20

新環境

Windows 11
VisualStudio Community 2019
.NETFramework 4.6.1
CrystalReports 13.0.32

プロジェクトのバージョンアップ

2015で作ったプロジェクトを2019で読み込ませます。

読み込ませると自動的に2019に対応したプロジェクトに変換され、結果がHTMLで出力されます。

問題があるところは、手動で対応しましょう。

Crystal Reportのバージョンアップ

環境としては、新旧別端末となるので、古いバージョンのランタイム等はインストールされていないものとなります。

既存環境でのバージョンアップの場合、古いものは事前に削除しておきましょう。

SAP Univasal IDの取得

すでに取得済みの方は、アカウント作成は行わず、次の新規取得と同じリンクを開いて下さい。

新しく取得する場合、次のリンクを開き「Download software now」をクリックしてアカウントを作成して下さい。
www.sap.com

アカウントの作成理由は、次で必要となる関連ファイルをダウンロードするためです。

今まではアカウントがなくてもダウンロードできていましたが、それができなくなりました。

関連ファイルのダウンロード

アカウントを登録すると、ダウンロードリンクがメールで送られてくるので、そのリンクからダウンロードします。

また、先程のアカウント取得ページからも、ログインしていればメール記載の同じリンクが表示されるようになります。

ダウンロード可能なもの一覧

(SP32)は、Crystal Reportsのモジュールバージョンです。
使用するファイルは、赤字のものになります。

開発環境でのインストール

Visual StudioでCrystal Reportsを使えるようにするために以下をインストールします。

Visual Studioで作成したインストーラーにマージモジュールを含めるため、以下のファイルを展開します。

  • SAP Crystal Reports for Visual Studio (SP32) runtime merge modules (32-bit), no IDE integration

マージモジュールの適用方法は、以下の記事を参考にして下さい。
今回も必要なファイルは2ファイルです。
shinsuke789.hatenablog.jp

プロジェクトでのCrystal Reports参照設定のし直し

何もしなくても動作しそうですが、もしエラーが発生している場合、一旦Crsytal Reportsの参照設定を外し、再設定して下さい。
それをする前に、現在の参照設定をキャプチャーを取るなり記憶しておいて下さい。

管理人の環境では以下のようになってます。

Crystal Reports参照設定

クライアント環境でのインストール

いろいろやってみると、配布するインストーラーにマージモジュールが含まれていると、クライアント環境にCrystal Reportsランタイムがなくても帳票が出力されていました。ランタイムとは一体…。

しかし、用途によってはCrystal Reportsランタイムが必要かもしれません。

その場合は、「SAP Crystal Reports for Visual Studio (SP32) runtime (??-bit)」をインストールして下さい。

EC CUBE 4.0.5でPHP Composer 1.xを使ってインストールする

EC CUBEをDockerで構築時にエラーに遭遇したので、その時の対処方法をまとめました。

環境

macOS 10.14
・Docker Desktop 2.5.0.1
・EC CUBE 4.0.5

現象

上記環境でEC CUBE付属ファイルでdocker composeを実行すると次のエラーが発生します。

Composer (version 2.0.8) successfully installed to: /var/www/html/composer.phar
Use it: php composer.phar

Changed current directory to /root/.composer

                                                                                                        
  [RuntimeException]                                                                                    
  No composer.json present in the current directory, this may be the cause of the following exception.  
                                                                                                        

                                             
  [InvalidArgumentException]                 
  Could not find package hirak/prestissimo.  
                                             
  Did you mean this?                         
      hirak/prestissimo                      
                                             

require [--dev] [--dry-run] [--prefer-source] [--prefer-dist] [--fixed] [--no-suggest] [--no-progress] [--no-update] [--no-install] [--no-scripts] [--update-no-dev] [-w|--update-with-dependencies] [-W|--update-with-all-dependencies] [--with-dependencies] [--with-all-dependencies] [--ignore-platform-req IGNORE-PLATFORM-REQ] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--apcu-autoloader-prefix APCU-AUTOLOADER-PREFIX] [--] [<packages>]...

ERROR: Service 'ec-cube' failed to build : The command '/bin/sh -c curl -sS https://getcomposer.org/installer   | php   && mv composer.phar /usr/bin/composer   && composer config -g repos.packagist composer https://packagist.jp   && composer global require hirak/prestissimo   && chown www-data:www-data /var/www   && mkdir -p ${APACHE_DOCUMENT_ROOT}/var   && chown -R www-data:www-data ${APACHE_DOCUMENT_ROOT}   && find ${APACHE_DOCUMENT_ROOT} -type d -print0   | xargs -0 chmod g+s   ;' returned a non-zero code: 1

原因

EC CUBE 4.0.5以前は、PHP Composer 2.xに対応していないためです。

対処方法

EC CUBE付属のDockerfileの58行目あたりのphpコマンドにバージョンを指定するオプションを指定し、再度docker composeを実行します。
php -- --1」とすることで、Composer 1系の最新版をインストールするようになります。

Dockerfileの編集

# before
RUN curl -sS https://getcomposer.org/installer \
  | php \
  && mv composer.phar /usr/bin/composer \

# after
RUN curl -sS https://getcomposer.org/installer \
  | php -- --1 \
  && mv composer.phar /usr/bin/composer \

EC-CUBE 4 システム構築入門&店舗運営・管理ビギナーズガイド

EC-CUBE 4 システム構築入門&店舗運営・管理ビギナーズガイド

  • 作者:西村 誠
  • 発売日: 2019/02/27
  • メディア: 単行本(ソフトカバー)

FlutterでCocoaPodsインストール時のエラー対処方法

FlutterでiOSの開発環境構築時に少しエラーが出てハマったので、その時の対処方法を紹介します。

環境

macOS:10.14.6
Ruby:2.3.7p456 (2018-03-28 revision 63024)
Flutter SDK:1.20.1

現象

CocoaPodsをインストールしようとするとエラーが発生する。

$ sudo gem install cocoapods
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/universal-darwin18/rbconfig.rb:215: warning: Insecure world writable dir /Users/xxxx/dev in PATH, mode 040777
Fetching: concurrent-ruby-1.1.7.gem (100%)
Successfully installed concurrent-ruby-1.1.7
Fetching: i18n-0.9.5.gem (100%)
Successfully installed i18n-0.9.5
Fetching: thread_safe-0.3.6.gem (100%)
Successfully installed thread_safe-0.3.6
Fetching: tzinfo-1.2.7.gem (100%)
Successfully installed tzinfo-1.2.7
Fetching: activesupport-4.2.11.3.gem (100%)
Successfully installed activesupport-4.2.11.3
Fetching: nap-1.1.0.gem (100%)
Successfully installed nap-1.1.0
Fetching: fuzzy_match-2.0.4.gem (100%)
Successfully installed fuzzy_match-2.0.4
Fetching: httpclient-2.8.3.gem (100%)
Successfully installed httpclient-2.8.3
Fetching: algoliasearch-1.27.3.gem (100%)
Successfully installed algoliasearch-1.27.3
Fetching: ffi-1.13.1.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing cocoapods:
	ERROR: Failed to build gem native extension.

    current directory: /Library/Ruby/Gems/2.3.0/gems/ffi-1.13.1/ext/ffi_c
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby -r ./siteconf20200810-3603-xmhpxy.rb extconf.rb
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/universal-darwin18/rbconfig.rb:215: warning: Insecure world writable dir /Users/xxxx/dev in PATH, mode 040777
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/include/ruby.h

extconf failed, exit code 1

Gem files will remain installed in /Library/Ruby/Gems/2.3.0/gems/ffi-1.13.1 for inspection.
Results logged to /Library/Ruby/Gems/2.3.0/extensions/universal-darwin-18/2.3.0/ffi-1.13.1/gem_make.out

調べると、makeで失敗していてRubyのバージョンが古いのが原因のようです。

対処方法

以下の記事を参考にMacRubyを最新にアップデートします。
shinsuke789.hatenablog.jp

Flutter関連書籍

基礎から学ぶ Flutter

基礎から学ぶ Flutter

Flutter モバイルアプリ開発バイブル

Flutter モバイルアプリ開発バイブル

Android/iOSクロス開発フレームワーク Flutter入門

Android/iOSクロス開発フレームワーク Flutter入門

MacのRubyを最新バージョンにする

環境

macOS:10.14.6
Ruby:2.3.7p456 (2018-03-28 revision 63024)
Homebrew:2.4.9

手順

Homebrewがインストールされているのを前提で説明します。


1.Homebrewでrbenvをインストールする

$ brew install rbenv


2.インストール可能なRubyのバージョンを確認する

$ rbenv install --list
2.5.8
2.6.6
2.7.1
jruby-9.2.12.0
maglev-1.0.0
mruby-2.1.1
rbx-5.0
truffleruby-20.1.0
truffleruby+graalvm-20.1.0


3.リストにある最新のバージョンでRubyをインストールする

$ rbenv install 2.7.1

インストールに意外と時間がかかります


4.デフォルトのRubyバージョンを設定します。

$ rbenv global 2.7.1


5.~/.bash_profileに設定を追加する

$ vi ~/.bash_profile
# 以下を追記する
eval "$(rbenv init -)" 


6.設定を有効化する

$ source ~/.bash_profile


7.バージョンが切り替わっているか確認する

$ ruby -v
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin18]


たのしいRuby 第6版 (Informatics&IDEA)

たのしいRuby 第6版 (Informatics&IDEA)

WildFlyでSpringBoot2.xを起動するとエラーになる場合の対処方法

WildFlyでSpringBoot2.xを動かそうとすると、以下のエラーが発生しアプリが起動しません。

(ServerService Thread Pool -- 78) Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userDetailsServiceImpl': Unsatisfied dependency expressed through field 'loginService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'loginService': Unsatisfied dependency expressed through field 'usersDao'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'usersDaoImpl' defined in VFS resource ["/Users/xxx/dev/eclipse/server/wildfly-20/standalone/deployments/WebApp.war/WEB-INF/classes/com/example/dao/UsersDaoImpl.class"]: Initialization of bean failed; nested exception is org.springframework.aop.framework.AopConfigException: Unexpected AOP exception; nested exception is org.springframework.aop.framework.AopConfigException: Unable to instantiate proxy using Objenesis, and regular proxy instantiation via default constructor fails as well; nested exception is java.lang.NoSuchMethodException: com.example.dao.UsersDaoImpl$$EnhancerBySpringCGLIB$$31fd9af9.<init>()

どうもDIできてないのが原因ぽいです。
Java9以降で発生します。
対処方法は、設定ファイルに追記するだけなので簡単です。

環境

OS:CentOS7
WildFly:20
SpringBoot:2.3.1
Java:14

対処方法

jboss-deployment-structure.xmlに依存関係の設定を追加する。

<?xml version="1.0"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <deployment>
        <dependencies>
        	<module name="jdk.unsupported"/>
        </dependencies>
    </deployment>
</jboss-deployment-structure>