Railsアプリケーションをにデプロイしようとしているが/home/app/myapp
アプリケーションがMysqlに接続しようとすると、次のエラーが発生します。
** [out :: 192.168.110.50] /home/app/myapp/shared/bundle/ruby/1.9.1/gems/mysql2-0.3.11/lib/mysql2/mysql2.so: failed to map segment from shared object: Operation not permitted - /home/app/myapp/shared/bundle/ruby/1.9.1/gems/mysql2-0.3.11/lib/mysql2/mysql2.so
「アプリ」ユーザーはroot権限を持っているので意味がありません。
インターネット検索の結果、noexec
ホームフォルダからシステムコールをブロックできることがわかりました。これは私のfstabファイルです。
$cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed Oct 17 16:48:10 2012
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/VG00-LVbarra / ext4 defaults 1 1
UUID=3d5ccda7-932f-4b48-a010-9ddcb99873c0 /boot ext4 defaults 1 2
/dev/mapper/VG00-LVhome /home ext4 defaults,noexec,nosuid 1 2
/dev/mapper/VG00-LVtmp /tmp ext4 defaults,noexec,nosuid 1 2
/dev/mapper/VG00-LVusr /usr ext4 defaults 1 2
/dev/mapper/VG00-LVvar /var ext4 defaults,noexec,nosuid 1 2
ホームフォルダからnoexecフラグを削除する方法は?ありがとうございます!
答え1
mprotectが失敗したようですが、とにかくnoexecフラグを削除するには、次の変更を行います。
/dev/mapper/VG00-LVhome /home ext4 defaults,noexec,nosuid
到着
/dev/mapper/VG00-LVhome /home ext4 defaults,nosuid
/homeを再マウントしてください。mount -o remount /home