下面我将为您提供一个详细、分步的指南,以最流行的LEMP 栈 为例进行说明。
> LEMP =Linux +ENginx(读作engine-x)+MySQL +PHP
1、购买服务器:从AWS Lightsail、DigitalOcean、Vultr、Linode等提供商处选择一款云服务器(VPS),通常选择最新的Ubuntu或Debian系统,因为它们有良好的社区支持和软件兼容性。
2、远程连接:购买后,你会获得一个IP地址、用户名(通常是root
)和密码或SSH密钥,使用SSH工具连接它。
Linux/macOS直接使用终端(Terminal)。
ssh root@你的服务器IP地址
Windows使用PuTTY或Windows Terminal/PowerShell。
连接成功后,第一件事是更新系统的软件包列表并升级现有软件。
sudo apt update && sudo apt upgrade -y
安装一些常用的工具包:
sudo apt install -y curl wget vim git unzip
Nginx是一个高性能的HTTP和反向代理服务器。
1、安装Nginx:
sudo apt install -y nginx
2、启动并设置开机自启:
sudo systemctl start nginx sudo systemctl enable nginx
3、验证安装:
在本地电脑的浏览器中访问http://你的服务器IP地址
,你应该能看到Nginx的默认欢迎页面,如果看不到,请检查服务器的防火墙是否放行了80端口(HTTP)。
MySQL是一个广泛使用的关系型数据库管理系统。
1、安装MySQL:
sudo apt install -y mysql-server mysql-client
2、运行安全安装脚本:这是一个非常重要的步骤,用于设置root密码、移除匿名用户、禁用远程root登录等。
sudo mysql_secure_installation
* 系统会提示你配置VALIDATE PASSWORD
插件(是否启用密码强度验证)。
* 然后为MySQL的root用户设置一个强密码。
* 后续的所有问题都输入Y
并回车即可。
3、登录MySQL测试:
sudo mysql -u root -p
输入你刚设置的密码,能进入MySQL命令行即表示安装成功,输入exit;
退出。
PHP是核心,我们需要安装PHP解释器以及与Nginx和MySQL交互所需的扩展。
1、添加第三方PHP仓库(可选,但推荐以获得更新版本的PHP):
对于Ubuntu,可以使用ondrej/php
PPA
sudo apt install -y software-properties-common sudo add-apt-repository -y ppa:ondrej/php sudo apt update
2、安装PHP和常用扩展:
以安装PHP 8.2为例(你可以将8.2
替换为你需要的版本,如8.1
,8.3
):
sudo apt install -y php8.2-fpm php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml php8.2-zip php8.2-soap
php8.2-fpm
: PHP FastCGI进程管理器,用于与Nginx通信。
php8.2-mysql
: 让PHP可以连接MySQL数据库。
* 其他扩展(curl, gd, mbstring...)是许多流行PHP程序(如WordPress, Laravel)所必需的。
3、启动并启用PHP-FPM:
sudo systemctl start php8.2-fpm sudo systemctl enable php8.2-fpm
现在需要告诉Nginx,当遇到.php
文件时,应该交给PHP-FPM来处理。
1、编辑Nginx的默认服务器块(虚拟主机)配置文件:
sudo vim /etc/nginx/sites-available/default
2、找到处理PHP请求的部分并进行修改,通常你需要找到index
指令和location ~ \.php$
部分,确保它们看起来像下面这样:
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; # 在index后面加上 index.php index index.php index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } # 最重要的一部分:将PHP请求传递给PHP-FPM location ~ \.php$ { include snippets/fastcgi-php.conf; # 根据你安装的PHP版本,这一行可能会有所不同 fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; } # 可选:拒绝访问 .htaccess 文件 location ~ /\.ht { deny all; } }
关键点:
index
行必须包含index.php
。
fastcgi_pass
的值必须指向你当前PHP版本的FPM socket文件路径,请使用ls /var/run/php/
命令来确认正确的文件名。
3、测试Nginx配置是否正确:
sudo nginx -t
如果显示syntax is ok
和test is successful
,说明配置正确。
4、重启Nginx以应用更改:
sudo systemctl restart nginx
1、创建测试PHP文件:
sudo vim /var/www/html/info.php
2、在该文件中输入以下内容:
<?php phpinfo(); ?>
保存并退出。
3、在浏览器中访问:
http://你的服务器IP地址/info.php
你应该看到一个显示你服务器PHP配置的详细信息页面,这证明PHP和Nginx都已正确配置并协同工作。
4、(重要!)删除测试文件:
出于安全考虑,测试完成后应立即删除这个文件,因为它会暴露你的服务器信息。
sudo rm /var/www/html/info.php
如果服务器启用了类似ufw
的防火墙,你需要确保放行HTTP(80)和HTTPS(443)端口,以及SSH(22)端口。
sudo ufw allow 'Nginx Full' # 允许80和443 或者分别允许 sudo ufw allow 80/tcp sudo ufw allow 443/tcp 务必确保SSH端口是打开的,否则你可能被锁在服务器外 sudo ufw allow 22/tcp sudo ufw enable # 如果还没启用防火墙,此命令会启用它
可选步骤:安装phpMyAdmin(数据库图形化管理工具)
1、安装:
sudo apt install -y phpmyadmin
* 安装过程中会提示你选择Web服务器,按空格键选择nginx(前面会出现号),然后按回车。
* 接下来会询问是否要配置dbconfig-common
数据库,选择“是”。
* 为phpMyAdmin设置一个用于管理数据库的密码。
2、创建符号链接(如果安装程序没有自动为Nginx配置):
sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
3、访问:
在浏览器中访问http://你的服务器IP地址/phpmyadmin
,使用你的MySQL root用户名和密码登录。
至此,你的国外服务器上的基础LEMP(Linux, Nginx, MySQL, PHP)环境已经配置完成!
下一步你可以:
1、部署你的网站代码:将你的PHP程序(如WordPress, Laravel等)上传到/var/www/html/
目录或为其创建新的Nginx服务器块(虚拟主机)。
2、配置域名:在域名注册商处将你的域名解析到服务器IP,并在Nginx中配置相应的server_name
。
3、安装SSL证书:使用Let‘s Encrypt的Certbot工具为你的域名免费启用HTTPS。
sudo apt install -y certbot python3-certbot-nginx sudo certbot --nginx -d 你的域名.com
4、进行安全加固:更改SSH默认端口、禁用root密码登录、使用密钥登录、配置fail2ban等。
5、优化性能:根据你的程序需要,调整PHP-FPM和Nginx的配置参数,以及配置OPcache等。
希望这个详细的指南能帮助你顺利完成配置!
文章摘自:https://idc.huochengrm.cn/fwq/14257.html
评论