服务器:阿里云ECS公用镜像 ubuntu14.04 本地:win10php
首先用ssh链接到服务器,我用的是Git Bash,阿里云在初始化服务器时能够选择密钥,配置好后启动服务器,在win10下打开Git Bash,命令ssh root@你的公网ip
html
配置环境前下好language-pack-en-base
这个包,解决不一样语言之间可能发生的冲突,-y
参数的意思是直接安装无需确认。mysql
sudo apt-get update sudo apt-get install -y language-pack-en-base
安装完成后运行locale-gen en_US.UTF-8
nginx
再在服务器上安装Git sudo apt-get install git
laravel
ppa方式安装php7.1:sudo apt-get install software-properties-common
安装成功后运行sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
添加php7的ppa
完成后再运行sudo apt-get update
更新安装包把刚刚的添加包拉取下来,运行apt-cache search php7.1
检验是否安装成功,成功了就能安装php7.1了。
php7.1安装:sudo apt-get -y install php7.1
成功后运行php -v
查看版本,应显示相似信息git
PHP 7.1.0beta2 (cli) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.1.0-dev, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.1.0beta2, Copyright (c) 1999-2016, by Zend Technologies
sudo apt-get -y install php7.1-mysql sudo apt-get install php7.1-fpm apt-get install php7.1-curl php7.1-xml php7.1-mcrypt php7.1-json php7.1-gd php7.1-mbstring
sudo apt-get install mysql-server mysql-client
过程当中输入密码,肯定后安装完成。
mysql -u root -p
再输入密码测试,能成功登录即安装完成。exit
退出mysqlsql
由于上线的应用为laravel 5.5版本开发的,为了以后的兼容性问题,ubuntu14.04直接安装的mysql不是较新版本,所以要升级一下mysql:数据库
cd ~ wget https://dev.mysql.com/get/mysql-apt-config_0.8.1-1_all.deb sudo dpkg -i mysql-apt-config_0.8.1-1_all.deb
解压安装包后会弹出框,选择好mysql 5.7版本后选择ok 而后继续apache
而后,更新包索引:sudo apt-get update
json
而后,安装MySQL-server:sudo apt-get install mysql-server
而后,升级所有的Mysql数据库:sudo mysql_upgrade -u root -p
最后,重启mysql server:sudo service mysql restart
登录一下mysql看看是否已经升级完毕,成功了进入下一步
这里有点迷糊,阿里云的纯净镜像应该是不带Apache2的,可是安装完php7.1后此时检查已经安装了Apache2在服务器上,真是巨坑。。在安装Nginx以前,把Apache卸载掉,否则以后萌新会遇到各类奇怪的错误。
sudo service apache2 stop update-rc.d -f apache2 remove sudo apt-get remove apache2
删除完了以后更新一下包列表sudo apt-get update
而后安装Nginx sudo apt-get install nginx
安装完成后能够输入公网地址访问,成功的话能够看到Nginx的自带欢迎页面
sudo vim /etc/php/7.1/fpm/php.ini
命令行模式下输入/
进入查找模式,搜索fix_pathinfo
将cgi.fix_pathinfo=1
改成cgi.fix_pathinfo=0
命令sudo vim /etc/nginx/sites-available/default
server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /var/www/sample/public; index index.php index.html index.htm; # Make site accessible from http://localhost/ server_name 你的公网IP(有域名直接填域名); location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ /index.php?$query_string; # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules } location ~ \.php$ { try_files $uri /index.php =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.1-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} }
root 后填的是laravel项目的public路径,根据项目名称肯定这里的信息
cd ~ curl -sS https://getcomposer.org/installer | php
再使用命令全局可用composer sudo mv composer.phar /usr/local/bin/composer
由于国内墙的缘由,换一下镜像
composer config -g repo.packagist composer https://packagist.phpcomposer.com
git clone
整个项目,而后/var/www目录下就有你的项目了git clone https://balabala/sample.git
cd sample
进入/var/www/sample目录. cp .env.example .env
vim .env
CREATE DATABASE sample CHARACTER SET =utf8
APP_NAME=sample APP_ENV=local APP_KEY=base64:c656DOWHg7B9THMemhSV67+aRHOeOBypwNZrybaoGzs= APP_DEBUG=true APP_LOG_LEVEL=debug APP_URL=http://localhost DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=sample DB_USERNAME=root DB_PASSWORD=数据库密码 BROADCAST_DRIVER=log CACHE_DRIVER=file SESSION_DRIVER=file SESSION_LIFETIME=120 QUEUE_DRIVER=sync REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 MAIL_DRIVER=log MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null PUSHER_APP_ID= PUSHER_APP_KEY= PUSHER_APP_SECRET= PUSHER_APP_CLUSTER=mt1
composer install
php artisan key:generate
生成密钥php artisan migrate
迁移数据库php artisan up
上线最后给予目录权限
sudo chmod -R 775 storage/ sudo chown -R www-data:www-data /var/www/laravel-blog
若是运气够好,环境一致的话,按照步骤已经部署完成,重启Nginx
sudo service nginx restart sudo service php7.1-fpm restart
此时在另外一设备上从浏览器输入服务器的公网ip已经能够访问您的Laravel项目了!
部署完成!!
新手搞这个部署处处找资源,而后磕磕绊绊终于部署成功,很开心。写这个教程但愿能够帮助到更多的但愿接触laravel开发的同窗们~
一步步教你部署laravel到服务器
laravel部署上线的最佳实践
laravel部署LNMP脚本 配置过程当中这些文章给我很大帮助!脚本部署试了一次可是失败了,之后再作尝试~