SDB:搭建LAMP服务器
什么是 LAMP?
LAMP 是一个自由开源的服务器解决方案套件包,名字分别是 Linux,Apache HTTP 服务器,MySQL(或 MariaDB) 数据库,PHP 脚本语言的首字母。根据需求的不同,PHP 脚本语言还可以换成 Perl 或 Python,甚至是 Go。
准备工作
取得 root 权限
安装与配置 LAMP 的大部分操作需要 root 权限,可以使用以下命令切换到 root 账户:
su -本页面出现的所有命令默认在 root 账户下运行。你也可以使用
以在普通账户下临时获取 root 权限。
配置防火墙
如果想让你部署的站点可以被远程访问,请确保 http 服务或 80 端口已被防火墙放行。如果你想部署 https 站点,请确保 https 服务或 443 端口已被防火墙放行。你可以使用 firewall-cmd(文本界面) 或 yast2-firewall(图形界面,也提供文本界面模式)配置防火墙:
firewall-cmd
你可以使用 firewall-cmd 配置配置防火墙。首先使用以下命令获取当前启用的区域:
firewall-cmd --get-active-zones
使用以下命令将 http 和 https 服务永久添加到区域,使用上面查询到的区域名称替换「区域」部分:
firewall-cmd --zone=区域 --add-service=http --permanent firewall-cmd --zone=区域 --add-service=https --permanent
你也可以使用以下命令将 80 和 443 端口永久添加到区域,使用上面查询到的区域名称替换「区域」部分:
firewall-cmd --zone=区域 --add-port=80/tcp --permanent firewall-cmd --zone=区域 --add-port=443/tcp --permanent
重新加载防火墙配置:
firewall-cmd --reload
yast2-firewall
你也可以使用 yast2-firewall 模块配置防火墙。
打开 YaST(有无图形界面均可):
yast
在图形界面下使用鼠标,在文本界面下按[↓]
移动到「安全和用户」,按[Tab]
切换列,按向[↓]
移动到「防火墙」,回车进入防火墙设置。你也可以使用以下命令直接打开 yast2-firewall 模块:
yast firewall
在「接口」页面确认当前使用的区域,在对应的区域页面将「http」和「https」服务添加到「允许」列表中,保存设置即可。
安装与配置
Apache HTTP 服务器
安装
官方软件源提供了 Apache HTTP 服务器的包,你可以使用 zypper 安装:
zypper install apache2
启动并配置开机启动 Apache HTTP 服务器:
systemctl start apache2 systemctl enable apache2
测试
apache2-example-pages 包提供了一个测试页面,你可以使用 zypper 安装:
zypper install apache2-example-pages
使用浏览器访问localhost(本地站点)或远程站点的 IP 地址,如果出现「It works!」字样说明 Apache HTTP 服务器运行正常。
管理模块
使用以下命令启用或禁用模块:
a2enmod 模块名 a2dismod 模块名
使用以下命令查看当前启用的模块:
a2enmod -l
部分模块被单独打包,你可以使用 zypper 搜索并安装这些模块:
zypper search 'apache2-mod*' zypper install 模块名
多处理模块(MPM)
openSUSE 提供了 Apache HTTP 服务器的三种多处理模块 prefork、worker 和 event。prefork 提供了更好的可靠性和与旧软件的兼容性,后两者则能提供更好的性能。
openSUSE 将多处理模块分别打包,请安装所需的多处理模块:
zypper install apache2-prefork zypper install apache2-worker zypper install apache2-event
如果安装了多个多处理模块,请编辑/etc/sysconfig/apache2的APACHE_MPM=""字段,在引号内填入要使用的多处理模块名称。编辑后请重启 Apache HTTP 服务器:
systemctl restart apache2
相关目录及文件
Apache HTTP 服务器的配置文件位于/etc/apache2,/etc/apache2/httpd.conf提供了该目录中文件的描述。
默认网站文件目录为/srv/www/htdocs。
MariaDB
安装
openSUSE 提供了 MariaDB,它是 MySQL 的分支和替代品,不再建议安装 MySQL。你可以使用 zypper 安装 MariaDB 及相关工具:
zypper install mariadb mariadb-tools
启动并配置开机启动 MariaDB:
systemctl start mariadb systemctl enable mariadb
配置
MariaDB 与 MySQL 兼容,安装后应当运行安全配置向导:
mysql_secure_installation
请遵循向导完成安全配置,这个向导也会为 MariaDB 的 root 创建密码。使用以下命令以 root 账户登录 MariaDB:
mysql -u root -p
接下来便可以用 SQL 语句管理数据库,如新建一个普通用户:
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
创建数据库:
CREATE DATABASE 数据库名;
给予普通用户该数据库的所有权限:
GRANT ALL PRIVILEGES ON 数据库名.* TO "用户名"@"主机名";
刷新权限:
FLUSH PRIVILEGES;
退出:
EXIT
相关目录及文件
MariaDB 主配置文件为/etc/my.cnf,额外配置文件可放置在/etc/my.cnf.d中。
PHP
安装
openSUSE 提供了 php7 的软件包,你可以使用 zypper 安装:
zypper install php7
一些 php 模块被单独打包,你可以使用 zypper 搜索与安装它们。
zypper search 'php7-*'
为了和 MariaDB 交互我们需要安装 php7-mysql 模块:
zypper install php7-mysql
与 Apache 集成
可用使用多种方式将 PHP 与 Apache 集成:
mod_php
mod_php 是一个 Apache 模块,你可用使用 zypper 安装:
zypper install apache2-mod_php7
启用该模块:
a2enmod php7
php-fpm
php-fpm 是一个 PHP FastCGI 进程管理器,使用该方式比起 mod_php 可以获得更好的性能。
安装 php-fpm:
zypper install php7-fpm
启动并配置开机启动 php-fpm:
systemctl start php-fpm systemctl enable php-fpm
php-fpm 需要 proxy 和 proxy_fcgi 两个 Apache 模块的支持,启用它们:
a2enmod proxy proxy_fcgi
默认情况下 php-fpm 监听 9000 端口,在 Apache 配置文件中添加以下内容:
<FilesMatch \.php$> setHandler "proxy:fcgi://127.0.0.1:9000" </FilesMatch>
建议在/etc/apache2/conf.d下新建一个文件或在虚拟主机文件中添加此内容。
配置后请重启 Apache HTTP 服务器:
systemctl restart apache2
测试
在默认网站文件目录/srv/www/htdocs下新建名为index.php的文件,内容如下:
<?php phpinfo(); ?>
通过浏览器访问https://localhost/index.php (本地站点)或https://IP地址/index.php(远程站点),若出现 PHP 信息页面说明配置正确。
由于该页面会显示服务器敏感信息,测试后请务必删除该文件以确保安全性:
rm /srv/www/htdocs/index.php
相关目录及文件
/etc/php7包含了大部分配置文件。
/etc/php7/fpm/php-fpm.conf.default 和 /etc/php7/fpm/php-fpm.d/www.conf.default记录了默认的 php-fpm 配置参数。
部署应用示例
PhpMyAdmin
接下来可以用命令行做,也可以用特权的 Dolphin 来做:
cd /srv/www/htdocs/phpMyAdmin sudo cp -r config.sample.inc.php config.inc.php sudo vi config.inc.php 按下键盘上的 "i" 键,进入输入模式 按方向键,向下,找到这里: $cfg['blowfish_secret'] = ‘这里输入密码’; 按 ":" 号,输入 wq 保存。
测试
打开浏览器,输入 localhost/phpMyAdmin,回车。使用用户名 root,和刚才设置的 phpMyAdmin 密码登陆。
搭建 Wordpress
先用 phpMyAdmin 建立一个数据库,点『数据库』,输入一个名字,点创建。
然后下载 Wordpress,解压,复制 wp-config-sample.php 为 wp-config.php
打开 wp-config.php,里面的『DB_NAME』输入刚才创建的数据库名字,『DB_USER』是你登陆 mysql 用的用户名,这里是 root,『DB_PASSWORD』是你登陆 mysql 用的密码,这里是 123456。保存。
把 wordpress 整个文件夹仍到 /srv/www/htdocs/ 里面去。
sudo cp -r wordpress /srv/www/htdocs/
打开浏览器,输入 localhost/wordpress/wp-admin/ 就进入了 wordpress 的安装页面,填写完基本信息点安装。
成功了! enjoy it!
常见问题
php_gettext 提示没有 mb_detect() 函数
你需要安装 php7-mbstring
sudo zypper in php7-mbstring
缺少 mysqli|mysql 扩展
你需要安装 php7-mysql
sudo zypper in php7-mysql
无法裁剪 (crop) 图片
你需要安装 php7-gd
sudo zypper in php7-gd