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
"앱" 사용자는 루트 권한을 가지고 있으므로 의미가 없습니다.
인터넷 검색 결과 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