LAMP环境搭建

LAMP

学习目标

  • 配置基于 php5_module 模块的 LAMP 环境
  • 配置基于 php-fpm 和 proxy_fcgi_module 模块的 LAMP 环境
  • 安装 SCL 仓库中的 PHP 7.0
  • 安装配置 LAMP 应用
  • 配置 AWStats 实现虚拟主机访问日志分析统计

任务1:安装配置 LAMP 环境(1)

要求

基于 CentOS7 官方仓库和 EPEL 仓库配置 LAMP 环境

  • Aache2.4 + mpm_prefork_module + php5.4 + php5_module
  • MariaDB5.5

步骤

  1. 安装配置 MariaDB/MySQL 服务
  • 安装 mariadb 和 mariadb-server
  • 配置 MariaDB
    • 编辑主配置文件 /etc/my.cnf,在 [mysqld] 段里设置
      • character-set-server=utf8
      • collation-server=utf8_general_ci
      • max_connections = 50 (默认最大并发连接数为100)
    • 编辑主配置文件 /etc/my.cnf.d/client.cnf,在 [client] 段里设置
      • character-set-server=utf8
  • 启动 MariaDB 服务,并设置开机启动
  • 配置 MariaDB 服务的 root 用户口令
    • mysqladmin -u root password 'Med7ahBuu7ru2Wooyohg'
    • mysql_secure_installation
  • 安装 EPEL 仓库中的并获取更多的配置建议
  1. 安装配置 PHP
  • 安装 PHP 及相关模块
    yum install php
    php-{pdo,mcrypt,mbstring,intl,gd,pecl-{imagick,memcached,redis}
  • 检测安装的 PHP (cli) 版本
    php -v
  • 配置 PHP
    • 编辑主配置文件 /etc/php.ini,在 [PHP] 段里设置
      • 使用 zlib 库压缩输出并设置压缩级别为 1
      • 限制一个 PHP 脚本可能消耗的最大内存量为 256M
      • 为 POST 方法指定可接受的最大尺寸为 256M
      • 设置可上传文件的最大尺寸为 20M
    • 编辑主配置文件 /etc/php.ini,在 [Date] 段里设置
      • 为日期函数定义默认时区为 Asia/Shanghai
  1. 通过 Aapche 的 PHP 模块执行 PHP 脚本
  • 查看 Apche 的 PHP 模块 加载/配置 文件
    grep -v “^#” /etc/httpd/conf.modules.d/10-php.conf
    grep -v “^#” /etc/httpd/conf.d/php.conf
  • 检测 Apache 配置正确性并重新加载 Apache 配置
  1. 测试
  • 编写 PHP 测试脚本
    echo ‘<?php phpinfo()?>’ > /var/www/html/info.php
    echo ‘<?php phpinfo()?>’ > /srv/www/olabs.net/www/htdocs/info.php
  • 在客户端上测试
    elinks http://www.olabs.lan/info.php
    elinks http://www.olabs.net/info.php
  • 压力测试
    ab -n 2000 -c 100 http://www.olabs.net/info.php
  1. 使用 lynis -c 扫描整个系统,根据报告提示加固系统

参考

  • How To Install Linux, Apache, MySQL, PHP (LAMP) stack On CentOS 7
  • 超实用压力测试工具-ab工具
  • PHP 缓存
  • Easy Deployment of PHP Applications with Deployer
  • LAMPer 技能树

任务2:安装配置 LAMP 应用(1)

要求

安装配置

  • phpMyAdmin
  • dokuwiki (.htaccess)
  • h5ai

步骤

  1. 安装配置 phpMyAdmin
  • 安装 phpMyAdmin
  • 配置 phpMyAdmin
    • 修改 phpMyAdmin 的配置文件 /etc/phpMyAdmin/config.inc.php
      • 为 Cookies 认证重新设置加密口令
    • 修改 Apache 的配置文件 /etc/httpd/conf.d/phpMyAdmin.conf
      • 配置允许 192.168.56.0/24 访问
  • 检测 Apache 配置正确性并重新加载 Apache 服务的配置
  • 测试 phpMyAdmin
    • https://www.olabs.lan/phpmyadmin/
    • https://www.olabs.net/phpmyadmin/
  1. 安装配置 dokuwiki
  • 下载并部署 dokuwiki 站点内容
mkdir /srv/www/olabs.net/wiki/src
cd /srv/www/olabs.net/wiki/src
wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
tar xzf dokuwiki-stable.tgz
cd ..
rm -rf htdocs
mv src/dokuwiki-2017-02-19e htdocs
  • 在浏览器里执行安装脚本进行安装
    • http://wiki.olabs.net/install.php
    • 根据提示信息合理设置文件系统权限
    • 安装后删除 install.php 文件
  • 编辑 Wiki 页面
  • 配置伪静态访问
    • 编辑 /etc/httpd/vhosts.d/olabs.net.conf ,修改 wiki.olabs.net:443 的虚拟主机
      • 配置允许读取 /srv/www/olabs.net/wiki/htdocs/ 目录下的配置文件 .htaccess
    • 编辑 /srv/www/olabs.net/wiki/htdocs/conf/local.php 启用伪静态访问
      • echo "\$conf['userewrite'] = 1;" >> /srv/www/olabs.net/wiki/htdocs/conf/local.php
    • 修改
      • 复制默认发布的 .htaccess.dist 为 .htaccess
        • cp /srv/www/olabs.net/wiki/htdocs/.htaccess{.dist,}
      • 编辑 /srv/www/olabs.net/wiki/htdocs/.htaccess 使之适应本站
    • 测试伪静态访问
      • http://wiki.olabs.net/wiki/syntax
  1. 安装配置 h5ai
  • /srv/www/olabs.org/www/htdocs/download 目录安装配置 h5ai
  • 使访问 http://www.olabs.org/download 时的显示效果像 https://release.larsjung.de/

参考

  • https://www.dokuwiki.org/install
  • https://www.dokuwiki.org/rewrite
  • https://larsjung.de/h5ai/

任务3:安装配置 LAMP 环境(2)

要求

基于 CentOS7 官方仓库和 EPEL 仓库配置 LAMP 环境

  • Aache2.4 + mpm_envent_module + php5.4 + php-fpm + proxy_fcgi_module
  • MariaDB5.5

步骤

  1. 安装并启动 php-fpm
  • 删除用于 Apache 模块的 php
  • 安装 php-fpm
  • 开机/立即 启动 php-fpm 守护进程
  1. 查看并配置 php-fpm
  • 查看 php-fpm 版本
    php-fpm -v
  • 查看 php-fpm 进程
    ps -HO user -p pidof php-fpm
    lsof -i :9000
  • 查看 php-fpm 的主配置文件 /etc/php-fpm.conf
  • 查看 php-fpm 进程池配置文件 /etc/php-fpm.d/www.conf
  1. 配置 Apache
  • 配置 Apache 通过 proxy_fcgi_module 访问 php-fpm
    • 创建或编辑 /etc/httpd/conf.d/php.conf
      # Allow php to handle Multiviews
      AddType text/html .php

       # Add index.php to the list of files # that will be served as directory indexes.DirectoryIndex index.php# Enable the http authorization headers.SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1# Redirect the PHP scripts execution to the FPM backend.<FilesMatch \.php$>SetHandler "proxy:fcgi://127.0.0.1:9000"</FilesMatch># Prevent .user.ini files from being viewed by Web clients.<Files ".user.ini">Require all denied</Files>
      
  • 配置 Apache 启用 mpm_envent_module
    • 编辑 /etc/httpd/conf.modules.d/10-php.conf
      # LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
      # LoadModule mpm_worker_module modules/mod_mpm_worker.so
      LoadModule mpm_event_module modules/mod_mpm_event.so
  • 检测 Apache 配置正确性并重新加载 Apache 服务的配置
  1. 测试 Apache 是否启用了 FPM/FastCGI
    elinks --dump http://localhost/info.php |grep ‘Server API’
    elinks --dump http://www.olabs.lan/info.php |grep ‘Server API’
    elinks --dump http://www.olabs.net/info.php |grep ‘Server API’
  2. 压力测试
    ab -n 2000 -c 100 http://www.olabs.net/info.php

参考

  • PHP + PHP-FPM
  • PHP Configuration Tips

任务4:安装配置 LAMP 环境(3)

要求

基于 SCL 仓库配置 LAMP 环境

  • Aache2.4 + mpm_envent_module + php70 + php-fpm + proxy_fcgi_module
  • MariaDB5.5

步骤

  1. 安装配置 SCL 仓库
    yum -y install centos-release-scl scl-utils
    rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
    yum repolist |grep sclo
    yum makecache
  2. 安装 php70 及相关模块
    yum -y install rh-php70
    rh-php70-php-{pdo,mcrypt,mbstring,intl,gd,pecl-{imagick,memcached,redis},fpm}
    scl -l
  3. 切换 php-fpm 到新版本
    systemctl stop php-fpm
    systemctl disable php-fpm
    systemctl start rh-php70-php-fpm
    systemctl enable rh-php70-php-fpm
  4. 测试
    elinks --dump http://localhost/info.php |egrep ‘Server API|PHP Version’

在命令行上切换使用 SCL 仓库的 PHP

  • 检测原来安装的 PHP 版本
    which php ; php -v
    which php-fpm ; php-fpm -v
  • 切换新 Shell 使用 SCL 仓库的 PHP
    scl -l
    scl enable rh-php70 bash
  • 检测新安装的 PHP 版本
    which php ; php -v
    which php-fpm ; php-fpm -v
  • 退出新 shell,重新查看 PHP 版本
    exit
    which php ; php -v
    which php-fpm ; php-fpm -v

在命令行上默认使用 SCL 仓库的 PHP

cat >/etc/profile.d/rh-php70.sh <<_END
#!/bin/bashsource /opt/rh/rh-php70/enable
export X_SCLS="\$(scl enable rh-php70 'echo \$X_SCLS')"
_END

配置 SCL 仓库的 PHP/PHP-FPM

  • 配置文件基于 /etc/opt/rh/rh-php70/ 目录
  • php 配置文件: php.ini , php.d/*.ini
  • php-fpm 配置文件: php-fpm.conf , php-fpm.d/*.conf

参考

  • SCL 仓库
  • https://wiki.centos.org/zh/AdditionalResources/Repositories/SCL
  • https://wiki.centos.org/SpecialInterestGroup/SCLo/CollectionsList
  • Release Notes for Red Hat Software Collections 3.0
  • Software Collections
  • PHP Configuration Tips
  • http://phpversions.info/operating-systems/

练习

  • 安装并启用 SCL 仓库中的 Mariadb v10.2
    yum search rh-mariadb102

任务5:使用 AWStats 实现访问日志分析统计

要求

为 www.olabs.{net,org} 虚拟主机配置 AWStats 实现访问日志分析统计

步骤

  1. 安装 awstats
  2. 配置 awstats,为每个虚拟主机创建各自的配置文件
  • /etc/awstats/awstats.www.olabs.net.conf
  • /etc/awstats/awstats.www.olabs.org.conf
  1. 立即更新指定配置文件的 AWStats 的统计数据库
  • /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=www.olabs.net
  • /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=www.olabs.org
  1. 为了通过 CGI 访问查看 AWStats 的 WUI 配置 Apache
  • 编辑被 Apache 主配置文件包含的 /etc/httpd/conf.d/awstats.conf
  • 在适当位置添加 HTTP 摘要认证配置,可以使用 第14章任务4 创建的摘要认证口令文件 /etc/httpd/.dpasswd
  1. 检测 Apache 配置正确性并重新加载 Apache 配置
  2. 通过浏览器访问 AWStats,并测试摘要认证
    • http://www.olabs.net/awstats/awstats.pl
    • http://www.olabs.net/awstats/awstats.pl?config=www.olabs.net
    • http://www.olabs.net/awstats/awstats.pl?config=www.olabs.org

参考

  • Access Log Analyzer : AWstats

任务6*:安装配置 LAMP 应用(2)

要求

  • 为 http://blog.olabs.org 安装配置一个基于 Laravel 框架的应用

步骤

  1. 安装配置 composer
  • 安装 composer

     # curl -sS https://getcomposer.org/installer | php# mv composer.phar /usr/local/bin/composer
    
  • 配置 composer 全局使用的镜像站点

     # composer config -g repo.packagist composer \https://packagist.phpcomposer.com# tree -F -L 2 ~olabsorg
    
  1. 安装 laravel
    # su - olabsorg

    $ scl enable rh-php70 bash
    $ composer create-project  laravel/laravel blog --prefer-dist "5.5.*"
    
  2. 配置并测试 blog.olabs.org 虚拟主机

  • 修改 /etc/httpd/vhosts.d/olabs.org.conf
<VirtualHost *:80>ServerAdmin root@localhostServerName blog.olabs.org:80DocumentRoot /srv/www/olabs.org/blog/public/ErrorLog  /srv/www/olabs.org/blog/logs/error_logCustomLog /srv/www/olabs.org/blog/logs/access_log combined<Directory /srv/www/olabs.org/blog/public/>Options +FollowSymLinksRequire all grantedRewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^ index.php [L]</Directory>
</VirtualHost>
  • 检测 Apache 配置正确性并重新加载 Apache 服务的配置
  • 配置 blog.olabs.org 的域名解析 (bind 或 /etc/hosts)
  • 测试 http://blog.olabs.org
  1. 安装配置基于 laravel 的后台生成工具 Voyager
  • 使用 composer 安装 Voyager 所需的 PHP 软件包
  • 创建 BLOG 所需的 mysql 数据库
  • 配置项目下的环境文件 .env
  • 使用 artisan 执行 voyager 的安装并填充测试数据
  • 重新设置管理员 admin 的口令和 Email
  • 在浏览器中访问 BLOG 的后台管理界面 http://blog.olabs.org/admin
  1. 基于 Voyager 后台编写代码,创建 BLOG 前台 http://blog.olabs.org

参考

  • https://d.laravel-china.org/docs/5.5/installation
  • https://github.com/the-control-group/voyager
  • https://startbootstrap.com/template-categories/blogs/

** 练习**

  • 安装 Grav 或 BookStack

任务7*:Memcached 和 Redis

要求

  • 安装、配置并启动 Memcached
  • 安装、配置并启动 Redis

参考

  • Memcached : Install
  • Memcached : Use it on PHP
  • Redis : Install
  • Redis : Use it on PHP

任务8*:使用 mylvmbackup 实现 MySQL 数据库的物理备份

要求

  • 安装 EPEL 仓库中的 mylvmbackup
  • 配置 mylvmbackup
    • /etc/mylvmbackup.conf
  • 安排每日 1点 执行的 cron 任务
    • /etc/cron.d/mylvmbackup

参考

  • http://www.lenzg.net/mylvmbackup/
  • man mylvmbackup

任务9*:CentOS 6 和 Debian 9 的 LAMP 环境配置

要求

  • 在 c6-v1 容器上配置 Apache2.4+php7.0+php-fpm+mpm_envent_module
  • 在 d9-v1 容器上配置 Apache2.4+php7.0+php-fpm+mpm_envent_module

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/2370.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】模板进阶—非类型模板参数、模板特化及模板的分离编译

&#x1f680; 作者简介&#xff1a;一名在后端领域学习&#xff0c;并渴望能够学有所成的追梦人。 &#x1f681; 个人主页&#xff1a;不 良 &#x1f525; 系列专栏&#xff1a;&#x1f6f8;C &#x1f6f9;Linux &#x1f4d5; 学习格言&#xff1a;博观而约取&#xff0…

什么是云应用程序?

应用程序优先的云服务的日益普及导致应用程序与云服务的融合程度比以前更深。应用程序和云之间的运行时边界正在从虚拟机转移到容器和函数。集成边界正在从仅访问数据库和消息代理转向应用程序的机械部分混合并在云中运行的边界。在这个最终架构中&#xff0c;应用程序是“云绑…

pwm呼吸灯

文章目录 一、呼吸灯二、代码实现三、引脚分配 一、呼吸灯 呼吸灯是指灯光在微电脑的控制之下完成由亮到暗的逐渐变化&#xff0c;使用开发板上的四个led灯实现1s间隔的呼吸灯。 二、代码实现 c module pwm_led( input clk ,input rst_n ,output reg [3:0] led ); …

LLM资料

大语言模型(LLM)课程、论文与资料推荐 现在CV和NLP越来越紧密&#xff0c;AIGC、多模态、大模型越来越火&#xff0c;尤其是在LLM(代表成果ChatGPT)的席卷之下。所以Amusi建议&#xff1a;CVer的技能树中要把NLP或者说LLM&#xff08;至少主流的工作要follow&#xff09;加上。…

photoshop制作法线和凹凸贴图

做个选区 Ctrlj 法线贴图 生成凹凸贴图

Spring框架的创建和使用

目录 Spring框架概述 什么是Spring框架 什么是容器 什么是IoC容器 Spring的核心功能 IoC容器和普通程序开发的区别 DI Spring项目的创建和使用 Spring项目创建 创建一个maven项目 添加Spring框架支持 添加一个启动类 Spring项目的使用 存储Bean对象 获取并使用B…

应用级监控方案Spring Boot Admin

1.简介 Spring Boot Admin为项目常用的监控方式&#xff0c;可以动态的监控服务是否运行和运行的参数&#xff0c;如类的调用情况、流量等。其中分为server与client&#xff1a; server&#xff1a; 提供展示UI与监控服务。client&#xff1a;加入server&#xff0c;被监控的…

dataframe基础操作

目录 用法&#xff1a;DataFrame.drop(labelsNone,axis0, indexNone, columnsNone, inplaceFalse) 参数说明&#xff1a; labels 就是要删除的行列的名字&#xff0c;用列表给定 axis 默认为0&#xff0c;指删除行&#xff0c;因此删除columns时要指定axis1&#xff1b; index…

【Git 快速了解】

Git简单了解 一、控制系统 分布式版本控制系统 git 集中式版本控制系统 svn cvs二、安装Git sudo apt install git sudo apt search git 三、配置git环境 参数&#xff1a;–globle :长命令表示配置整个git环境 git config --global user.name “你的用户名” git config -…

torch中 contiguous(), .view(), .reshape(), .permute(), .transpose()的区别与联系

文章目录 1、张量的数据存储2、张量的连续性&#xff1a;contiguous3、.view() 和 .reshape()4、.permute() 和 .transpose()5、总结 1、张量的数据存储 在pytorch中&#xff0c;张量的存储实际上分为两个部分&#xff0c;一部分是张量的头信息&#xff0c;包括张量的shape&am…

随手笔记——Ceres 求解曲线拟合问题

这里写目录标题 说明步骤源代码 说明 Google Ceres 是一个广泛使用的最小二乘问题求解库。在 Ceres 中&#xff0c;只需按照一定步骤定义待解的优化问题&#xff0c;然后交给求解器计算即可。 步骤 定义每个参数块。 参数块通常为平凡的向量&#xff0c;但是在 SLAM 里也可以…

vue3,elementPlus和自己封装,点击 新增添加表单,删除表单,提交数据

ElementPlus下的form也有新增表单 如果你写H5等没找到合适的 自己也可以进行封装 实现3个代码讲解:1&#xff1a;ElementPlus的代码 2&#xff1a;自己书写的代码 3&#xff1a;自己把2的代码进行封装 1&#xff1a;ElementPlus的运行效果 点击提交 1&#xff1a;ElementPlus…

BrowserRouter刷新404解决方案

1、本地开发环境 在js脚本命令里加上 --history-api-fallback "scripts": {"serve": "webpack serve --config webpack.dev.js --history-api-fallback" }2、生产环境&#xff0c;可以修改 nglnx 配置&#xff1a; server {listen XXXX; //端口号…

Python教程(3)——python开发工具vscode的下载与安装

Python的开发工具有很多款&#xff0c;很多都是非常好用的&#xff0c;其中vscode作为其中一款Python的开发工具&#xff0c;是非常轻量级的&#xff0c;今天我们来介绍一下vs code的下载与安装。 vscode的下载与安装 首先需要到vscode的官网&#xff0c;这个谷歌或者百度一下…

Windows上传ios dsym到Bugly

首先下载符号表工具腾讯 Bugly SDK下载 (qq.com) dsym 可以在 wIndow-Organizer-找到版本 右键show In Finder buglyqq-upload-symbol.jar 在上面得文件同级目录下 进入cmd 输入一下命令 需要修改成你自己得信息 java -jar buglyqq-upload-symbol.jar -appid d83b04b3c3 -ap…

hadoop分布式系统复习题 选择题

1、以下哪一项不属于 Hadoop 可以运行的模式&#xff1f; 互联模式 2、下面哪个程序负责 HDFS 数据存储&#xff1f; Datanode 3、HDFS 中的 block 默认保存__3 _份。 4、配置Hadoop时&#xff0c;JAVA_HOME包含在哪一个配置文件中 hadoop-env.sh 。 5、 Hadoop fs中的-get和-p…

VSCode 注释后光标快速定位下一行

VSCode默认用 Ctrl / 注释一行时&#xff0c;光标停留在该行中。下面介绍如何注释后&#xff0c;光标会自动移动到下一行。 1.【View】 ->【Extensions】->【查找并安装Multi-command 扩展】 2.【File 】 -> 【Preferences 】->【Keyboard Shortcuts】&#xff08…

【人工智能】xAI——“X宇宙”又增添了一位新成员

个人主页&#xff1a;【&#x1f60a;个人主页】 &#x1f31e;热爱编程&#xff0c;热爱生活&#x1f31e; 文章目录 前言xAI团队成员做解开宇宙本质的AI 前言 有人问他&#xff0c;xAI公司是干啥的&#xff1f;马斯克的回答引用了其偶像、科幻作家道格拉斯・亚当斯的话&…

Python实现将pdf,docx,xls,doc,wps,zip,xlsx,ofd链接下载并将文件保存到本地

前言 本文是该专栏的第31篇,后面会持续分享python的各种干货知识,值得关注。 在工作上,尤其是在处理爬虫项目中,会遇到这样的需求。访问某个网页或者在采集某个页面的时候,正文部分含有docx,或pdf,或xls,或doc,或wps,或ofd,或xlsx,或zip等链接。需要你使用python自…

写给前端工程师的Dart教程(3):类的基础与命名构造函数

题解 | #删除链表峰值# 更多关于算法题解、软件开发面经、机器学习算法面经、各企业面试问题记录&#xff0c;关注Fintech砖&#xff0c;持续更新中。https://www.nowcoder.com/use 题解 | #牛群的重新分组# 链表模拟题 知识点链表模拟题意分析以k个结点为一组翻转链表, 剩下…