下面是详细的攻略。
1. 确认服务器系统版本
首先需要确认自己的服务器系统版本是否为CentOS8.1,如果不是的话需要安装或更换成CentOS8.1版本。
2. 安装Nginx
在CentOS8.1中,我们可以使用dnf命令来安装Nginx。具体操作如下:
sudo dnf install nginx
安装完成后,我们可以通过systemctl命令来启动、停止、重启Nginx服务:
sudo systemctl start nginx # 启动Nginx
sudo systemctl stop nginx # 停止Nginx
sudo systemctl restart nginx # 重启Nginx
sudo systemctl enable nginx # 设置Nginx自启动
可以通过curl命令来测试Nginx服务是否正常运行:
curl http://localhost
如果能正常返回页面内容,则说明Nginx已经安装和配置完成。
3. 安装MySQL
CentOS8.1默认使用的是MariaDB作为数据库,我们可以使用dnf命令安装:
sudo dnf install mariadb mariadb-server
在安装完成后,我们可以使用systemctl命令来启动、停止、重启MariaDB服务:
sudo systemctl start mariadb # 启动MariaDB
sudo systemctl stop mariadb # 停止MariaDB
sudo systemctl restart mariadb # 重启MariaDB
sudo systemctl enable mariadb # 设置MariaDB自启动
在启动MariaDB后,我们需要进行初始化操作,具体命令如下:
sudo mysql_secure_installation
在初始化过程中,会提示输入密码、修改root密码、删除匿名用户、禁止root远程登录、删除test数据库等操作。
4. 安装PHP
CentOS8.1默认使用的是PHP7.2版本,我们可以使用dnf命令来安装PHP及相关模块:
sudo dnf install php php-fpm php-mysqlnd php-gd
安装完成后,我们可以通过systemctl命令来启动、停止、重启php-fpm服务:
sudo systemctl start php-fpm # 启动php-fpm
sudo systemctl stop php-fpm # 停止php-fpm
sudo systemctl restart php-fpm # 重启php-fpm
sudo systemctl enable php-fpm # 设置php-fpm自启动
5. 配置Nginx、MySQL和PHP
- 配置Nginx
在/etc/nginx/sites-available/目录下创建一个新的配置文件,并将以下内容复制到文件中:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
其中:
- listen:指定Nginx监听端口,此处设置为80端口;
- server_name:指定站点域名,可以使用通配符来匹配多个域名;
- root:指定站点的默认文档根目录;
- index:指定Nginx默认打开的文件;
- location /:指定Nginx处理所有请求的基础URL;
- location ~ .php$ :正则匹配所有以.php结尾的请求;
- fastcgi_pass:指定php-fpm的Unix Socket文件;
- fastcgi_index:指定php默认访问的文件;
- fastcgi_param:指定变量值;
- include:指定引用路径。
创建完成后需要将文件软链接到sites-enabled目录下,并重启Nginx服务。
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo systemctl restart nginx
- 配置MySQL
运行以下命令来登录MySQL:
sudo mysql -u root -p
在登录成功后,执行以下命令创建一个新的MySQL用户:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
其中newuser与password可以替换成自己的用户名和密码。
- 配置PHP
在进行PHP配置之前,我们需要先编辑php.ini文件:
sudo nano /etc/php.ini
在打开的文件中,可以找到以下几行代码:
; cgi.fix_pathinfo=1
将此行代码取消注释,并将值改为0。
cgi.fix_pathinfo=0
保存并退出文件。然后,我们需要编辑php-fpm配置文件:
sudo nano /etc/php-fpm.d/www.conf
找到以下两行代码:
;listen.acl_users = apache,nginx
;listen.allowed_clients = 127.0.0.1
将这两行代码取消注释,并将listen.acl_users的值设置为nginx。
listen.acl_users = nginx
listen.allowed_clients = 127.0.0.1
保存并退出文件,并重启php-fpm服务:
sudo systemctl restart php-fpm
示例说明
以下是两个示例说明:
示例一:创建一个新的站点
假设我们想要创建一个新的站点,其域名为example.com,文档根目录为/var/www/example.com。
首先,我们需要在/var/www目录下创建一个新目录:
sudo mkdir /var/www/example.com
然后,我们需要将站点的默认文件(如index.html、index.php等)复制到该目录中。
接下来,我们可以使用以下命令创建一个新的Nginx配置文件:
sudo nano /etc/nginx/sites-available/example.com
将以下内容粘贴到文件中:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
保存文件并退出。然后,我们需要将此配置文件链接到/etc/nginx/sites-enabled目录中:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
最后,我们需要重启Nginx服务以使配置文件生效:
sudo systemctl restart nginx
示例二:安装一个新的PHP扩展
假设我们需要安装PHP的gd扩展。
首先,我们需要通过dnf命令来查找gd扩展:
sudo dnf search php-gd
然后通过以下命令来安装php-gd扩展:
sudo dnf install php-gd
安装完成后需要重启php-fpm服务以使扩展生效:
sudo systemctl restart php-fpm
我们可以通过以下命令来验证是否安装成功:
php -m | grep gd
如果返回了gd,说明扩展已经安装成功。