我一直在浏览有关如何在 Openshift 中使用和配置 Laravel 的教程和墨盒,但无济于事。即使是我能找到的最好的东西也无济于事。到目前为止,我能够做的是设置 Laravel,这样我就可以看到中间显示“Laravel”的欢迎页面。
我所做的是使用这两个墨盒:
- PHP 5.6.16 - https://github.com/boekkooi/openshift-cartridge-php
- Nginx - https://github.com/boekkooi/openshift-cartridge-nginx
使用https://github.com/lucho2d7/openshift-quickstart-laravel5.2
基本上将所有这些放在一个 rhc 命令中:
rhc app create appname --env OPENSHIFT_PHP_VERSION=5.6.16 http://cartreflect-claytondev.rhcloud.com/github/boekkooi/openshift-cartridge-php mysql-5.5 --env OPENSHIFT_NGINX_VERSION=1.9.12 http://cartreflect-claytondev.rhcloud.com/github/boekkooi/openshift-cartridge-nginx --from-code=https://github.com/lucho2d7/openshift-quickstart-laravel5.2
这基本上在 Openshift 上使用 Nginx 1.9.12、PHP 5.6.16、MySQL 5.5 和 Laravel 5.2.12 创建了一个应用程序:
接下来我注意到 Laravel 5.2.12 并composer update
在目录中运行并将其获取到 Laravel 5.2.30,再次访问该应用程序时我仍然看到 Laravel。
现在问题来了。我使用了自动登录/注册制造商命令
php artisan make:auth
命令运行并且所有内容都在它的适当文件夹中,当您访问应用程序时,您会看到修改后的欢迎页面,右上角有登录和注册按钮:
但是,当您单击登录、注册和主页时,您会在页面上收到 404 not found 错误:
其他按钮的路径是相同的,例如按 Login 将我带到 /login,Register 将我带到 /register,Home 将我带到 /home,同时给我错误页面。
我一直无法想出解决这个问题的办法。到目前为止,我已经尝试将我的 URL 添加到 config 文件夹中的 app.php 文件中,除此之外没有其他任何内容。我真的无权访问 httpd.conf 文件或在服务器中使用 sudo。虽然我尝试查看错误日志,但也无法通过它找到解决方案。
错误日志基本上只是针对不同的错误路径重复这一行:
2016/04/26 00:18:27 [error] 337780#0: *121 open() "/var/lib/openshift/username/app-root/runtime/repo//public/login" failed (2: No such file or directory), client: ip, server: , request: "GET /login HTTP/1.1"
我实际上可以访问 /var/lib/openshift/username/nginx/conf 中的 nginx_http.conf ,它目前有这个:
# Enable Gzip
gzip on;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_min_length 1100;
gzip_buffers 4 8k;
gzip_proxied any;
gzip_types
# text/html is always compressed by HttpGzipModule
text/css
text/javascript
text/xml
text/plain
text/x-component
application/javascript
application/json
application/xml
application/rss+xml
font/truetype
font/opentype
application/vnd.ms-fontobject
image/svg+xml;
gzip_static on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\.";
gzip_vary on;
server {
listen ip:8080;
root /var/lib/openshift/username/app-root/runtime/repo//public;
location / {
index index.html index.htm index.php;
}
# pass the PHP scripts to PHP-FPM
location ~ \.php$ {
fastcgi_pass unix:/var/lib/openshift/username/php//socket/php-username.socket;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
include /var/lib/openshift/username/nginx//usr/nginx-1.9.12/conf/fastcgi_params;
}
}
任何帮助将不胜感激!