2016-06-08 19 views
6

Ich versuche, eine lokale Version der Google App Engine Developer Console mit Dateispeicher zu arbeiten. Dies funktioniert perfekt auf mehreren Windows-Maschinen. Aber wenn ich ein Mint Linux System anwende funktioniert alles außer dem Dateispeicher.GAE lokalen php - Mint Linux - Dateispeicher funktioniert nicht

Zunächst einmal hatte ich folgende Zeile in der php.ini hinzuzufügen:

google_app_engine.disable_readonly_filesystem = 1

Danach habe ich Bilder hochladen könnte, würde ich sehen, wie sie in der Entwicklerkonsole unter Blobstore erscheinen Zuschauer. Doch ich konnte sie im Browser nicht sehen.

Als ich in die Protokolle gegraben habe, sind folgende Nachrichten aufgetaucht.

ERROR 2016-06-08 20:15:59,459 images_stub.py:438] Could not open image <open file '/tmp/appengine.app app.user/blobs/dev~app-app/n/ncoded_gs_file:cGluZ3ZhbHVlLWJ1Y2tldC1sb2NhbC9zdG9yYWdlL2ltYWdlcy91c2Vycy8xNDY1NDE2OTU3LWltZ2pwZw==', mode 'rb' at 0x7f906e2b2e40> for blob_key 'encoded_gs_file:cGluZ3ZhbHVlLWJ1Y2tldC1sb2NhbC9zdG9yYWdlL2ltYWdlcy91c2Vycy8xNDY1NDE2OTU3LWltZ2pwZw==' 
Traceback (most recent call last): 
    File "/home/user/Programs/google_appengine/google/appengine/api/images/images_stub.py", line 433, in _OpenBlob 
    return Image.open(blob_file) 
    File "/usr/local/lib/python2.7/dist-packages/PIL/Image.py", line 1991, in open 
    raise IOError("cannot identify image file") 
IOError: cannot identify image file 
ApplicationError(4,) 
Traceback (most recent call last): 
    File "/home/user/Programs/google_appengine/lib/cherrypy/cherrypy/wsgiserver/wsgiserver2.py", line 1302, in communicate 
    req.respond() 
    File "/home/user/Programs/google_appengine/lib/cherrypy/cherrypy/wsgiserver/wsgiserver2.py", line 831, in respond 
    self.server.gateway(self).respond() 
    File "/home/user/Programs/google_appengine/lib/cherrypy/cherrypy/wsgiserver/wsgiserver2.py", line 2115, in respond 
    response = self.req.server.wsgi_app(self.env, self.start_response) 
    File "/home/user/Programs/google_appengine/google/appengine/tools/devappserver2/wsgi_server.py", line 272, in __call__ 
    return app(environ, start_response) 
    File "/home/user/Programs/google_appengine/google/appengine/tools/devappserver2/module.py", line 1489, in __call__ 
    return self._handle_request(environ, start_response) 
    File "/home/user/Programs/google_appengine/google/appengine/tools/devappserver2/module.py", line 865, in _handle_request 
    ret = handler.handle(match, environ, wrapped_start_response) 
    File "/home/user/Programs/google_appengine/google/appengine/tools/devappserver2/wsgi_handler.py", line 60, in handle 
    return self._wsgi_app(environ, start_response) 
    File "/home/user/Programs/google_appengine/google/appengine/tools/devappserver2/blob_image.py", line 224, in __call__ 
    return self.serve_image(environ, start_response) 
    File "/home/user/Programs/google_appengine/google/appengine/tools/devappserver2/blob_image.py", line 213, in serve_image 
    image, mime_type = self._transform_image(blobkey, resize, crop) 
    File "/home/user/Programs/google_appengine/google/appengine/tools/devappserver2/blob_image.py", line 78, in _transform_image 
    image = _get_images_stub()._OpenImageData(image_data) 
    File "/home/user/Programs/google_appengine/google/appengine/api/images/images_stub.py", line 371, in _OpenImageData 
    image = self._OpenBlob(image_data.blob_key()) 
    File "/home/user/Programs/google_appengine/google/appengine/api/images/images_stub.py", line 441, in _OpenBlob 
    images_service_pb.ImagesServiceError.BAD_IMAGE_DATA) 
ApplicationError: ApplicationError: 4 
Traceback (most recent call last): 
    File "/home/user/Programs/google_appengine/lib/cherrypy/cherrypy/wsgiserver/wsgiserver2.py", line 1302, in communicate 
    req.respond() 
    File "/home/user/Programs/google_appengine/lib/cherrypy/cherrypy/wsgiserver/wsgiserver2.py", line 831, in respond 
    self.server.gateway(self).respond() 
    File "/home/user/Programs/google_appengine/lib/cherrypy/cherrypy/wsgiserver/wsgiserver2.py", line 2115, in respond 
    response = self.req.server.wsgi_app(self.env, self.start_response) 
    File "/home/user/Programs/google_appengine/google/appengine/tools/devappserver2/wsgi_server.py", line 272, in __call__ 
    return app(environ, start_response) 
    File "/home/user/Programs/google_appengine/google/appengine/tools/devappserver2/module.py", line 1489, in __call__ 
    return self._handle_request(environ, start_response) 
    File "/home/user/Programs/google_appengine/google/appengine/tools/devappserver2/module.py", line 865, in _handle_request 
    ret = handler.handle(match, environ, wrapped_start_response) 
    File "/home/user/Programs/google_appengine/google/appengine/tools/devappserver2/wsgi_handler.py", line 60, in handle 
    return self._wsgi_app(environ, start_response) 
    File "/home/user/Programs/google_appengine/google/appengine/tools/devappserver2/blob_image.py", line 224, in __call__ 
    return self.serve_image(environ, start_response) 
    File "/home/user/Programs/google_appengine/google/appengine/tools/devappserver2/blob_image.py", line 213, in serve_image 
    image, mime_type = self._transform_image(blobkey, resize, crop) 
    File "/home/user/Programs/google_appengine/google/appengine/tools/devappserver2/blob_image.py", line 78, in _transform_image 
    image = _get_images_stub()._OpenImageData(image_data) 
    File "/home/user/Programs/google_appengine/google/appengine/api/images/images_stub.py", line 371, in _OpenImageData 
    image = self._OpenBlob(image_data.blob_key()) 
    File "/home/user/Programs/google_appengine/google/appengine/api/images/images_stub.py", line 441, in _OpenBlob 
    images_service_pb.ImagesServiceError.BAD_IMAGE_DATA) 

Die Nachricht löst schlechte Bilddaten auf. Aber der Devserver hat kein Problem damit.

Gibt es irgendwelche Maßnahmen, die ich unternehmen könnte, um dieses Problem zu lösen?

Antwort

0

Dies ist wahrscheinlich ein SELinux-Problem. Das Zulassen, dass ein Webserver in /home/ schreibt, ist normalerweise nicht in der Standard-SELinux-Richtlinie enthalten.

Überprüfen Sie Ihre Protokolle in/var/log/messages und /var/log/audit/audit.log. Sie können google nach weiteren Informationen zum Ausschalten von SELinux suchen oder es neu konfigurieren, um das Schreiben auf zu ermöglichen.

Verwandte Themen