LNMP环境介绍
LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率。
安装nginx服务器
注:
我的ecs上选择的是Ubuntu16,64位的操作系统
- 更新包列表
sudo apt-get update
- 安装nginx
sudo apt-get install nginx
-
启动nginx服务
sudo service nginx start
在浏览器输入公网ip,可以看到nginx的欢迎界面
安装mysql
- 安装mysql服务和客户端
sudo apt-get install mysql-server mysql-client -
安装好后运行
mysql -u root -p
出现如下界面,成功
安装PHP
- 安装php
sudo apt install php7.0 php7.0-fpm php7.0-mcrypt
-
配置php
vim /etc/php/7.0/fpm/php.ini
通过输入/cgi.fix_pathinfo=1来快速查找cgi.fix_pathinfo选项并将它前面的“;”去掉,值改为0
- 启用php7.0-mcrypt
sudo phpenmod mcrypt - 重启php7.0-fpm
sudo service php7.0-fpm restart
安装composer
方法一
- 依次执行以下三条命令
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" #下载安装脚本 - composer-setup.php - 到当前目录
php composer-setup.php #执行安装过程
php -r "unlink('composer-setup.php');" #删除安装脚本
- 全局安装
全局安装是将 Composer 安装到系统环境变量 PATH 所包含的路径下面,然后就能够在命令行窗口中直接执行 composer 命令了。
方法二
- 去以下网址下载最新版composer.phar ,并上传到服务器
- 添加执行权限
chmod a+x composer.phar - 全局安装
sudo mv composer.phar /usr/local/bin/composer
- 查看是否安装与设置成功
composer -version
注:
这里报了一个警告:Do not run Composer as root/super user! See https://getcomposer.org/root for details
意思是叫你不要用root用户执行composer相关命令。这是出于对安全的考虑。
解决:
切换到非root用户执行composer命令。 - 配置 composer 使用国内源,提升速度
composer config -g repo.packagist composer https://packagist.phpcomposer.com
在阿里云ECS上部署Laravel项目
-
配置nginx服务器
首先,对需要修改的nginx配置文件进行备份
cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
然后修改nginx的配置文件
sudo vim /etc/nginx/sites-available/default
要修改的是server的部分
server {
listen 80 default_server;
listen [::]:80 default_server;root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; }}
修改以下部分:
root部分的修改
root /var/www/blog/public; # 这里的blog是你自己的laravel项目名称
将nginx服务器的根目录指向blog的public文件夹下,Laravel项目的代码将会放在/var/www/blog目录下index部分的修改
index index.php index.html index.htm index.nginx-debian.html;
注意:将index.php排在最前面server_name部分的修改
server_name server_domain_or_IP;
其中,server_domain_or_IP是公网的iplocation部分的修改
location / {
try_files $uri $uri/ /index.php?$query_string;
}
- 最后
我们还需要配置一下Nginx,让其执行PHP文件。同样是在这个文件里,在location下方添加下面的配置:
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
- 配置完之后重启Nginx,使上面的配置项生效。
sudo service nginx restart
- Laravel项目迁移和创建
laravel项目创建
- 在/var/www目录下,创建laravel 5.1项目, 若不指定版本,默认安装最新版
composer create-project laravel/laravel --prefer-dist blog 5.1
其中 blog是laravel项目的名称
命令执行完后,就会在/var/www下执行生成一个blog文件夹。然后可以进行相关开发。
laravel项目迁移
- 将本地的laravel项目文件一起通过filezill等工具上传到/var/www目录下。这里的项目名称应该和nginx配置文件的root部分的修改一致。
- 配置云服务器上的mysql数据和本地laravel项目数据一致。重建相关表和数据填写。
如果执行数据库迁移的时候报以下错误: root@'localhost' 。。。
多半是root权限的问题
可以试试以下方法:
方法一
mysql中执行如下命令:
grant all on . to root@'localhost' identified by password '' with grant option;
方法二
- laravel项目的权限更改
sudo chmod -R 777 /var/www/laravel项目名称/storage #修改storage文件夹权限
sudo chown -R :项目所有者 /var/www/laravel #修改项目所有者权限,根据需要修改
- 完了 就可以在浏览器中输入网址,既可以看到相应页面。
参考:
开启 Laravel 之旅以及环境配置
在阿里云ECS上搭建LEMP环境
nginx+MySQL+Laravel+PHP7+Redis+Node.js
从零开始部署一个 Laravel 站点
Packagist / Composer中国全量镜像