服务器环境部署(Nginx+PHP-FPM)
前期准备:
1.云服务器
2.域名(推荐购买顶级域名,理由:不贵,而且以后也可以方便做其他配置)
*服务器:
对于时间充裕,不急着使用的,首选内地的服务器,虽然备案可能大约要15-20天左右,但是鉴于目前环境,内地的服务器还是有优势(类似后期部署应用,无需备案的服务器国内都解析不了),而且据说在推广方面备案的服务器收录的更好
如果急着需要练手的,那么就选国外的或者中国香港的服务器,无需备案。
操作环节:
本文基于华为云-Flexus L实例服务器进行演示。
一:安装Ubuntu系统
进入华为云控制台-Flexus L实例服务器,打开服务器界面,右侧镜像,重装系统,随后选择官方镜像-系统镜像-Ubuntu22.04,点击确定进入重装界面。
二:建立远程连接
安装完系统后,在概要界面-远程登陆栏,点击远程登陆(建议系统安装完成后一定要先修改密码,因为远程登录需要密码)。
密码修改后点击远程登录-选择CloudShell登录
三:环境部署
1.软件更新
1 2 |
apt update apt upgrade |
如果有系统更新的话也可以输入以下代码进行升级系统:
1 |
do-release-upgrade |
2.安装Nginx以及PHP-FPM
2.1 安装源(获取最新版本)
1 2 |
add-apt-repository ppa:ondrej/nginx add-apt-repository ppa:ondrej/php |
2.2 安装程序
1 2 |
apt install nginx apt install php-fpm |
3.配置Nginx
3.1 Nginx文件目录说明
目录:/etc/nginx/
注解:
- nginx.conf #主配置文件
- /sites-available #可用网站配置文件,网站还未发布状态,相当于一个初始化配置,不用修改,当备份使用
- /sites-enabled #发布的网站,把/sites-available下面的软链接到这个目录就是发布动作
- /conf.d #网站基本配置放在这里,也可以相当于 /sites-enabled
如果理解以上的这些基本差不多了
3.2 配置
Step 1:
这里把/sites-enabled/default删除(它只是个软链接)
1 |
rm /etc/nginx/sites-enabled/default |
然后copy一份/sites-available/default源文件到/sites-enabled/
1 |
cp /etc/nginx/sites-available/default /etc/nginx/sites-enabled/ |
Step 2:
修改sites-enabled下default文件的配置
1 |
vim /etc/nginx/sites-enabled/default |
根据default文件中的内容,server段内容修改如下,就是Nginx要解析php,需要fastcgi传递给它(PS:也可以用FTP找到该文件进行添加或更改):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
server { listen 80 ; listen [::]:80 ; root /var/www/html; #网站默认目录,以后可以自己改 index index.php index.html index.htm; server_name www.j-su.com; #网站地址(www.j-su.com修改成自己的网址) location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; proxy_buffer_size 64k; proxy_buffers 32 32k; proxy_busy_buffers_size 128k; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location ~ \.php$ { include fastcgi.conf; fastcgi_pass 127.0.0.1:9000; #fastcgi_pass unix:/run/php/php8.3-fpm.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; } } |
保存退出。检查配置是否正确,输入:
1 |
nginx -t #这个代码很好用,以后有改动的话要经常检查一下 |
显示如下说明配置正常,否则会报错:
1 2 |
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful |
完成以上步骤以后重启Nginx以载入配置:
1 |
systemctl restart nginx |
4.配置php-fpm(目前为php8.3,根据你的目录来改,一般为/etc/php/*)
4.1 修改www.conf配置文件(PS:也可以用FTP找到该文件进行修改,修改前记得备份)
1 |
vim /etc/php/8.3/fpm/pool.d/www.conf |
查找’Default Value: any’的位置,将下面的‘listen’修改为以下内容:
1 2 |
listen = 127.0.0.1:9000 listen.allowed_clients = 127.0.0.1 |
4.2 重启php-fpm
1 |
systemctl restart php8.3-fpm |
四:测试环节
刚刚default中网站目录为:/var/www/html,在这个目录下建立info文件(PS:也可以在本地用新建文本形式进行建立并把文件名修改成info.php后用FTP上传到/var/www/html目录下):
1 |
vim /var/www/html/info.php |
输入以下内容保存(PS:用本地新建文本形式把下面文件复制到新建的文本里):
1 2 3 |
<?php phpinfo(); ?> |
然后输入你的网址: www.a.com/info.php(www.a.com修改成您自己的网址)
显示如下界面说明配置成功。
如果显示“Access denied.”,修改网站目录的权限。
1 2 |
chown -R www-data:www-data /var/www/html #给目录配置用户 chmod -R 755 /var/www/html #给目录配置权限 |
再次打开网址,应该就没问题了,如果页面显示502,解决如下:
1 |
vim /etc/php/8.3/fpm/pool.d/www.conf |
找到以下文件把前面“#”去掉,也就是启用模式
1 2 3 |
listen.owner = www-data listen.group = www-data listen.mode = 0660 |
完成以上操作后再打开www.a.com/info.php就没有问题了。
五:安装数据库/php模块/缓存
1.安装PHP模块(可选,非必要)
1 |
apt install php-curl php-mbstring php-imagick php-ldap php-imap php-mysql php-gd php-zip php-bz2 php-intl php-smbclient php-bcmath php-gmp php-apcu php-memcached php-redis |
2.安装Redis缓存/或者Memcached
1 2 |
apt install redis apt install memcached |
3.安装mariadb数据库
1 |
apt install mariadb-server |
初始化配置数据库:
1 2 3 4 5 6 |
mysql use mysql; #使用mysql SET password for 'root'@'localhost'=password('密码'); #设置root的密码(PS:root可改成您便易记的账号) grant all privileges on *.* to 'root'@'%' identified by '上面设置的密码' with grant option; #给权限 FLUSH PRIVILEGES; #刷新 exit |
结束语
服务器环境配置部署完成,恭喜您,接下来我们继续配置Apache2和phpMyAdmin,如您在配置中遇到其它问题欢迎给我们留言?
发表评论