OsoLinux 快速安装指南


基础的 Nginx PHP MySql 服务器

osolinux 的系统是基于 Fedora 进行的补充和修改,那么服务器下载自然使用的就是 Fedora 对应版本的更新源。

$  sudo dnf install php-fpm php-mysqlnd nginx mariadb-server  

$  sudo systemctl start php-fpm nginx  

安装 Fedora 的服务器组件经常是模块给你分配地很细的安装包,配置却经常是随意、空白、糊涂。

我们打开 127.0.0.1 或 localhost 遇到 php 页不是 404 就是 403,phpMyAdmin 也是拒绝服务:

服务器配置图
首先要为 PHP Nginx 服务建立用户。

创建用户在未指定组的情况,会自动创建同用户名的组,所以就不必要再去建一个组挂靠:

$  sudo useradd www -s /sbin/nologin -M  

$  sudo useradd nginx -s /sbin/nologin -M  

为了避免这两个用户出现在登录选择上面,需要修改 /etc/sddm.conf.d/kde_settings.conf

$  kwrite /etc/sddm.conf.d/kde_settings.conf  

在 [Users] 项的最尾行添加 HideUsers=www,nginx

服务器配置图
/etc/php-fpm.d/www.conf 中定义了 Session 的保存位置,可是 Fedora 的打包并没有给这个文件夹提权,也就是只有 www 启动的服务,否则访问不了这里。

由于桌面用户对服务器启动习惯等问题,Session 访问不了,就导致了 phpMyAdmin 拒绝访问,我们现在给这个文件夹进行提权:

$  sudo chmod 777 /var/lib/php/session  

为了服务器本地打开 pingstatus,比如 http://127.0.0.1/status,需要修改 /etc/php-fpm.d/www.conf

$  kwrite /etc/php-fpm.d/www.conf  

找到如下句子,将前面的封号 ( ; ) 去掉:

  ;ping.path = /ping  

  ;pm.status_path = /status  

为了让 Nginx 连接 PHP 服务进行解析,打开 /etc/nginx/nginx.conf 找到:

  location = /50x.html {    
   }

在其下方添加以下句子:

   location ~ \.php$ {
                   root     /usr/share/nginx/html;
                   fastcgi_pass     unix:/run/php-fpm/www.sock;
                   fastcgi_index   index.php;
                   include    fastcgi.conf;
   }
   location  ~  ^/(status|ping)$ {
                   include    fastcgi_params;
                   fastcgi_pass    unix:/run/php-fpm/www.sock;
                   fastcgi_param   SCRIPT_FILENAME $fastcgi_script_name;  
                   allow   127.0.0.1;
                   deny    all;
   }

这里 root /usr/share/nginx/html; 就是 Web 服务的文件夹,你可以修改成其它文件夹并注意修改文件夹的读写权限。

至此,Web 服务器的设置也就完成了,可以重启一下 PHP Nginx 服务:

$  sudo systemctl restart php-fpm nginx  

在我们进行网站编辑架设前,需要启动 MySql 数据库并设置一下密码:

$  sudo systemctl start mariadb.service    

$  sudo mysql    

执行:

  use mysql    

  set password for root@localhost=password(' 新密码 ');    

  flush privileges;    

服务器配置图
至此,本文讨论服务器的架设就到此为止。

Linux 的各种服务器的架设配置都不是很直观的,并且类似 Fedora 从来不关心用户的服务器配置,给初学者造成一定困难。

Fedora 求模块全面分包的服务器组件只能供于学习,真正架设并用于生产的服务器一般都需要程序员自行编译甚至代码修改的。

我这里不烦提一嘴,比如 nginx 有一个修改后的开源版本叫 tengine,我给打包了,但其所有指令配置仍然和 nginx 没什么区别。