19.LAMP和LNMP服务器部署

19. LAMP和LNMP服务器部署

本章简单介绍一些常见服务器软件的安装和配置, 如LAMP(Linux+Apache+MariaDB+Php)套件安装和phpwind论坛搭建, nginx也很流行,所以也弄了一个LNMP(Linux+Nginx+MariaDB+Php)套件和Discuz!论坛,MySQL/MariaDB的Web管理界面 phpMyAdmin 见19.3.3小节。 这两个案例里面有HTTP和数据库的服务软件, 后面20章介绍了其他常见的FTP、SSH、DNS、VNC Server、Mail服务器等。

19.1 MySQL/MariaDB

MySQL是流行的跨平台的数据库管理系统,经常和Php、Apache/nginx组成网页服务平台。 MySQL公司先被Sun收购,Sun又被Oracle收购,给开源社区带来的打击不小。 因为Oracle自己是做数据库起家,不可能对这个开源竞争对手有好处, MySQL闭源的声音越来越多。MySQL作者Michael Widenius自己创办了新公司Monty Program AB, 在MySQL基础上新创了MariaDB开源数据库。MariaDB带来更好的数据库管理特性, 更好的自由开源保障。所以openSUSE 12.3版本发布时抛弃了MySQL, 集成了新的MariaDB。MariaDB使用方式和MySQL差不多 (两个数据库包含的一堆文件名是一样的,所以不要同时装), 但性能更好。所以这里只介绍MariaDB安装配置了。

MariaDB的服务器端软件包叫mariadb,客户端叫mariadb-client, 还有个MariaDB的管理工具集叫mariadb-tools。 openSUSE默认装了前两个,建议把三个都装上。

zypper in mariadb-tools mariadb mariadb-client

装上文件之后需要初次配置。下面的安装配置都是以root命令行执行:

(1)启动MariaDB数据库服务

systemctl enable mysql.service

systemctl start mysql.service

(2)设置数据库root密码:

mysqladmin -u root password 数据库根密码

(3)进入数据库后台:

mysql -u root -p -h localhost

输入数据库根密码后就进入数据库控制台了,可以执行sql命令:

(4)设置新的普通用户名

上面登录到数据库管理控制台后,执行:

CREATE USER ‘普通用户名’@’%’ IDENTIFIED BY ‘普通用户密码’;

GRANT ALL PRIVILEGES ON *.* TO ‘普通用户名’@’%’;

将上面普通用户名、普通用户密码替换成自己喜欢好的账户和密码,比如

CREATE USER ‘susedb’@’%’ IDENTIFIED BY ‘opensuse123’;

GRANT ALL PRIVILEGES ON *.* TO ‘susedb’@’%’;

以后就尽量用新的如susedb帐户登录使用数据库。

(5)运行安全配置

执行命令:

mysql_secure_installation

在命令行根据提示输入:

显示Enter current password for root (enter for none):
输入数据库根密码

显示Change the root password? [Y/n] : n
(已有密码,不需要重新设)

下面的全选Y,去除数据库不安全的默认设置:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

这样一些默认不安全的设置就被去除了。由于数据库root不能远程登录, 所以需要一个新的普通帐户如susedb。

(6)开放防火墙端口

如果需要远程登录数据库,那么需要把openSUSE默认的防火墙端口打开。如果只在数据库本机管理,就不需要开防火墙端口。

打开Yast—-》安全和用户—-》防火墙。

在设置窗口,左边选“允许的服务”,右边区域用默认的“外部区域”,

要允许的服务选“MySQL server”,点击“添加”, 然后点“下一步”,完成配置即可。

远程登录数据库就可以执行:

mysql -u susedb -p -h 数据库服务器IP

Windows下MySQL客户端也可以使用用户名、密码、数据库服务器IP登录openSUSE上的数据库服务器进行操作。

19.2 PHP

PHP,是英文超文本预处理语言Hypertext Preprocessor的缩写。 简单地说,php就是用来建设网站必不可少的计算机语言。 我们平时在上网时看到的网站大部站是用php制作的。 比如:新浪、百度、腾讯、网站公司的网站都是用php开发的。 php是一门简单易学的语言, 只要有初中以上学历的人都可以快速学习并掌握建站技术。

PHP除了核心模块,还有无数的扩展模块。比如php5-mysql是包含连接MySQL数据库函数的模块,php5-ftp是访问FTP服务器的模块,php5-gd是创建管理png、jpg、gif等各种图片的模块,php5-zip、php5-zlib、php5-bz2是访问压缩包的函数模块, php5-pear用于管理PHP扩展和程序的集合,在Yast软件管理里面搜索php,可以看到茫茫多php5-pear打头的扩展模块。

apache2-mod_php5是用于和Apache搭建网页服务器的模块。

安装php5和常用模块执行:

zypper in php5 php5-bz2 php5-gd php5-mbstring php5-mcrypt php5-mysql php5-zip php5-zlib pwgen php5-gettext php5-pear php5-suhosin

查看php和pear内置帮助,执行

php -h

pear help

比如用户主文件夹里的hello.php文件内容:

<?php
echo “Hello world! \n”; //输出Helo world
?>

解析执行hello.php:

php -f hello.php

19.3 Apache与LAMP

Apache是最流行的Web服务器软件之一,当然也是开源跨平台的。Apache发展了很多年,现在非常强大,拥有大量的扩展模块,支持各种Web服务特性,可以做服务器集群、负载均衡。

LAMP是一个流行的Web建站平台:Linux+Apache+MySQL/MariaDB+Php/Python/Perl 。

LNMP也是类似的流行Web建站平台: Linux+Nginx+MySQL/MariaDB+Php/Python/Perl。

如果要架设LNMP平台,19.3节Apache的东西不要装,免得冲突,直接去看19.4节。 这里先简单示范一个LAMP + phpWind论坛搭建。

19.3.1 Apache安装配置

现在openSUSE Linux、MariaDB、Php都装上了,就剩Apache了。

(1)执行安装

zypper in apache2 apache2-mod_php5 apache2-doc yast2-http-server

如果要使用Python和Perl来做网页开发, 对应Apache扩展模块是apache2-mod_python和apache2-mod_perl 。 对于Servlet/JSP动态网页是通过tomcat软件支持的。 由于这里是搭建Php网站,所以不需要这些额外模块。 装php5模块和apache本身就行了。

(2)装好后启动Apache服务

systemctl enable apache2.service

systemctl start apache2.service

(3)开启防火墙80端口

Web服务器当然得开服务端口了。与前面类似的,打开

Yast—-》安全和用户—-》防火墙。

左边“选允许的服务”,右边添加“HTTP Server”, 如果用得到HTTPS服务,就把“HTTPS Server”一块添加开放。

(4)Yast图形界面管理

Yast还有专门的管理Apache服务器的模块,前面安装了。打开

Yast—-》网络服务—-》HTTP服务器。

就可以从图形界面操控Web服务器。配置比较简单,初次配置一直点下一步就行, 也可以编辑一下站点名字和管理员邮箱:

以后就都可以用这个Yast的“HTTP服务器”配置来管理服务器。

HTTP网页文档根就是/srv/www/htdocs,所以最好把/srv单独做个分区或者把根分区弄大点,免得空间不够。

现在LAMP平台就架好了,我们把hello.php复制到/srv/www/htdocs,(这个文件夹写入要root权限)

cp hello.php /srv/www/htdocs

然后在浏览器里打开网页:

就可以在浏览器里看到Hello world,说明安装成功。

19.3.2 phpwind论坛

LAMP平台当然不是仅仅用来显示helloworld的。现在来装一个phpwind论坛来试试。phpwind是很流行的社区系统,可以去主页查看介绍:

下载页面:

一般Windows下用GBK的包,Linux当然要用简体UTF8的包。下载下来。

参看安装教程:

(1)设置网页文件夹权限

需要将一堆文件设置成777权限,就是所有人可以读、写、执行。

所以这里先把/srv/www/htdocs设置成 777 ,再把论坛文件放进去。

root命令行执行:

chmod 777 -R /srv/www/htdocs

(2)解压缩phpwind包,将upload内的文件捣腾到htdocs文件夹

下载的比如phpwind_v9.0_utf8.zip,解压缩到phpwind_v9.0_utf8文件夹, 然后进入里面的upload文件夹。Ctrl + A 再Ctrl + X,剪切所有文件到 /srv/www/htdocs 文件夹里。

由于默认解压缩的文件权限不是777 ,所以再执行一遍:

chmod 777 -R /srv/www/htdocs

(3)执行phpwind安装

打开浏览器,访问:

接受协议;

接着看到各种环境状态,这里当然是很好的状态了,没问题:

进入下一步;

输入MariaDB数据库密码,除了root,也可以用前面自己设的普通用户名如susedb。

输入phpwnd的数据库名字,可以设置为phpwnd(论坛软件自动创建叫这个名字的数据库)。

输入论坛管理员密码。输入好后点创建数据。

创建好数据论坛就成功装好了,可以发帖:

论坛主页是:

论坛管理后台页面是:

建议不用的时候把admin.php挪走,或者改成乱七八糟的名字。用的时候再改回来。

(4)更正/srv/www/htdocs权限

之前为安装方便,全改成777了,最好按照最小化权限重设:

chmod 755 -R /srv/www/htdocs

chmod 777 -R /srv/www/htdocs/attachment

chmod 777 -R /srv/www/htdocs/html

chmod 777 -R /srv/www/htdocs/data

这样就把LAMP + phpwind论坛架设好了。

19.3.3 phpMyAdmin

phpMyAdmin是MySQL/MariaDB数据库的管理界面,可以通过Web界面操作数据库。 由于是php语言写的,所以需要LAMP或LNMP一整套平台才跑的起来。 现在LAMP已经装好了,正好把phpMyAdmin装上,方便对数据库的管理。

zypper in phpMyAdmin

装好后就自动放在/srv/www/htdocs/phpMyAdmin/文件夹里了。在浏览器里访问:

就可以用数据库的用户名密码登录,来管理数据库。

19.4 Nginx与LNMP

与Apache相比,Nginx是后起之秀。Apache模块很多,属于大而全的服务器软件。 而Nginx以小巧高效闻名,由俄罗斯的程序设计师Igor Sysoev所开发,其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。中国大陆使用nginx网站用户有:新浪、网易、 腾讯、小米官网等。

使用Apache的体系叫LAMP,使用Nginx的当然叫LNMP了。Apache大而全的好处是有现成的 apache2-mod_php5模块,装上就什么都不用管。 而Nginx就没这类的模块,需要借助FastCGI来解析php文件。 参看:

Apache和Nginx装一个就够了,因为HTTP服务默认都占用80端口,装两个显得浪费。 这一节的内容是接着19.2节,php装好之后,安装配置LNMP平台。

19.4.1 Nginx安装

(1)Nginx没什么附加模块,直接装它本身就行了: (好像在13.2中把nginx移到不稳定源里了,如果官方源里没有,去

页面找 nginx)

zypper in nginx

(2)开启nginx服务

systemctl enable nginx.service

systemctl start nginx.service

(3)开放防火墙端口

由于是HTTP服务器,必须在防火墙里把80端口打开。

与19.3节类似的,打开Yast—-》安全和用户—-》防火墙。

左边“选允许的服务”,右边添加“HTTP Server”, 如果用得到HTTPS服务,就把“HTTPS Server”一块添加开放。

安装好nginx后,如果把前面的hello.php放在/srv/www/htdocs目录,浏览器里访问

这时不会看到解析的网页,而是直接下载了hello.php文件。所以必须要继续配置。

19.4.2 php-fpm安装配置

软件包php5-fpm是用于FastCGI进程管理的PHP5模块。

LNMP平台大致的工作流程是:安装php5-fpm后,通过php-fpm启用FastCGI进程, 然后配置nginx,让nginx把php文件解析交给FastCGI进程处理, 然后nginx把解析得到网页显示出来。下面进行安装配置。

(1)安装php5-fpm

zypper in php5-fpm

(2)编辑php-fpm.conf

装了之后,在/etc/php5/fpm/目录有默认的配置文件php-fpm.conf.default, 要启用php5-fpm必须复制一个php-fpm.conf放在/etc/php5/fpm/目录:

cp /etc/php5/fpm/php-fpm.conf.default /etc/php5/fpm/php-fpm.conf

文件php-fpm.conf就是实际使用的php5-fpm配置文件。

用root权限打开php-fpm.conf进行编辑:

把 ;error_log = log/php-fpm.log 一行开头的分号去掉,并改为

error_log = /var/log/php-fpm.log

保存文件。然后可以尝试在root命令行执行:

php-fpm

如果没提示ERROR,那表示配置文件没问题。

(3)启动PHP的FastCGI进程

用root命令行启动FastCGI服务:

systemctl enable php-fpm.service

systemctl start php-fpm.service

可以查看 php-fpm监听状态:

netstat -antl |grep 9000

命令行会提示:

tcp    0    0     127.0.0.1:9000    0.0.0.0:*    LISTEN

如果是使用负载分担,将nginx和php-fpm分别运行在两台不同服务器上的话, 需要开放防火墙的TCP 9000端口,使它们能够互通。 如果二者在同一台机器上那就无所谓。

(4)配置nginx

用root权限编辑/etc/nginx/nginx.conf ,找到其中的两段:

  location / {
    root    /srv/www/htdocs/;
    index   index.html index.htm ;
  }
##
##中间的一大堆不动。
##
  #location ~ \.php$ {
    # root          html;
    # fastcgi_pass  127.0.0.1:9000;
    # fastcgi_index index.php;
    # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
    # include       fastcgi_params;
  #}

第二段本来是用#注释掉的,把#去掉,这段php的配置就会生效,然后编辑如下:

  location / {
    root    /srv/www/htdocs/;
    index   index.php index.html index.htm ;
  }
##上一段添加了一个 index.php 的主页文件名
##中间的一大堆不动。
##下面一段改网页root位置,并把/scripts改成root一样的位置
  location ~ \.php$ {
    root          /srv/www/htdocs;
    fastcgi_pass  127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /srv/www/htdocs$fastcgi_script_name;
    include       fastcgi_params;
  }

编辑后保存。

(5)重启nginx

systemctl restart nginx.service

再用浏览器访问:

就可以看到久违的Hello wolrd。这样LNMP平台就配置好了。

19.4.3 Discuz!论坛

这里提到的Discuz!和上一节的phpwnd、phpMyAdmin在LAMP和LNMP都可以正常运行。配置好了LAMP或LNMP平台后,可以随意装哪个论坛软件和phpMyAdmin。这里是演示方便,把Discuz!放到这来装,如果放到前面LAMP装是一样的。论坛phpwnd放到LNMP下也是一样装。

根据维基百科,Discuz!是个可免费下载的PHP网络论坛程序,简称DZ,由戴志康(Crossday)所创立,目前最新版本是X2.5。前身为Crossday Bulletin(CDB),最初改自XMB,尔后改写成为现今的Discuz!社区论坛程序,由康盛创想所有。现在Discuz!已成为大中华地区最多用户使用的论坛程序。Discuz!的源代码可免费下载,但它并不是开源软件,因为其许可证不符合开放源代码的定义。其官方网站:

下载地址:

大陆的选“简体UTF-8”,想要装繁体的也可以选“繁体UTF-8”。

(1)把论坛文件放到/srv/www/htdocs/

下载后把Discuz_X2.5_SC_UTF8.zip解压缩放到主文件夹的 Discuz_X2.5_SC_UTF8 文件夹里。

Discuz_X2.5_SC_UTF8 文件夹里有三个子文件夹:readme,upload,utility。

在root命令行执行命令把 upload里面的都移动到/srv/www/htdocs/ 文件夹:

mv /home/用户名/Discuz_X2.5_SC_UTF8/upload/* /srv/www/htdocs/

(这里/home/用户名/Discuz_X2.5_SC_UTF8是解压缩后的路径,可以根据各人自己的的改。)

然后在 /srv/www/htdocs/ 文件夹就可以看到一大堆论坛文件了。

(2)设置权限

/srv/www/htdocs/ 里面有四个子文件夹config ,data,uc_client/data,uc_server/data 里面的都需要设置777权限。执行:

chmod 777 -R /srv/www/htdocs/config/

chmod 777 -R /srv/www/htdocs/data/

chmod 777 -R /srv/www/htdocs/uc_client/data/

chmod 777 -R /srv/www/htdocs/uc_server/data/

(3)进行Discuz!论坛安装

打开浏览器,访问:

进入安装界面,同意协议,进入环境检查界面:

一切OK,点“下一步”;

进入设置运行环境,选“全新安装 Discuz! X (含 UCenter Server)”,点“下一步”;

填写数据库用户名密码,推荐用前面新建的普通的数据库用户名密码,如susedb的用户名。

然后填写给Discuz! 用的数据库名,论坛管理员admin的新密码。 点“下一步”。

等待创建数据库表完成和数据初始化。会提示Discuz! 应用中心有一些应用,可以装一下喜欢的。 这里就不装了。直接进入论坛:

其管理后台是

平时不用后台时,最好把admin.php挪走,或者改成乱七八糟的名字。等到要用的时候再改回去。

LNMP平台装phpMyAdmin与上面LAMP装是一样的,就不重复了。

下一章介绍其他常见的服务器软件。

最后附上更多的参考资料:

原文链接:https://opensuse-guide.ustclug.org/srvlamp.php

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享