OSXの.NET Core で libgdiplusが見つからないエラー

DllNotFoundException: Unable to load DLL 'libgdiplus'

とか出る場合です。 私自身は、ClosedXMLの実行時に遭遇しました。

libgdiplusは、 Windows標準のDLL(libgdiplus.dll)
OSX環境でも、/usr/local/libなどに、libgdiplus.dylib が入っている。
(今の時点で、monoか、.net core 自体が入れるのか不明だが)

問題はこれを見つけられないことなので、環境変数 LD_LIBRARY_PATH にlibgdiplus.dylibがあるパスを追加する。
.bash_profile に

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

とし、その後

source ./.bash_profile

下記を参照

http://www.mono-project.com/docs/gui/problemgdiplusinit/

Docker for Mac & SQL Server 2017 インストール

  1. docker for Macをダウンロード
    www.docker.com
  2. docker for Macをインストール
  3. docker for Macを起動し、メモリ割り当て変更。メモリは 4GBにする。
  4. SQL Server on Linux のイメージを Docker Hub からダウンロード
    docker pull microsoft/mssql-server-linux
    

    ダウンロード元のサイト

  5. コンテナを起動
    docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<*password*>' \
    -p 1433:1433 --name mssql \
    -d microsoft/mssql-server-linux:latest
    
  6. 動作確認
    sudo docker ps
    

    見えないときは ps -a で停止しているコンテナを表示

    docker ps -a
    

    [STATUS] 列が [Up]:正常、[STATUS] 列が [Exited]:エラー

  7. エラー時はログを確認
    docker logs XXXXXXXX
    
  8. ストップと再起動
    docker stop mssql
    docker rm mssql
    
  9. 手動でコンテナをスタート
    docker start **コンテナID** 
    

OSXにHomebrewでRailsをインストールする

(rbenv ruby-buildのインストール) 
brew install ruby-build
brew install rbenv
echo ‘eval “$(rbenv init -)”‘ >> ~/.bash_profile
source ~/.bash_profile

(rubyのインストール) 
rbenv install -l
rbenv install 2.4.2
rbenv rehash
rbenv global 2.4.2

(powのインストール) 
gem install powder
rbenv rehash
powder install

(railsのインストール) 
gem install bundler
gem install rails
rbenv rehash

cd XXX
bundle exec spring binstub –all

OSXにPostgreSQLをHomebrewでインストールする

brew install postgresql

(自動起動にする)
brew services start postgresql

(止める、自動起動も止まる)
brew services stop postgresql

(コンソールからアクセス)
psql -d postgres

(データベースの作成)
CREATE DATABASE sandbox;

(パスワード付でユーザーの作成)
createuser -P rails_user

(データベースの権限確認)
psql -q -c’select * from pg_user’ sandbox

(rails_userに権限付与)
psql -U mac_user sandbox
sandbox=#\du
sandbox=#ALTER ROLE rails_user WITH Superuser;

SierraにHomebrewでMySQL, Apache,PHPをインストール

Homebrew自体の準備

brew update
brew doctor

MySQL

brew install mysql
mysql_secure_installation
mysql.server start
//loginで開始するように設定
brew services start mysql

Apache

brew tap homebrew/dupes
brew tap homebrew/apache
//デフォルト8080で動作
brew install httpd24
//loginで開始するように設定
brew services start homebrew/apache/httpd24

PHP

brew tap homebrew/dupes
brew tap homebrew/versions
brew tap homebrew/homebrew-php
//既存のPHPがあれば
brew unlink php55
//httpd.confに php7_module の行を追加
brew install php71 --with-httpd24

Apacheの設定
/usr/local/etc/apache2/2.4/httpd.conf

//設定済のはず
LoadModule php7_module /usr/local/opt/php71/libexec/apache2/libphp7.so
//修正する
ServerName localhost:8080
//index.phpを書き加える
DirectoryIndex index.php index.html
//コメント解除
Include /usr/local/etc/apache2/2.4/extra/httpd-vhosts.conf
LoadModule rewrite_module libexec/mod_rewrite.so
//末尾に追加
<FilesMatch .php$>
SetHandler application/x-httpd-php
</FilesMatch>

vhostの設定
/usr/local/etc/apache2/2.4/extra/httpd-vhosts.conf

<VirtualHost *:8080>
    ServerName localhost
    DocumentRoot "/usr/local/var/www/htdocs"
    <Directory "/usr/local/var/www/htdocs">
        AllowOverride All
        Require all granted
    </Directory>
    CustomLog "/usr/local/var/log/apache2/localhost.access.log" common 
    ErrorLog "/usr/local/var/log/apache2/localhost.error.log"
</VirtualHost>
 
<VirtualHost *:8080>
    ServerName SSS.dev
    DocumentRoot "XXX/public"
    <Directory "XXX/public">
        AllowOverride All
        Require all granted
    </Directory>
    CustomLog "/usr/local/var/log/apache2/SSS.dev.access.log" common 
    ErrorLog "/usr/local/var/log/apache2/SSS.dev.error.log"
</VirtualHost>

PHPの設定
/usr/local/etc/php/7.1/php.ini

date.timezone = Asia/Tokyo
default_charset = "UTF-8"
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII

その他、PHP開発用

brew install php71-xdebug

brew update で …/kernel_require.rb:55:in `require’: cannot load such file …

brew update で、以下のエラーが出る場合の対処。
Sierra

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require’: cannot load such file — mach (LoadError)
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require’
from /usr/local/Library/Homebrew/extend/pathname.rb:2:in `
….

cd /usr/local
git reset --hard && git clean -df

brew doctor してみると異なるエラーになるので、さらに対処

Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don’t worry and just ignore them. Thanks!

Warning: The /usr/local directory is not writable.

sudo chown -R $(whoami):admin /usr/local

その後に 
brew update
brew upgrade

Laravel 5.2 install

権限追加を忘れずに
/bootstrap/cache/
/strage/

.envの編集

composer.jsonの編集
require
“laravelcollective/html”: “~5.0”
autoload
“files”: [
“app/Helper.php”
]

config/app.phpの編集
‘timezone’ => ‘Asia/Tokyo’
‘locale’ => ‘ja’
‘providers’ =>
Collective\Html\HtmlServiceProvider::class,
‘aliases’ =>
‘Form’ => Collective\Html\FormFacade::class,
‘Html’ => Collective\Html\HtmlFacade::class,