Linux 基础网络服务环境搭建和配置
既然有台云服务器,干嘛要让他吃灰呢?除了让他“剧烈运动”外,还可以让他适当的发挥其他作用。
[TOC]
LNMP 环境
啥是 LNMP ?
LNMP 指的是 Linux Nginx Mysql PHP,这四大天王。
以下操作是在 CentOS 7.6 系统环境以及非 root 用户下进行的。
Nginx 安装
为 CentOS 包管理 yum 配置 EPEL 源
sudo yum install -y epel-release
sudo yum -y update
开始安装 Nginx 包
sudo yum install nginx
使用 yum 包管理安装的 Nginx 的默认各常用文件目录路径如下:
默认网站目录:/usr/share/nginx/html
配置文件:/etc/nginx/nginx.conf
网站配置文件目录:/etc/nginx/conf.d
Nginx 操作
启动、停止和重启 Nginx 服务
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx
启用和禁用开机自启动
sudo systemctl enable nginx
sudo systemctl disable nginx
配置文件测试错误和重载配置文件
sudo nginx -t
sudo nginx -s reload
MySQL 和 SQLite3 安装
这里我用 MariaDB 替换了 MySQL 数据库。
直接通过 yum 包管理安装 MariaDB
sudo yum install mariadb-server
安装完后进行初始化配置
sudo mysql_secure_installation
一般来说,系统都会自带 SQLite3 数据库的,输入 sqlite3
测试是否已安装,如未安装也可直接通过 yum 包管理进行安装
sudo yum install sqlite-devel
MariaDB 操作
启动、停止和重启 MySQL 服务
sudo systemctl start mariadb
sudo systemctl stop mariadb
sudo systemctl restart mariadb
启用和禁用开机自启动
sudo systemctl enable mariadb
sudo systemctl disable maridb
PHP 7.4 安装
通过 yum 包管理安装
sudo yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum -y install yum-utils
sudo yum-config-manager --enable remi-php74
sudo yum install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt \
php-mbstring php-curl php-xml php-pear php-bcmath php-json \
php-xmlrpc php-pdo php-pecl-zip php-intl php-common php-imap php-odbc
PHP 操作
启动、停止和重启 Nginx 服务
sudo systemctl start php-fpm
sudo systemctl stop php-fpm
sudo systemctl restart php-fpm
启用和禁用开机自启动
sudo systemctl enable php-fpm
sudo systemctl disable php-fpm
LNMP 环境配置
Nginx 与 PHP 配置
修改 php.ini 配置文件的 cgi.fix_pathinfo 配置项为 0
sudo vim /etc/php.ini
cgi.fix_pathinfo = 0
修改 www.conf 配置文件的运行用户和用户组,确保和 Nginx 的运行用户一致
sudo vim /etc/php-fpm.d/www.conf
user = nginx
group = nginx
重启 php-fpm 服务
sudo systemctl restart php-fpm
创建一个 HTTPS 协议,并配置 PHP CGI 以运行 PHP 文件的站点配置
sudo vim /etc/nginx/conf.d/newsite.conf
server {
listen 80;
server_name 127.0.0.1;
rewrite ^(.*) https://$server_name$1 permanent;
}
server {
listen 443 ssl;
server_name 127.0.0.1;
# HTTPS_SSL_config
ssl_certificate /etc/nginx/cert/****.pem;
ssl_certificate_key /etc/nginx/cert/****.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
# Website root dir config
location / {
root /www/newsite;
index index.html;
try_files $uri $uri/ $uri.php$is_args$args;
}
# PHP run config
location ~ \.php$ {
root /www/random;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
include fastcgi_params;
}
}
测试和重载配置文件
sudo nignx -t
sudo nginx -s reload
PHP 配置 SQLite3 拓展
如果你的 PHP 安装目录下没有 ext 这个拓展文件夹,那么先通过命令寻找目录
sudo find / -name 'sqlite*'
通过上面的命令查找所有关于 sqlite 的文件路径
/opt/remi/php74/root/usr/lib64/php/modules/sqlite3.so
上面是我服务器的路径,路径地址因环境而异
打开 php.ini 配置文件,并修改下面五项配置,如果没有该配置项就追加进去
sudo vim /etc/php.ini
extension_dir = "/opt/remi/php74/root/usr/lib64/php/modules/"
extension=pdo.so
extension=sqlite.so
extension=pdo_sqlite.so
sqlite3.extension_dir = "/opt/remi/php74/root/usr/lib64/php/modules/"
重启 php-fpm 服务
sudo systemctl restart php-fpm
MySQL 开启远程登陆
在服务器进入数据库
mysql -uroot -p
更新用户表里面的 root 用户的 Host 字段
use mysql;
UPDATE user SET Host=@'%' where user='root' AND Host='localhost' LIMIT 1;
FLUSH PRIVILEGES;
查看更新后的数据
SELECT User, Password, Host FROM user;
在服务器运营商的网站管理页面的防火墙里,增加 3306 数据远程访问端口规则