如何在FreeBSD云服务器上安装Nginx、PHP和MySQL?

  • 发布时间:2022-01-23 10:50:43
  • 阅读次数:1412

FEMP平台,与Linux操作系统中的LEMP平台类似,是运行在FreeBSD操作系统中用于托管动态网站和应用程序的一系列软件的组合。FEMP代表FreeBSD、Nginx、MySQL和PHP。这篇帮助基于FreeBSD 12.0操作系统,使用pkg包管理器来部署FEMP平台。

准备工作

首先检查FreeBSD的版本。

uname -ro
# FreeBSD 12.0-RELEASE-p6

然后确保FreeBSD已更新到最新版本。

freebsd-update fetch install
pkg update && pkg upgrade -y

接下来安装必要的系统软件。

pkg install -y sudo vim bash curl

设置时区。

sudo tzsetup

创建一个新用户,这里我们以zhaomu作为用户名的示例。

adduser

# Username: zhaomu
# Full name: zhaomu.com
# Uid (Leave empty for default): <Enter>
# Login group [zhaomu]: <Enter>
# Login group is zhaomu. Invite zhaomu into other groups? []: wheel
# Login class [default]: <Enter>
# Shell (sh csh tcsh nologin) [sh]: bash
# Home directory [/home/zhaomu]: <Enter>
# Home directory permissions (Leave empty for default): <Enter>
# Use password-based authentication? [yes]: <Enter>
# Use an empty password? (yes/no) [no]: <Enter>
# Use a random password? (yes/no) [no]: <Enter>
# Enter password: your_secure_password
# Enter password again: your_secure_password
# Lock out the account after creation? [no]: <Enter>
# OK? (yes/no): yes
# Add another user? (yes/no): no
# Goodbye!

执行visudo命令,删除下面这行之前的注释,允许添加到wheel用户组的用户能够执行任何命令。

visudo

# %wheel ALL=(ALL) ALL

切换到刚才创建的zhaomu用户。

su - zhaomu

安装Nginx

使用FreeBSD包管理器安装Nginx。借助FreeBSD的pkg包管理器,我们可以轻松安装大部分由FreeBSD维护的常用软件。

执行以下命令安装最新版本的Nginx,并启动Nginx。

sudo pkg install -y nginx
sudo sysrc nginx_enable=yes
sudo service nginx start

检查Nginx的版本和状态。

sudo nginx -v
sudo service nginx status

此时,在浏览器上访问IP地址,如果出现"Welcome to nginx!" 的字样,说明Nginx安装成功。

安装MySQL

同样,使用pkg安装MySQL,并启动MySQL。

sudo pkg install -y mysql80-client mysql80-server
sudo sysrc mysql_enable=yes
sudo service mysql-server start

检查MySQL的版本和状态。

sudo mysql --version
sudo service mysql-server status

作为MySQL的最佳实践之一,我们需要执行mysql_secure_installation安全脚本,用于避免一些MySQL默认的安全风险,并设置MySQL数据库的权限。 执行该向导后,系统提示我们输入root密码,其余问题保持默认选项即可。

sudo mysql_secure_installation

安装PHP

安装PHP 7.3版本,并启用PHP-FPM。

sudo pkg install -y php73
sudo sysrc php_fpm_enable=yes
sudo service php-fpm start

检查PHP版本和状态。

sudo php --version
sudo service php-fpm status

为了增强PHP的功能,我们还可以安装一些PHP组件。执行php -m查看已安装的组件。

php -m
# [PHP Modules]
# Core
# date
# libxml
# mysqlnd
# pcre
# Reflection
# SPL
# standard

# [Zend Modules]

执行pkg search命令,查看可用的PHP组件。

pkg search ^php73-*

# Output
# php73-7.3.7                    PHP Scripting Language
# php73-Ice37-3.7.2              Modern alternative to object middleware such as CORBA/COM/DCOM/COM+
# php73-aphpbreakdown-2.2.2      Code-Analyzer for PHP for Compatibility Check-UP
# php73-aphpunit-1.8             Testing framework for unit tests
# php73-bcmath-7.3.7             The bcmath shared extension for php
# php73-brotli-0.7.0             Brotli extension for PHP
# php73-bsdconv-11.5.0           PHP wrapper for bsdconv
# php73-bz2-7.3.7                The bz2 shared extension for php
# php73-calendar-7.3.7           The calendar shared extension for php
# php73-composer-1.8.6           Dependency Manager for PHP
# php73-ctype-7.3.7              The ctype shared extension for php
# php73-curl-7.3.7               The curl shared extension for php
# . . .

为了让Nginx能够识别PHP,还需要做一些设置。首先在Nginx配置目录下新建test.conf文件。

sudo vim /usr/local/etc/nginx/test.conf

添加如下代码到test.conf文件中。

server {
  listen 80;
  server_name SERVER_IP; # Replace with your IP or hostname
  root /usr/local/www/nginx-dist;
  index index.php index.html index.htm;
  location / {
    try_files $uri $uri/ =404;
  }
  location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }
}

然后编辑Nginx的主配置文件。

vim /usr/local/etc/nginx/nginx.conf

在nginx.conf文件中添加如下代码,引用test.conf文件。

include test.conf;

重载Nginx服务器并检查设置是否生效。

sudo service nginx reload
sudo nginx -t

测试访问

为了检测FreeBSD系统能否正常运行PHP,我们创建一个简单的PHP脚本,命名为info.php。

sudo vim /usr/local/www/nginx-dist/info.php

添加如下代码

<?php phpinfo(); ?>

然后访问:http://your_server_IP/ìnfo.php 。如果一切正常,可以看到如下页面。

最后删除测试脚本,开始正式部署应用程序。至此,在FreeBSD云服务器上安装FEMP平台的步骤已全部完成。

sudo rm /usr/local/www/nginx-dist/info.php

【全文完】

< 上一篇:如何在Ubuntu云服务器上安装Nginx、PHP和MySQL? 下一篇:如何在Ubuntu云服务器上安装MongoDB、Express、React和Node.js? >