下面以 Linux + Nginx + MySQL/MariaDB + PHP(LNMP) 为例,讲一下常见配置方式。假设你使用的是 CentOS / Ubuntu 类系统,PHP 以 PHP-FPM 方式运行。
# Ubuntu
apt update
apt install nginx -y
# CentOS
yum install nginx -y
systemctl enable nginx
systemctl start nginx
# Ubuntu
apt install mysql-server -y
# CentOS
yum install mariadb-server -y
systemctl enable mariadb
systemctl start mariadb
初始化数据库(可选):
mysql_secure_installation
# Ubuntu
apt install php-fpm php-mysql php-cli php-curl php-gd php-mbstring -y
# CentOS
yum install php php-fpm php-mysqlnd -y
systemctl enable php-fpm
systemctl start php-fpm
一般放在:
/etc/nginx/sites-available//etc/nginx/conf.d/示例(假设域名 example.com):
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
deny all;
}
}
⚠️ CentOS 中
php-fpm.sock路径可能是:/run/php-fpm/www.sock
编辑:
/etc/php/*/fpm/pool.d/www.conf
确认:
listen = /run/php/php-fpm.sock
; 或
listen = 127.0.0.1:9000
重启:
systemctl restart php-fpm
mkdir -p /var/www/example.com
echo "<?php phpinfo(); ?>" > /var/www/example.com/index.php
nginx -t
systemctl reload nginx
浏览器访问:
http://服务器IP
看到 phpinfo() 页面即成功。
location ~* \.(env|git|svn|sql)$ {
deny all;
}
apt install certbot python3-certbot-nginx -y
certbot --nginx -d example.com
upload_max_filesize = 50M
post_max_size = 50M
如果不想手动配置,可以用:
wget http://soft.vpser.net/lnmp/lnmp2.0.tar.gz
tar zxf lnmp2.0.tar.gz
cd lnmp2.0
./install.sh lnmp
如果你能告诉我:
我可以直接给你针对性配置示例。