服務器:阿里雲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腳本 配置過程當中這些文章給我很大幫助!腳本部署試了一次可是失敗了,之後再作嘗試~