thank you
Sanguine
it is because of the permission issue, but the wired thing is I have chown the files to nginx users, why it still can 't access those files ?
[vagrant@vagrant-centos65 ~]$ ls -l
total 12
drwxrwxr-x 7 nginx vagrant 4096 Dec 1 18:06 codes
[vagrant@vagrant-centos65 codes]$ ls -l
total 244
-rwxrwxrwx 1 nginx vagrant 319 May 24 2017 admin.php
-rwxrwxrwx 1 nginx vagrant 317 May 24 2017 api.php
drwxrwxrwx 3 nginx vagrant 4096 May 24 2017 assets
-rwxrwxrwx 1 nginx vagrant 1708 May 24 2017 composer.json
-rwxrwxrwx 1 nginx vagrant 161825 Nov 28 14:35 composer.lock
-rwxrwxrwx 1 nginx vagrant 4958 May 24 2017 CONTRIBUTING.md
-rwxrwxrwx 1 nginx vagrant 381 May 24 2017 flarum
-rwxrwxrwx 1 nginx vagrant 772 Nov 28 16:13 forum.juwai.com.conf
-rw-rw-r-- 1 vagrant vagrant 12 Nov 28 17:40 index.html
-rwxrwxrwx 1 nginx vagrant 319 May 24 2017 index.php
-rwxrwxrwx 1 nginx root 758 Nov 28 16:04 juwai.com.conf
-rwxrwxrwx 1 nginx vagrant 1083 May 24 2017 LICENSE
drwxrwxr-x 12 vagrant vagrant 4096 Dec 1 16:49 phpmyadmin
-rwxrwxrwx 1 nginx vagrant 104 May 24 2017 Procfile
-rwxrwxrwx 1 nginx vagrant 1480 May 24 2017 readme.md
drwxrwxrwx 2 nginx vagrant 4096 May 24 2017 scripts
drwxrwxrwx 8 nginx vagrant 4096 May 24 2017 storage
-rw-rw-r-- 1 vagrant vagrant 0 Dec 1 18:06 strace.log
-rwxrwxrwx 1 nginx vagrant 11320 May 24 2017 Vagrantfile
drwxrwxrwx 31 nginx vagrant 4096 Nov 28 14:35 vendor
[vagrant@vagrant-centos65 ~]$ cat strace.log
5380 accept(0, <unfinished ...>
5341 accept(0, <unfinished ...>
5336 accept(0, <unfinished ...>
5333 accept(0, <unfinished ...>
5330 accept(0, <unfinished ...>
5250 epoll_wait(8, {}, 1, 107) = 0
5250 epoll_wait(8, {}, 1, 1000) = 0
5250 epoll_wait(8, {}, 1, 1000) = 0
5250 epoll_wait(8, {}, 1, 1000) = 0
5250 epoll_wait(8, {}, 1, 1000) = 0
5250 epoll_wait(8, {}, 1, 1000) = 0
5250 epoll_wait(8, {}, 1, 1000) = 0
5250 epoll_wait(8, {}, 1, 1000) = 0
5250 epoll_wait(8, {}, 1, 1000) = 0
5250 epoll_wait(8, {}, 1, 1000) = 0
5250 epoll_wait(8, {}, 1, 1000) = 0
5250 epoll_wait(8, {}, 1, 1000) = 0
5250 epoll_wait(8, {}, 1, 1000) = 0
5250 epoll_wait(8, {}, 1, 1000) = 0
5250 epoll_wait(8, <unfinished ...>
5380 <... accept resumed> {sa_family=AF_LOCAL, NULL}, [2]) = 3
5380 times({tms_utime=0, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 444832851
5380 poll([{fd=3, events=POLLIN}], 1, 5000) = 1 ([{fd=3, revents=POLLIN}])
5380 read(3, "\1\1\0\1\0\10\0\0", 8) = 8
5380 read(3, "\0\1\0\0\0\0\0\0", 8) = 8
5380 read(3, "\1\4\0\1\3\202\6\0", 8) = 8
5380 read(3, "\f\0QUERY_STRING\16\3REQUEST_METHODGE"..., 904) = 904
5380 read(3, "\1\4\0\1\0\0\0\0", 8) = 8
5380 lstat("/home/vagrant/codes/index.php", 0x7fffbe1900b0) = -1 EACCES (Permission denied)
5380 stat("/home/vagrant/codes", 0x7fffbe1923b0) = -1 EACCES (Permission denied)
5380 stat("/home/vagrant", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
5380 stat("/home", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
5380 stat("", 0x7fffbe1923b0) = -1 ENOENT (No such file or directory)
5380 setitimer(ITIMER_PROF, {it_interval={0, 0}, it_value={60, 0}}, NULL) = 0
5380 rt_sigaction(SIGPROF, {0x5d2b40, [PROF], SA_RESTORER|SA_RESTART, 0x7f5fef7539a0}, {SIG_DFL, [], 0}, 8) = 0
5380 rt_sigprocmask(SIG_UNBLOCK, [PROF], NULL, 8) = 0
5380 brk(0x2405000) = 0x2405000
5380 times({tms_utime=0, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 444832851
5380 setitimer(ITIMER_PROF, {it_interval={0, 0}, it_value={0, 0}}, NULL) = 0
5380 write(3, "\1\7\0\1\0\27\1\0Primary script unknown\n\0"..., 168) = 168
5380 shutdown(3, SHUT_WR) = 0
5380 recvfrom(3, "\1\5\0\1\0\0\0\0", 8, 0, NULL, NULL) = 8
5380 recvfrom(3, "", 8, 0, NULL, NULL) = 0
5380 close(3) = 0
5380 setitimer(ITIMER_PROF, {it_interval={0, 0}, it_value={0, 0}}, NULL) = 0
5380 accept(0, <unfinished ...>
5250 <... epoll_wait resumed> {}, 1, 1000) = 0
5250 epoll_wait(8, {}, 1, 1000) = 0
5250 epoll_wait(8, <unfinished ...>
5336 <... accept resumed> {sa_family=AF_LOCAL, NULL}, [2]) = 3
5336 times({tms_utime=0, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 444833052
5336 poll([{fd=3, events=POLLIN}], 1, 5000) = 1 ([{fd=3, revents=POLLIN}])
5336 read(3, "\1\1\0\1\0\10\0\0", 8) = 8
5336 read(3, "\0\1\0\0\0\0\0\0", 8) = 8
5336 read(3, "\1\4\0\1\3\202\6\0", 8) = 8
5336 read(3, "\f\0QUERY_STRING\16\3REQUEST_METHODGE"..., 904) = 904
5336 read(3, "\1\4\0\1\0\0\0\0", 8) = 8
5336 lstat("/home/vagrant/codes/index.php", 0x7fffbe1900b0) = -1 EACCES (Permission denied)
5336 stat("/home/vagrant/codes", 0x7fffbe1923b0) = -1 EACCES (Permission denied)
5336 stat("/home/vagrant", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
5336 stat("/home", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
5336 stat("", 0x7fffbe1923b0) = -1 ENOENT (No such file or directory)
5336 setitimer(ITIMER_PROF, {it_interval={0, 0}, it_value={60, 0}}, NULL) = 0
5336 rt_sigaction(SIGPROF, {0x5d2b40, [PROF], SA_RESTORER|SA_RESTART, 0x7f5fef7539a0}, {SIG_DFL, [], 0}, 8) = 0
5336 rt_sigprocmask(SIG_UNBLOCK, [PROF], NULL, 8) = 0
5336 brk(0x2405000) = 0x2405000
5336 times({tms_utime=0, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 444833052
5336 setitimer(ITIMER_PROF, {it_interval={0, 0}, it_value={0, 0}}, NULL) = 0
5336 write(3, "\1\7\0\1\0\27\1\0Primary script unknown\n\0"..., 168) = 168
5336 shutdown(3, SHUT_WR) = 0
5336 recvfrom(3, "\1\5\0\1\0\0\0\0", 8, 0, NULL, NULL) = 8
5336 recvfrom(3, "", 8, 0, NULL, NULL) = 0
5336 close(3) = 0
5336 setitimer(ITIMER_PROF, {it_interval={0, 0}, it_value={0, 0}}, NULL) = 0
5336 accept(0, <unfinished ...>
5250 <... epoll_wait resumed> {}, 1, 1000) = 0
5250 epoll_wait(8, {}, 1, 1000) = 0
5250 epoll_wait(8, {}, 1, 1000) = 0
5250 epoll_wait(8, {}, 1, 1000) = 0
5250 epoll_wait(8, <detached ...>