说明:怎么快速的搭建一个导航网站?WebStack-Laravel 是一个开源的网址导航网站项目,具备完整的前后台。换句话说,我们可以自定义添加网站和图标,有时候浏览器收藏的网站很多不好管理,这时我们可以使用WebStack-Laravel对网站分别标注、归类,制作自己的网址导航。

项目地址:https://github.com/hui-ho/WebStack-Laravel

截图

部署安装

博主使用的是军哥LNMP_v1.6一键安装包。本教程的安装环境如下:

1
2
3
4
PHP version 7.3.5 (建议php7.0以上)
Composer version 1.8.5 (建议升级最新版本)
nginx/1.16.0
MySQL version 5.6.44

如果没有安装composer,请运行下面的命令进行安装

1
2
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

参考 LNMP使用教程 使用lnmp 相关命令,添加网站、创建网站根目录、建立数据库。

1
2
3
4
5
#将域名修改成自己的再运行
cd /www/wwwroot/xx.com
#克隆代码
git clone https://github.com/hui-ho/WebStack-Laravel.git
cd /www/wwwroot/xx.com/WebStack-Laravel

安装依赖

1
composer install

修改配置

1
2
#拷贝文件并重命名为.env
cp .env.example .env

使用vi命令或nano命令修改WebStack-Laravel目录下的.env文件,对APP_URLDB_DATABASEDB_USERNAMEDB_PASSWORD进行修改。

1
2
3
4
5
6
APP_URL=http://localhost
...
DB_DATABASE=database
DB_USERNAME=username
DB_PASSWORD=password
...

生成KEY

1
php artisan key:generate 

迁移数据

1
php artisan migrate:refresh --seed

开启服务

1
php artisan serve

注意:默认 Laravel 开启服务后,默认会监听在 localhost8000 端口上。如遇到端口冲突问题,可以可以使用 --host参数与 —port参数来更换监听的接口地址或端口号。

1
php artisan serve --host=0.0.0.0 --port=9889

Nginx 反代

修改vhost主机对应的nginx配置文件xx.com.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
server {
listen 80;
server_name xx.com;
location / {
proxy_pass http://127.0.0.1:9889;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Remote-Port $remote_port;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
}
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
}

重启Nginx

1
/etc/init.d/nginx restart

正常情况下,现在已经可以通过xx.com域名直接访问。

常见问题

问题1:使用composer install命令安装依赖过程中遇到The Process class relies on proc_open, which is not available on your PHP installation. 这类的报错。是因为部分所需的php函数被禁用导致的。

解决方法:找到php.ini文件,并搜索disable_functions找到类似如下内容:

1
disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server

找到proc_openproc_get_status并删除即可。

问题2:移数据出错,比如出现SQLSTATE[HY000] [2002] .......Connection timed out报错,基本是因为.env文件,数据库配置有误导致,请自行核查配置准确性。

问题3:如何强制Laravel使用HTTPS?
解决方法:找到并修改AppServiceProvider文件,在boot中添加一行:

1
\URL::forceScheme('https');

现在你的所有生成的路由链接已经默认是 HTTPS 了。当然你也可以用 Nginx 来做非 HTTPS 跳转,只是我觉得这个方法更加简单。需要注意的是:forceScheme 这个函数在 5.4 的时候更换过名称 , L5.3 及以下版本请使用 \URL::forceSchema('https');