最近在阿里云上配置服务器,踩了不少坑,记录一下,希望能帮助到有同样需求的朋友们。
整个配置过程基本上是按照下面这篇帖子进行的,写的非常清楚,按照步骤一步一步来就行了。Installing Nginx, MySQL, PHP (LEMP) Stack on Ubuntu 18.04 | DevAnswers.codevanswers.co
在此之后还可以继续配置 phpMyAdmin ,以及用 Let's Encrypt 配置 SSL Cert 也就是 Https,是免费的哦~ 对应链接如下:Installing phpMyAdmin for Nginx on Ubuntu 18.04 / 19.10 | DevAnswers.codevanswers.coConfiguring Let’s Encrypt SSL Cert for Nginx on Ubuntu 18.04 / 19.10 | DevAnswers.codevanswers.co
一切基本都很顺利。下面是基于阿里云的一些配置和我遇到的一些问题:
阿里云安全组配置
阿里云的ECS需要对安全组进行端口配置才能允许相应的端口访问,具体操作如下:进入ECS实例,在“更多”里选择“网络和安全组” -> “安全组配置” -> “配置规则”
“添加安全组规则” 添加三条规则,端口分别添加 “80”(Http端口),“443”(Https端口),“20/21”(FTP传输端口),授权对象均为“0.0.0.0/0”
阿里云云解析
你的域名想要与ECS上的IP地址对应,需要在云解析里对域名进行解析。进入阿里云云解析DNS
“解析设置” -> “添加记录”
“主机记录”填你的域名,或者子域名,“记录类型”选A,“记录值”填ECS的IP地址。需要几个域名或子域名则添加几条记录
Lumen/Laravel 的配置
我的项目用的是Lumen写的API,所以在配置Nginx的时候和通用PHP的配置有一些不同。
文件目录是/etc/nginx/sites-available/mydomain.comroot 的文件目录要在项目后加上 /public,因为 Lumen/Laravel 的 index.php 是在 /public 里的。 如:root /var/www/mydomain.com/public
第一个 location
location / {
try_files $uri $uri/ /index.php?$query_string;
}第二个 location
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
使用 PHP5.6 版本的旧项目
我有的旧项目使用的是 PHP5.6 版本,按之前的流程,服务器上装的是 PHP7.2 版。因此需要为旧项目再安装 PHP5.6 以保证旧项目可以继续运行。
sudo apt-get update
sudo add-apt-repository ppa:ondrej/php
sudo apt-get install php5.6-fpm
sudo apt-get install pdo-mysql php5.6-mysql
然后再把旧项目的 Nginx 配置文件中的 php7.2-fpm.sock 改成 php5.6-fpm.sock 就可以了
最后记得更改 Nginx 配置文件之后要重启 Nginx 服务器 sudo service nginx restart