初探OpenSUSE

实训使用OpenSUSE leap15.2作为服务器系统,要求搭建基本的lnmp服务,之前一直用的CentOS7,和SUSE的命令稍有些出入,记录一下。

换源

  1. 首先禁用默认软件源

sudo zypper mr -da

阿里和中科大选一个即可,多了影响速度。

  1. Aliyun mirrors 阿里软件源
1
2
3
4
zypper ar -fc https://mirrors.aliyun.com/opensuse/distribution/leap/15.2/repo/oss openSUSE-Aliyun-OSS
zypper ar -fc https://mirrors.aliyun.com/opensuse/distribution/leap/15.2/repo/non-oss openSUSE-Aliyun-NON-OSS
zypper ar -fc https://mirrors.aliyun.com/opensuse/update/leap/15.2/oss openSUSE-Aliyun-UPDATE-OSS
zypper ar -fc https://mirrors.aliyun.com/opensuse/update/leap/15.2/non-oss openSUSE-Aliyun-UPDATE-NON-OSS
  1. USTC mirros 中科大软件源
1
2
3
4
zypper ar -fcg https://mirrors.ustc.edu.cn/opensuse/distribution/leap/15.2/repo/oss USTC:15.2:OSS
zypper ar -fcg https://mirrors.ustc.edu.cn/opensuse/distribution/leap/15.2/repo/non-oss USTC:15.2:NON-OSS
zypper ar -fcg https://mirrors.ustc.edu.cn/opensuse/update/leap/15.2/oss USTC:15.2:UPDATE-OSS
zypper ar -fcg https://mirrors.ustc.edu.cn/opensuse/update/leap/15.2/non-oss USTC:15.2:UPDATE-NON-OSS
  1. pacman 清华大学pacman软件源
1
zypper ar -fcg https://mirrors.tuna.tsinghua.edu.cn/packman/suse/openSUSE_Leap_15.2/ TUNA:15.2:PACKMAN
  1. 需要更新软件源:

zypper ref

软件包+常用软件

1
2
3
4
zypper update
zypper install opi ranger vim neofetch
opi lolcat
zypper install nginx

桌面

服务器性能不错,装了个xfce桌面。

1
zypper -n in patterns-openSUSE-xfce

卸载office套件

1
zypper rm libreoffice*

重启+启动

1
2
reboot
startx

卸载

1
2
zypper -n rm patterns-openSUSE-xfce xfce4-* libxfce4*
reboot

VNC的使用:

https://documentation.suse.com/zh-cn/sles/11-SP4/html/SLES-all/cha-vnc.html

安装mariadb

1
zypper install mariadb mariadb-server

MariaDB设置初始化密码及修改密码/var/log/mysqld.log

  • 方法一

    1
    2
    3
    4
    [root@localhost ~]# mysql -uroot
    MariaDB [(none)]> use mysql;
    MariaDB [mysql]> SET password=PASSWORD('newpassward');
    MariaDB [mysql]> FLUSH PRIVILEGES;
  • 方法二

    1
    2
    3
    4
    [root@localhost ~]# mysql -uroot
    MariaDB [(none)]> use mysql;
    MariaDB [mysql]> UPDATE mysql.user SET password = PASSWORD('newpassward') WHERE user = 'root';
    MariaDB [mysql]> FLUSH PRIVILEGES;
  • 方法三

    1
    2
    3
    [root@localhost ~]# mysqladmin -u root password 'newpassword'
    #如果root已经设置过密码,采用如下方法
    [root@localhost ~]# mysqladmin -u root -p 'oldpassword' password 'newpassword'

安装mysql 5.7

  1. 下载Mysql
1
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.34-1.sles12.x86_64.rpm-bundle.tar
  1. 解压
1
tar -xvf mysql-5.7.34-1.sles12.x86_64.rpm-bundle.tar
  1. 安装
1
2
3
4
5
6
sudo rpm -i mysql-community-common-5.7.34-1.sles12.x86_64.rpm
sudo zypper install libatomic1
sudo rpm -i mysql-community-libs-5.7.34-1.sles12.x86_64.rpm
sudo zypper install libncurses5
sudo rpm -i mysql-community-client-5.7.34-1.sles12.x86_64.rpm
sudo rpm -i mysql-community-server-5.7.34-1.sles12.x86_64.rpm
  1. 启动

systemctl start mysql

  1. /var/log/mysql/mysqld.log中找密码

登陆

mysql -u root -p

改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'XSDFaaa@sadf897' PASSWORD EXPIRE NEVER;

刷新

flush privileges;

建库

1
2
> create database zabbix character set utf8 collate utf8_bin;
> grant all privileges on zabbix.* to zabbix@localhost identified by '123';

安装apache2(php7)

1
sudo zypper in apache2 apache2-doc apache2-example-pages apache2-utils apache2-prefork apache2-mod_perl apache2-mod_php7

php-fpm

  1. 安装PHP-FPM
1
2
zypper in php7-fpm php7-opcache php7-zlib php7-mcrypt php7-gd php7-mbstring php7-xmlrpc php7-zip php7-mysql php7-curl php7-exif php7-ftp php7-imap php7-openssl
systemctl enable php-fpm
  1. 装好后的php.ini在/etc/php7/apache目录下,但由于用的是php-fpm,所以要把这个php.ini拷贝到/etc/php7/php-fpm目录下,同时,php-fpm的默认配置文件也在上述目录里面:
1
2
cp /etc/php7/fpm/php-fpm.conf.default /etc/php7/fpm/php-fpm.conf
cp /etc/php7/fpm/php-fpm.d/www.conf.default /etc/php7/fpm/php-fpm.d/www.conf
  1. 系统自带的apache默认用户是wwwrun,组是www,为了避免以后权限上的麻烦,编辑/etc/php7/fpm/php-fpm.d/www.conf,指定php-fpm的用户/组wwwrun/www

  2. /etc/apache2/conf.d下添加一个php.conf文件,让apache知道php-fpm的存在,内容如下:

1
2
3
4
<FilesMatch "\.php$">
SetHandler "proxy:fcgi://127.0.0.1:9000/"
</FilesMatch>
DirectoryIndex index.php
  1. 开启错误日志
1
vim /etc/php7/fpm/php-fpm.conf 

取消注释:
error_log = log/php-fpm.log

  1. /etc/php/cli/php.ini文件中保护PHP-FPM

;cgi.fix_pathinfo=1改为cgi.fix_pathinfo=0

  1. 配置Nginx以使用PHP-FPM

此时,我们需要在默认的Nginx配置文件中配置Nginx以使用PHP-FPM 。

vim /etc/nginx/nginx.conf

然后查找以下部分,并将index.php添加到预期索引文件列表中。

1
2
3
4
location / { 
root /srv/www/htdocs/;
index index.php index.html index.htm ;
}

由于环境与老师提供的软件版本不兼容(第三方yum仓库,而且提供的包太老了),SUSE的服务配置和CentOS7也有出入,后续zabbix和jspgou等服务一堆问题待解决,时间有限,折腾不动了,这课划划水得了。

这文章里的配置过程也写得比较粗糙,突出一个能跑就行,本来就打算交完作业就直接重装系统的…

如果不用manjaro的滚更,我大概率还是会上大蜥蜴Leap 15.2的桌面版,至少双系统是有一份的,等那天再继续补,将openSUSE配置到能日用的地步,具体能不能主力linux就看win11的表现了。

参考

 https://www.howtoing.com/install-lemp-nginx-php-mariadb-phpmyadmin-in-opensuse