目前忙于学习,时间有限,不能把版面做好,对于步骤也会比较粗糙。主要是对遇到的问题做个解决方法的记录。
首先在军哥的网站上,按说明下载安装lnmp(若有不懂的环节到他的网站页面上看)
https://lnmp.org/install.html
在控制台输入命令:
wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && ./install.sh lnmp
这个安装过程可能要三四十分钟。
完成后,添加我们的网站(即添加虚拟主机)
操作说明网址:
https://lnmp.org/faq/lnmp-vhost-add-howto.html
接下来,安装laravel框架。
1、先安装composer(把下面命令复制到控制台)
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
mv composer.phar /usr/local/bin/composer
composer config -g repo.packagist composer https://packagist.phpcomposer.com
上面是把composer.phar配置为全局变量,在不配置全局的情况下,将composer.phar放到项目中,使用php composer.phar执行即可。
2、使用composer安装laravel
composer -vvv create-project --prefer-dist laravel/laravel=5.4.* projectName
这个命令是指:创建一个名叫projectName的laravel项目指定其版本为5.4里最高版本,优先下载压缩包。
(-vvv 没有这个,即使切换回国内镜像也一样慢)
3、给laravel的storage目录访问权限
chmod -R 777 /home/wwwroot/projectName/storage
4、删除.user.ini
一键lnmp在添加网站后,会自动在网站根目录下自动生成一个文件.user.ini,这个文件是不能rm删除的。
正确的删除方式:
chattr -i .user.ini
rm .user.ini
因为laravel框架需要跨目录访问,所以需要把nginx的防跨站取消。在lnmp中就是把主目录下.use.ini删除后,同时要把/usr/local/nginx/conf/fastcgi.conf里的open_basedir这一行注释掉。
军哥对这个问题的解决方式,网址:
https://lnmp.org/faq/lnmp-vhost-add-howto.html#user.ini
5、laravel除根路由,其他路由访问为404
laravel框架入口文件位于根目录下的public目录里,需要跨目录访问,所以要修改nignx的url解析。
这个配置文件就是这个lnmp vhost add生成的nginx配置文件,一般默认位于/etc/nginx/conf/vhost/project.conf
打开这个文件,找到
location / {
try_files $uri $uri/ /index.php?$query_string;#添加这个
#try_files $uri $uri/ =404;注释掉原来这行
}
6、nginx的配置
最后是nginx的配置,主要修改vhost目录对应的网站配置文件。
server_name www.xxx.com #就是我们的网址(域名);
root /home/wwwroot/projectName/public;
当访问我们的域名时,nginx就是把访问代理指向我们的root所配置的网站目录,laravel入口文件位于public里的index.php,所以根目录设置为public。
因为我自己的vps目前还没有域名解析,目前还没有备案。所以server_name对应的写成"localhost"。如果是本地的电脑,可以修hosts里的域名指向ip,这样可以用nignx来代理,实现多个项目在本地做开发环境测试。