Google php "Bookshelf" tutorial을 시도하면 모든 것이 로컬에서 올바르게 작동합니다. 하지만 Google Cloud Platform에 배포하고 탐색하려고하면 "404 Not Found/nginx"오류가 발생합니다. 여기 Google Cloud Datastore에 php deploy에서 404를 찾을 수 없음/nginx
는 배포의 로그 파일입니다2016-07-09 08:50:31 default[20160709t034615] + '[' -f /app/nginx.conf ']'
2016-07-09 08:50:31 default[20160709t034615] + '[' -n '' ']'
2016-07-09 08:50:31 default[20160709t034615] + '[' -n '' ']'
2016-07-09 08:50:31 default[20160709t034615] + PHP_FPM_CONF_OVERRIDE=/app/php-fpm.conf
2016-07-09 08:50:31 default[20160709t034615] + PHP_FPM_CONF_OVERRIDE=/app/php-fpm.conf
2016-07-09 08:50:31 default[20160709t034615] + '[' -f /app/php-fpm.conf ']'
2016-07-09 08:50:31 default[20160709t034615] + '[' -f /app/php-fpm.conf ']'
2016-07-09 08:50:31 default[20160709t034615] + '[' -n '' ']'
2016-07-09 08:50:31 default[20160709t034615] + '[' -n '' ']'
2016-07-09 08:50:31 default[20160709t034615] + PHP_INI_OVERRIDE=/app/php.ini
2016-07-09 08:50:31 default[20160709t034615] + PHP_INI_OVERRIDE=/app/php.ini
2016-07-09 08:50:31 default[20160709t034615] + '[' -f /app/php.ini ']'
2016-07-09 08:50:31 default[20160709t034615] + '[' -f /app/php.ini ']'
2016-07-09 08:50:31 default[20160709t034615] + mv /app/php.ini /opt/php/lib/conf.d
2016-07-09 08:50:31 default[20160709t034615] + mv /app/php.ini /opt/php/lib/conf.d
2016-07-09 08:50:31 default[20160709t034615] + '[' -n '' ']'
2016-07-09 08:50:31 default[20160709t034615] + '[' -n '' ']'
2016-07-09 08:50:31 default[20160709t034615] + SUPERVISORD_CONF_ADDITION=/app/additional-supervisord.conf
2016-07-09 08:50:31 default[20160709t034615] + SUPERVISORD_CONF_ADDITION=/app/additional-supervisord.conf
2016-07-09 08:50:31 default[20160709t034615] + '[' -n '' ']'
2016-07-09 08:50:31 default[20160709t034615] + '[' -n '' ']'
2016-07-09 08:50:31 default[20160709t034615] + SUPERVISORD_CONF_OVERRIDE=/app/supervisord.conf
2016-07-09 08:50:31 default[20160709t034615] + SUPERVISORD_CONF_OVERRIDE=/app/supervisord.conf
2016-07-09 08:50:31 default[20160709t034615] + '[' -f /app/additional-supervisord.conf ']'
2016-07-09 08:50:31 default[20160709t034615] + '[' -f /app/additional-supervisord.conf ']'
2016-07-09 08:50:31 default[20160709t034615] + '[' -f /app/supervisord.conf ']'
2016-07-09 08:50:31 default[20160709t034615] + '[' -f /app/supervisord.conf ']'
2016-07-09 08:50:31 default[20160709t034615] + '[' -n 172.17.0.3 ']'
2016-07-09 08:50:31 default[20160709t034615] + '[' -n 172.17.0.3 ']'
2016-07-09 08:50:31 default[20160709t034615] + '[' -n 11211 ']'
2016-07-09 08:50:31 default[20160709t034615] + '[' -n 11211 ']'
2016-07-09 08:50:31 default[20160709t034615] + cat
2016-07-09 08:50:31 default[20160709t034615] + cat
2016-07-09 08:50:31 default[20160709t034615] + '[' -z appweb ']'
2016-07-09 08:50:31 default[20160709t034615] + '[' -z appweb ']'
2016-07-09 08:50:31 default[20160709t034615] + sed -i 's|%%DOC_ROOT%%|appweb|g' /opt/nginx/conf/nginx.conf
2016-07-09 08:50:31 default[20160709t034615] + sed -i 's|%%DOC_ROOT%%|appweb|g' /opt/nginx/conf/nginx.conf
2016-07-09 08:50:31 default[20160709t034615] + sed -i 's|%%DOC_ROOT%%|appweb|g' /opt/php/lib/php.ini
2016-07-09 08:50:31 default[20160709t034615] + sed -i 's|%%DOC_ROOT%%|appweb|g' /opt/php/lib/php.ini
2016-07-09 08:50:31 default[20160709t034615] + exec /usr/bin/supervisord
2016-07-09 08:50:31 default[20160709t034615] + exec /usr/bin/supervisord
2016-07-09 08:50:31 default[20160709t034615] /usr/lib/python2.7/dist-packages/supervisor/options.py:296: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory); you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security.
2016-07-09 08:50:31 default[20160709t034615] /usr/lib/python2.7/dist-packages/supervisor/options.py:296: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory); you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security.
2016-07-09 08:50:31 default[20160709t034615] 'Supervisord is running as root and it is searching '
2016-07-09 08:50:31 default[20160709t034615] 'Supervisord is running as root and it is searching '
2016-07-09 08:50:32 default[20160709t034615] 2016-07-09 08:50:32,005 INFO success: php-fpm entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2016-07-09 08:50:32 default[20160709t034615] 2016-07-09 08:50:32,005 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2016-07-09 08:50:32 default[20160709t034615] 2016-07-09 08:50:32,005 INFO success: cron entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2016-07-09 08:50:32 default[20160709t034615] 2016-07-09 08:50:32,805 INFO spawned: 'php-fpm' with pid 13
2016-07-09 08:50:32 default[20160709t034615] 2016-07-09 08:50:32,806 INFO spawned: 'nginx' with pid 14
2016-07-09 08:50:32 default[20160709t034615] 2016-07-09 08:50:32,807 INFO spawned: 'cron' with pid 15
2016-07-09 08:50:33 default[20160709t034615] 2016-07-09 08:50:33,980 INFO success: php-fpm entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2016-07-09 08:50:33 default[20160709t034615] 2016-07-09 08:50:33,980 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2016-07-09 08:50:33 default[20160709t034615] 2016-07-09 08:50:33,981 INFO success: cron entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2016-07-09 08:51:43 default[20160709t030800] 2016-07-09 08:51:43,563 WARN received SIGTERM indicating exit request
2016-07-09 08:51:43 default[20160709t030800] 2016-07-09 08:51:43,564 INFO waiting for cron, nginx, php-fpm to die
2016-07-09 08:51:43 default[20160709t030800] 2016-07-09 08:51:43,564 INFO stopped: cron (terminated by SIGTERM)
2016-07-09 08:51:43 default[20160709t030800] 2016-07-09 08:51:43,567 INFO stopped: nginx (exit status 0)
2016-07-09 08:51:44 default[20160709t030800] 2016-07-09 08:51:44,472 WARN received SIGTERM indicating exit request
2016-07-09 08:51:44 default[20160709t030800] 2016-07-09 08:51:44,474 INFO waiting for cron, nginx, php-fpm to die
2016-07-09 08:51:44 default[20160709t030800] 2016-07-09 08:51:44,474 INFO stopped: cron (terminated by SIGTERM)
2016-07-09 08:51:44 default[20160709t030800] 2016-07-09 08:51:44,478 INFO stopped: nginx (exit status 0)
2016-07-09 09:23:29 default[20160709t041818] 2016-07-09 09:23:29,498 CRIT Supervisor running as root (no user in config file)
2016-07-09 09:23:29 default[20160709t041818] 2016-07-09 09:23:29,498 CRIT Supervisor running as root (no user in config file)
2016-07-09 09:23:29 default[20160709t041818] 2016-07-09 09:23:29,500 INFO supervisord started with pid 1
2016-07-09 09:23:29 default[20160709t041818] 2016-07-09 09:23:29,500 INFO supervisord started with pid 1
2016-07-09 09:23:29 default[20160709t041818] + '[' -n '' ']'
2016-07-09 09:23:29 default[20160709t041818] + '[' -n '' ']'
2016-07-09 09:23:29 default[20160709t041818] + NGINX_CONF_INCLUDE=/app/nginx-app.conf
2016-07-09 09:23:29 default[20160709t041818] + NGINX_CONF_INCLUDE=/app/nginx-app.conf
2016-07-09 09:23:29 default[20160709t041818] + '[' -n '' ']'
2016-07-09 09:23:29 default[20160709t041818] + '[' -n '' ']'
2016-07-09 09:23:29 default[20160709t041818] + NGINX_CONF_OVERRIDE=/app/nginx.conf
2016-07-09 09:23:29 default[20160709t041818] + NGINX_CONF_OVERRIDE=/app/nginx.conf
2016-07-09 09:23:29 default[20160709t041818] + '[' -f /app/nginx-app.conf ']'
2016-07-09 09:23:29 default[20160709t041818] + '[' -f /app/nginx-app.conf ']'
2016-07-09 09:23:29 default[20160709t041818] + mv /app/nginx-app.conf /etc/nginx/conf.d
2016-07-09 09:23:29 default[20160709t041818] + mv /app/nginx-app.conf /etc/nginx/conf.d
2016-07-09 09:23:29 default[20160709t041818] + '[' -f /app/nginx.conf ']'
2016-07-09 09:23:29 default[20160709t041818] + '[' -f /app/nginx.conf ']'
2016-07-09 09:23:29 default[20160709t041818] + '[' -n '' ']'
2016-07-09 09:23:29 default[20160709t041818] + '[' -n '' ']'
2016-07-09 09:23:29 default[20160709t041818] + PHP_FPM_CONF_OVERRIDE=/app/php-fpm.conf
2016-07-09 09:23:29 default[20160709t041818] + PHP_FPM_CONF_OVERRIDE=/app/php-fpm.conf
2016-07-09 09:23:29 default[20160709t041818] + '[' -f /app/php-fpm.conf ']'
2016-07-09 09:23:29 default[20160709t041818] + '[' -f /app/php-fpm.conf ']'
2016-07-09 09:23:29 default[20160709t041818] + '[' -n '' ']'
2016-07-09 09:23:29 default[20160709t041818] + '[' -n '' ']'
2016-07-09 09:23:29 default[20160709t041818] + PHP_INI_OVERRIDE=/app/php.ini
2016-07-09 09:23:29 default[20160709t041818] + PHP_INI_OVERRIDE=/app/php.ini
2016-07-09 09:23:29 default[20160709t041818] + '[' -f /app/php.ini ']'
2016-07-09 09:23:29 default[20160709t041818] + '[' -f /app/php.ini ']'
2016-07-09 09:23:29 default[20160709t041818] + mv /app/php.ini /opt/php/lib/conf.d
2016-07-09 09:23:29 default[20160709t041818] + mv /app/php.ini /opt/php/lib/conf.d
2016-07-09 09:23:29 default[20160709t041818] + '[' -n '' ']'
2016-07-09 09:23:29 default[20160709t041818] + '[' -n '' ']'
2016-07-09 09:23:29 default[20160709t041818] + SUPERVISORD_CONF_ADDITION=/app/additional-supervisord.conf
2016-07-09 09:23:29 default[20160709t041818] + SUPERVISORD_CONF_ADDITION=/app/additional-supervisord.conf
2016-07-09 09:23:29 default[20160709t041818] + '[' -n '' ']'
2016-07-09 09:23:29 default[20160709t041818] + '[' -n '' ']'
2016-07-09 09:23:29 default[20160709t041818] + SUPERVISORD_CONF_OVERRIDE=/app/supervisord.conf
2016-07-09 09:23:29 default[20160709t041818] + SUPERVISORD_CONF_OVERRIDE=/app/supervisord.conf
2016-07-09 09:23:29 default[20160709t041818] + '[' -f /app/additional-supervisord.conf ']'
2016-07-09 09:23:29 default[20160709t041818] + '[' -f /app/additional-supervisord.conf ']'
2016-07-09 09:23:29 default[20160709t041818] + '[' -f /app/supervisord.conf ']'
2016-07-09 09:23:29 default[20160709t041818] + '[' -f /app/supervisord.conf ']'
2016-07-09 09:23:29 default[20160709t041818] + '[' -n 172.17.0.3 ']'
2016-07-09 09:23:29 default[20160709t041818] + '[' -n 172.17.0.3 ']'
2016-07-09 09:23:29 default[20160709t041818] + '[' -n 11211 ']'
2016-07-09 09:23:29 default[20160709t041818] + '[' -n 11211 ']'
2016-07-09 09:23:29 default[20160709t041818] + cat
2016-07-09 09:23:29 default[20160709t041818] + cat
2016-07-09 09:23:29 default[20160709t041818] + '[' -z appweb ']'
2016-07-09 09:23:29 default[20160709t041818] + '[' -z appweb ']'
2016-07-09 09:23:29 default[20160709t041818] + sed -i 's|%%DOC_ROOT%%|appweb|g' /opt/nginx/conf/nginx.conf
2016-07-09 09:23:29 default[20160709t041818] + sed -i 's|%%DOC_ROOT%%|appweb|g' /opt/nginx/conf/nginx.conf
2016-07-09 09:23:29 default[20160709t041818] + sed -i 's|%%DOC_ROOT%%|appweb|g' /opt/php/lib/php.ini
2016-07-09 09:23:29 default[20160709t041818] + sed -i 's|%%DOC_ROOT%%|appweb|g' /opt/php/lib/php.ini
2016-07-09 09:23:29 default[20160709t041818] + exec /usr/bin/supervisord
2016-07-09 09:23:29 default[20160709t041818] + exec /usr/bin/supervisord
2016-07-09 09:23:29 default[20160709t041818] /usr/lib/python2.7/dist-packages/supervisor/options.py:296: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory); you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security.
2016-07-09 09:23:29 default[20160709t041818] /usr/lib/python2.7/dist-packages/supervisor/options.py:296: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory); you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security.
2016-07-09 09:23:29 default[20160709t041818] 'Supervisord is running as root and it is searching '
2016-07-09 09:23:29 default[20160709t041818] 'Supervisord is running as root and it is searching '
2016-07-09 09:23:30 default[20160709t041818] 2016-07-09 09:23:30,501 INFO spawned: 'php-fpm' with pid 12
2016-07-09 09:23:30 default[20160709t041818] 2016-07-09 09:23:30,503 INFO spawned: 'nginx' with pid 13
2016-07-09 09:23:30 default[20160709t041818] 2016-07-09 09:23:30,507 INFO spawned: 'cron' with pid 14
2016-07-09 09:23:31 default[20160709t041818] 2016-07-09 09:23:31,621 INFO success: php-fpm entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2016-07-09 09:23:31 default[20160709t041818] 2016-07-09 09:23:31,621 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2016-07-09 09:23:31 default[20160709t041818] 2016-07-09 09:23:31,621 INFO success: cron entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2016-07-09 09:23:33 default[20160709t041818] + '[' -n '' ']'
2016-07-09 09:23:33 default[20160709t041818] + NGINX_CONF_INCLUDE=/app/nginx-app.conf
2016-07-09 09:23:33 default[20160709t041818] + '[' -n '' ']'
2016-07-09 09:23:33 default[20160709t041818] + NGINX_CONF_OVERRIDE=/app/nginx.conf
2016-07-09 09:23:33 default[20160709t041818] + '[' -f /app/nginx-app.conf ']'
2016-07-09 09:23:33 default[20160709t041818] + mv /app/nginx-app.conf /etc/nginx/conf.d
2016-07-09 09:23:34 default[20160709t041818] 2016-07-09 09:23:34,258 CRIT Supervisor running as root (no user in config file)
2016-07-09 09:23:34 default[20160709t041818] 2016-07-09 09:23:34,258 CRIT Supervisor running as root (no user in config file)
2016-07-09 09:23:34 default[20160709t041818] 2016-07-09 09:23:34,261 INFO supervisord started with pid 1
2016-07-09 09:23:34 default[20160709t041818] 2016-07-09 09:23:34,261 INFO supervisord started with pid 1
2016-07-09 09:23:34 default[20160709t041818] + '[' -f /app/nginx.conf ']'
2016-07-09 09:23:34 default[20160709t041818] + '[' -f /app/nginx.conf ']'
2016-07-09 09:23:34 default[20160709t041818] + '[' -n '' ']'
2016-07-09 09:23:34 default[20160709t041818] + '[' -n '' ']'
2016-07-09 09:23:34 default[20160709t041818] + PHP_FPM_CONF_OVERRIDE=/app/php-fpm.conf
2016-07-09 09:23:34 default[20160709t041818] + PHP_FPM_CONF_OVERRIDE=/app/php-fpm.conf
2016-07-09 09:23:34 default[20160709t041818] + '[' -f /app/php-fpm.conf ']'
2016-07-09 09:23:34 default[20160709t041818] + '[' -f /app/php-fpm.conf ']'
2016-07-09 09:23:34 default[20160709t041818] + '[' -n '' ']'
2016-07-09 09:23:34 default[20160709t041818] + '[' -n '' ']'
2016-07-09 09:23:34 default[20160709t041818] + PHP_INI_OVERRIDE=/app/php.ini
2016-07-09 09:23:34 default[20160709t041818] + PHP_INI_OVERRIDE=/app/php.ini
2016-07-09 09:23:34 default[20160709t041818] + '[' -f /app/php.ini ']'
2016-07-09 09:23:34 default[20160709t041818] + '[' -f /app/php.ini ']'
2016-07-09 09:23:34 default[20160709t041818] + mv /app/php.ini /opt/php/lib/conf.d
2016-07-09 09:23:34 default[20160709t041818] + mv /app/php.ini /opt/php/lib/conf.d
2016-07-09 09:23:34 default[20160709t041818] + '[' -n '' ']'
2016-07-09 09:23:34 default[20160709t041818] + '[' -n '' ']'
2016-07-09 09:23:34 default[20160709t041818] + SUPERVISORD_CONF_ADDITION=/app/additional-supervisord.conf
2016-07-09 09:23:34 default[20160709t041818] + SUPERVISORD_CONF_ADDITION=/app/additional-supervisord.conf
2016-07-09 09:23:34 default[20160709t041818] + '[' -n '' ']'
2016-07-09 09:23:34 default[20160709t041818] + '[' -n '' ']'
2016-07-09 09:23:34 default[20160709t041818] + SUPERVISORD_CONF_OVERRIDE=/app/supervisord.conf
2016-07-09 09:23:34 default[20160709t041818] + SUPERVISORD_CONF_OVERRIDE=/app/supervisord.conf
2016-07-09 09:23:34 default[20160709t041818] + '[' -f /app/additional-supervisord.conf ']'
2016-07-09 09:23:34 default[20160709t041818] + '[' -f /app/additional-supervisord.conf ']'
2016-07-09 09:23:34 default[20160709t041818] + '[' -f /app/supervisord.conf ']'
2016-07-09 09:23:34 default[20160709t041818] + '[' -f /app/supervisord.conf ']'
2016-07-09 09:23:34 default[20160709t041818] + '[' -n 172.17.0.3 ']'
2016-07-09 09:23:34 default[20160709t041818] + '[' -n 172.17.0.3 ']'
2016-07-09 09:23:34 default[20160709t041818] + '[' -n 11211 ']'
2016-07-09 09:23:34 default[20160709t041818] + '[' -n 11211 ']'
2016-07-09 09:23:34 default[20160709t041818] + cat
2016-07-09 09:23:34 default[20160709t041818] + cat
2016-07-09 09:23:34 default[20160709t041818] + '[' -z appweb ']'
2016-07-09 09:23:34 default[20160709t041818] + '[' -z appweb ']'
2016-07-09 09:23:34 default[20160709t041818] + sed -i 's|%%DOC_ROOT%%|appweb|g' /opt/nginx/conf/nginx.conf
2016-07-09 09:23:34 default[20160709t041818] + sed -i 's|%%DOC_ROOT%%|appweb|g' /opt/nginx/conf/nginx.conf
2016-07-09 09:23:34 default[20160709t041818] + sed -i 's|%%DOC_ROOT%%|appweb|g' /opt/php/lib/php.ini
2016-07-09 09:23:34 default[20160709t041818] + sed -i 's|%%DOC_ROOT%%|appweb|g' /opt/php/lib/php.ini
2016-07-09 09:23:34 default[20160709t041818] + exec /usr/bin/supervisord
2016-07-09 09:23:34 default[20160709t041818] + exec /usr/bin/supervisord
2016-07-09 09:23:34 default[20160709t041818] /usr/lib/python2.7/dist-packages/supervisor/options.py:296: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory); you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security.
2016-07-09 09:23:34 default[20160709t041818] /usr/lib/python2.7/dist-packages/supervisor/options.py:296: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory); you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security.
2016-07-09 09:23:34 default[20160709t041818] 'Supervisord is running as root and it is searching '
2016-07-09 09:23:34 default[20160709t041818] 'Supervisord is running as root and it is searching '
2016-07-09 09:23:35 default[20160709t041818] 2016-07-09 09:23:35,263 INFO spawned: 'php-fpm' with pid 13
2016-07-09 09:23:35 default[20160709t041818] 2016-07-09 09:23:35,272 INFO spawned: 'nginx' with pid 14
2016-07-09 09:23:35 default[20160709t041818] 2016-07-09 09:23:35,279 INFO spawned: 'cron' with pid 15
2016-07-09 09:23:36 default[20160709t041818] 2016-07-09 09:23:36,422 INFO success: php-fpm entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2016-07-09 09:23:36 default[20160709t041818] 2016-07-09 09:23:36,422 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2016-07-09 09:23:36 default[20160709t041818] 2016-07-09 09:23:36,422 INFO success: cron entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2016-07-09 09:24:42 default[20160709t034615] 2016-07-09 09:24:42,403 WARN received SIGTERM indicating exit request
2016-07-09 09:24:42 default[20160709t034615] 2016-07-09 09:24:42,406 INFO waiting for cron, nginx, php-fpm to die
2016-07-09 09:24:42 default[20160709t034615] 2016-07-09 09:24:42,406 INFO stopped: cron (terminated by SIGTERM)
2016-07-09 09:24:42 default[20160709t034615] 2016-07-09 09:24:42,409 INFO stopped: nginx (exit status 0)
2016-07-09 09:24:42 default[20160709t034615] 2016-07-09 09:24:42,095 WARN received SIGTERM indicating exit request
2016-07-09 09:24:42 default[20160709t034615] 2016-07-09 09:24:42,096 INFO waiting for cron, nginx, php-fpm to die
2016-07-09 09:24:42 default[20160709t034615] 2016-07-09 09:24:42,096 INFO stopped: cron (terminated by SIGTERM)
2016-07-09 09:24:42 default[20160709t034615] 2016-07-09 09:24:42,099 INFO stopped: nginx (exit status 0)
코드의 거대한 블록을 용서하십시오,하지만 난 거기에 무엇이 중요한지 모른다. 내 이해는 기본적인 클라우드 앱을 사용하면 자격 증명이 큰 것이 아니라는 것입니다. 404 Not Found/nginx 오류가 발생하는 이유는 무엇입니까?