Ubuntu 116 下的 Laravel LNMP 线上环境自动部署脚本
简介
适用于 Ubuntu 16.04 的 LNMP 安装脚本,并设置了国内镜像加速。
请确保所有命令都以 root 账户执行,如果登录账户不是 root,则需要执行 sudo -H -s
切换为 root 账户后再下载安装。
软件列表
- Git
- PHP 7.3
- Nginx
- MySQL
- Sqlite3
- Composer
- Nodejs 8
- Yarn
- Redis
- Beanstalkd
- Memcached
可选软件列表
以下软件需手动执行安装脚本:
- Elasticsearch:
./16.04/install_elasticsearch.sh
,默认为 6.x,如果要安装 7.x 则执行./16.04/install_elasticsearch.sh 7
安装步骤
wget -qO- https://raw.githubusercontent.com/summerblue/laravel-ubuntu-init/master/download.sh - | bash
此脚本会将安装脚本下载到当前用户的 Home 目录下的 laravel-ubuntu-init
目录并自动执行安装脚本,在安装结束之后会在屏幕上输出 Mysql root 账号的密码,请妥善保存。
如果当前不是 root 账户则不会自动安装,需要切换到 root 账户后执行 ./16.04/install.sh
。
日常使用
1. 新增 Nginx 站点
./16.04/nginx_add_site.sh
会提示输入站点名称(只能是英文、数字、-
和 _
)、域名(多个域名用空格隔开),确认无误后会创建对应的 Nginx 配置并重启 Nginx。
2. 新增 Mysql 用户、数据库
./16.04/mysql_add_user.sh
会提示输入 root 密码,如果错误将无法继续。输入需要创建的 Mysql 用户名,以及确认是否需要创建对应用户名的数据库。
创建完毕之后会将新用户的密码输出到屏幕上,请妥善保存。
3. 以 www-data 身份执行命令
本项目提供了一个 sudowww
的 alias
,当需要以 www-data
用户身份执行命令时(如 git clone 项目
、php artisan config:cache
等),可以直接在命令前加上 sudowww
,同时在原命令两端加上单引号,如:
sudowww 'php artisan config:cache'
本帖已被设为精华帖!
本帖由系统于 8年前 自动加精
高认可度评论:
点赞一直失败,后来才发现自己没登陆,没提示登录了么?
在16下面进行安装,安装完成后nginx起不起来,发现需要执行
apt-get purge apache2
后nginx才能起起来。帮你把 Mysql 版本号标注出来了。
用过 Mysql 的 json 字段便离不开了。 :smile:
@zhuzhichao :+1:
@zhuzhichao :bug: 小能手
Ubuntu 16.10.2版本的有没有
点赞一直失败,后来才发现自己没登陆,没提示登录了么?
@宋小北 多谢反馈,已 fix
好像可以替代 forge 了
安装完默认的 web 服务器是 apache?
:punch: 支持!
@dinghua 这脚本没安装 apache,估计是你的 ubuntu 镜像里带着的,remove 掉即可。
我都重新配置服务器,结果
Redis
Beanstalkd
这两个没有啊,咋回事
debian的话,貌似修改一下也能用?
我想在阿里云上安装,但是不想安装mysql因为我在使用阿里云的RDS,我怎么做呢?
这个不错,省了好多事,不过是否能自定义选择一些组件,如我楼上的那样需求一样
@隔壁老王 只是一些安装脚本,可以考虑 fork 一份根据自己的需要修改;
@zhuzhichao 再试试PostgreSQL的JSONB你会觉得MYSQL很渣。
@cevin :+1: PostgreSQL 的 JSONB 确实先进,不过偶尔少量数据用Mysql 的 JSON 处理已经够用了,如果这类数据多了会使用 mongodb 里做存储的。
·service nginx restart· 提示 Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details. 不理解什么意思,也搜不到相关解释,重启服务器就好了。本地也是.
擦能靠谱点吗 文件件都不见了
@ydxred 有 bug?愿听赐教
@Summer 抱歉!我是操作有误...
为什么我配置完或者稍微改了一下配置nginx就启动不来了啊
root@ydxred:/etc/nginx/sites-enabled# service nginx restart
stop: Unknown instance:
nginx stop/pre-start, process 3318
root@ydxred:/etc/nginx/sites-enabled#
这是什么原因啊
@Class 我的也是这个情况
@Summer
ubuntu@VM-242-95-ubuntu:~$ systemctl status nginx
nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Thu 2017-03-09 07:55:04 CST; 1min 37s ago
Main PID: 7222 (code=exited, status=0/SUCCESS)
lines 1-12/12 (END)
想哭
服务器ubuntu 选择32位和64位会有影响吗?
https://github.com/laravel/settler/blob/ma...
@颜⑧ 不能直接用官方的 settler 脚本,里面有很多安全问题。
Star、
@xhh110 我的也是这样 所有的软件都没有安装成功,好像是依赖的问题,我看到安装过程中 好多报错, 依赖不匹配。我是刚装的16.04
@huazi 我也是依赖问题。。。所以直接换回centos。。。
@xhh110
@huazi 从你的报错信息看是站点没配置对,目测是把
server
黏贴为erver
真是太好用了,一键安装 省时省力啊!但是大家线上的服务有用Centos 的吗!有什么脚本值得参考吗。
@Summer 我跟着这个教程上线了一个小博客,输入域名后提示EOF sumer哥能给指个方向吗?我以为是权限问题然后看了下权限是775,然后我改成了777,但访问是还是EOF.
请教一下,我运行完脚本后,做到设置Nginx的这一步,但是在etc下没有找到Nginx?@Summer
日后升级的话如何升级,apt?
@Summer Supervisor 官方推荐的进程监控软件,有考虑弄到脚本里面吗?
发现个问题,在16下运行脚本的时候由于安装php的时候会安装 apache 的依赖,导致在重启 nginx 的时候因为 80 被占用导致
nginx 重启失败,所以需要移出 apache 相关的软件,可能上面回复 apache 的原因就是在此。
在16下面进行安装,安装完成后nginx起不起来,发现需要执行
apt-get purge apache2
后nginx才能起起来。隔壁京东云新买服务器,除了 composer 似乎出了问题,手动复制脚本代码执行外,其余成功安装。
/etc/nginx/sites-enabled# service nginx restart
stop: Unknown instance:
nginx stop/pre-start, process 21910 求教题主
@Summer 有几个问题请教一下。
nginx
不选择使用最新的稳定版,而选择使用开发版?我就想问下,这个环境有mssql驱动吗?项目用的是sql server数据库
@Summer 这帖子还可以用吗?是不是 Laravel 5.5 需要PHP 7.1 以上了?
着急
第一次用这个脚本部署环境,部署完了把项目放进去提示:
could not find driver
我用deploy-16的脚本安装的环境,php的扩展一个都没有加载,配置文件也很难找,试试14版本的再说
早点回去试试
早点回去试试?
请问17可以正常使用吗?
Ubuntu 16.04 使用此脚本安装一切正常,唯独 composer 没有安装
希望可以出个视频
@Class 我也是这个问题,请问是怎么解决的
@Summer Ubuntu 16.04安装完成后发现php没mbstring扩展,这个怎么添加扩展
在阿里云上使用ubuntu 16.04 安装记录:
解决方式: 先apt-get update 然后, apt-get install -y software-properties-common, 然后 apt-get -y upgrade
解决方式:停止apache服务,删除它
阿里云 1核 1G入门云服务器安装成功,最后出现:
--
It's Done.
Mysql Root Password: xxxxxx
Mysql Normal User: estuser
Mysql Normal User Password: xxxxx
--
Ubuntu 14.04 使用此脚本安装正常
ubuntu 16 版本 安装后却是存在apache被安装,而且为默认服务器。
问下 那个脚本 centos系统的话 怎么改能使用吗
版本选择请参考:https://blog.csdn.net/ifeng6/article/detai...
使用脚本安装完成后,需要自己建立 /data/www/{你的网站目录} 和/data/log/nginx/ 目录,否则nginx会出现错误无法重启。
另外,安装脚本后,nginx如果ubuntu reboot不会重新启动,需要通过 /etc/init.d/nginx start或者 service nginx start进行启动,所以,如果想重启后直接启动,可以sudo chmod a+x /etc/init.d/nginx,然后 vi /etc/rc.local,在 exit0 前面增加一行 /etc/init.d/nginx start 即可。
@wuqi80 大佬,这个安装完后怎么用啊,直接把本地文件传到网站根目录吗
@moonsuvn 你可以参考这篇文章的第八第九,也可以去按照laravel 文档5.5的安装来进行
博客:阿里云 ECS 服务器 Ubuntu14.04 部署 Laravel 5.5 项目上线
安装《Laravel 5.5 中文文档》
@wuqi80 知道了,谢谢大佬
用腾讯云ubuntu14使用这份攻略安装无报错,
但最后打开的网站却还是显示apache2(尽管端口80显示是nginx)。
办法是清除apache2,上面说的apt-get purge apache2不够,
我开始使用的命令为:
sudo apt-get --purge remove apache-common
sudo apt-get --purge remove apache
sudo find /etc -name "apache" |xargs rm -rf
sudo rm -rf /var/www
sudo rm -rf /etc/apache2
上述删除后发现还是不行,后面发现最关键的要到/etc/php/7.1中sudo rm -rf apache2(这个apache应该是安装php带上的),这时候打开网站就显示为nginx了
后面发现楼上提到这篇文章很好:
博客:阿里云 ECS 服务器 Ubuntu14.04 部署 Laravel 5.5 项目上线
亲测可行,本文中的一键安装后面的步骤也可以参考上文
一直在想怎样才能把 Homestead 的环境配置部署到服务器上,找了好久好久,终于找到了 :+1: :+1: :+1:
@haoxing a啊 我也是腾讯云 ubuntu16,执行
./deploy-16.sh
的时候,报错root@VM-0-15-ubuntu:/home/ubuntu# ./deploy-16.sh
deploy-16.sh: line 7: syntax error near unexpected token newline
deploy-16.sh: line 7: <!DOCTYPE html>
root@VM-0-15-ubuntu:/home/ubuntu#
百度两天了没解决。。
你好,我按照上面的流程执行了,没有问题。但是我执行phpize命令提示,phpize尚未安装 这个问题怎么解决? find / -name phpize 没有找到。phpize不是自带的吗
出个docker 部署就更好了
@xiaoguo0426 试试安装
php7.x-dev
@MacDino 阿里云14.04 有这个问题, 安装完 浏览器访问 直接无法访问, 执行service nginx restart 失败 执行你的命令(apt-get purge apache2)后 nginx 才起来,但是 还是无法访问, 哭晕,这教程不适合萌新看啊,
我不明白为什么会这样, 不知道是否有人与我遇到同样的问题, 如果你尝试帮我解决这个困惑, 我会非常感谢 :wink:
--
It's Done.
Mysql Root Password: xwh0412
Mysql Normal User: estuser
Mysql Normal User Password: xwh0412
--#!/usr/bin/env bash
Error: MYSQL_ROOT_PASSWORD not define!!
求助
执行php artisan migrate,报错:
求大神解答~,~
@lcyitar 建立/data/log/nginx/ 目录 log 添加777权限 :flushed:试试
请问mysql没有安装该怎么处理?
service mysql
是未识别的命令运行脚本中的
apt-get install -y mysql-server
报错:mysql-server : Depends: mysql-server-5.5 but it is not going to be installed
求解一下,下载下来 vi 编辑的时候文件里边是html代码?这个正确吗?
执行
vi deploy-16.sh
,求大佬帮助下发现脚本里面的删除 apache 这个并没有删掉。然后nginx 的自启动没有,这样服务器宕机后重启的话,还需要单独打开nginx很不方便,建议改改。
前面都没出错,为什么重启的时候没总是失败呢,域名也访问不了,求教
出一个 CentOs 的呗 :grin:
安装完成,但是 composer 无法使用?
UCloud ubuntu 16 同样的 composer 没有安装上,其他正常
另使用 root 运行很不安全吧
===> 开始下载...
===> 下载完毕
安装脚本位于: /root/laravel-ubuntu-init
===> 正在初始化系统 [DONE]
===> 正在初始化软件源 [DONE]
===> 正在安装基础软件 [DONE]
===> 正在安装 PHP [DONE]
===> 正在安装 Mysql / Nginx / Redis / Memcached / Beanstalkd / Sqlite3 [DONE]
===> 正在安装 Nodejs / Yarn [DONE]
===> 正在安装 Composer [DONE]
安装完毕
Mysql root 密码:wb5XQCubN6rRDvZg5SzlIyrbeqXPmXR4
请手动执行 source ~/.bash_aliases 使 alias 指令生效。
已实践成功 :fireworks: :fireworks:
vutlr 16.04 部分安装失败。。。
这是一个坑吧,哈哈哈。被玩死,知道是这样就自己装一遍了。
链接怎么失效啦
@Kevinvinvin 没有安装还是没加入环境变量
脚本链接改了 https://github.com/summerblue/laravel-ubun...
请问一下,我申请了腾讯云的学生服务器,只有一个公网ip,没有备案的域名,我可以成功地用大神的脚本部署,就是不知道怎么访问,直接访问ip的话是一个 Nginx 服务器的版本信息。
https://raw.githubusercontent.com/summerbl... 14版本的脚本报404了?
@Summer 404了
我看了下download.sh,只支持16.04,这个文章需要修改下了吧。
貌似用不了了,这个
文章发布太久,上面一些连接没法使用,本人测试使用了16.04的版本,完全没有问题,下面是GitHub地址:https://github.com/summerblue/laravel-ubun...
請管理員更新 Ubuntu 16 版本教程的連接。謝謝!@Summer
说明处点击"Ubuntu 16 请使用这个脚本",出现404。需要更新跳转地址了!
百度云16.04 amd 64bit,总是到这一步就停掉了。
使用apt-update 过了还是一样。各位大佬求助啊。
我使用的是github上面的教程
现在应该要用docker来部署项目啦,紧跟趋势
第一步就下载失败
一直显示正在初始化系统 ,是不是有什么问题呀,要多久呢
@Benny 我怎么装不上,阿里云
Ubuntu 16 请使用这个脚本 404了!!!!
有需要centos的朋友 看下这个 https://jingyan.baidu.com/article/215817f7...
Ubuntu 16 请使用这个脚本
这个链接打不开了。。。。。
@Summer Ubuntu 16 的脚本 页面404
@Summer 东西没了~~~ :grin:
脚本无法找到了
我使用的是ubuntu16.04,在安装的到正在初始化软件源的时候退出了安装
root@mingzheng-virtual-machine:/home/mingzheng# wget -qO- https://raw.githubusercontent.com/summerbl... - | bash
===> 开始下载...
===> 下载完毕
安装脚本位于: /root/laravel-ubuntu-init
===> 正在初始化系统... [DONE]
===> 正在初始化软件源...root@mingzheng-virtual-machine:/home/mingzheng#
我想请问各位大神一下这个问题如何解决,谢谢。
ubuntu14.04 下载 deploy.sh 脚本
wget https://raw.githubusercontent.com/summerbl...
安装直接就退出了,没有安装成功。

是不是有最小的内存需求呀?
谢谢!
你的好了吗?node清华镜像没了, 看下日志 我现在也安装不成功