CentOS7下安装部署LAMP环境

(1)配置概要:
  1、 172.16.100.31主机运行httpd+php服务(php为模块工作模式)
  配置两台虚拟主机:wordpress个人博客系统、PHPmyadmin远程控制mysql

2、172.16.100.31主机运行mariadb服务(mysql)

(2)配置流程:
  首先配置172.16.100.31主机:http服务           
  1、安装程序:
[[email protected]‘s linux ~]# yum install httpd php php-mysql php-mbstring
 
========================================================================================
 Package              Arch            Version                      Repository    Size
========================================================================================
Installing:
 httpd                x86_64          2.4.6-40.el7.CentOS          base          2.7 M
 php                  x86_64          5.4.16-36.el7_1              base          1.4 M
 php-mbstring          x86_64          5.4.16-36.el7_1              base          503 k
 php-mysql            x86_64          5.4.16-36.el7_1              base          99 k
 
Transaction Summary
=======================================================================================

httpd:提供web服务
php:安装后自动编译为httpd的模块,用于处理动态资源php脚本
php-mbstring:此程序包为phpMyAdmin远程控制mysql所必须的
php-mysql:php驱动mysql的库文件程序包

2、服务配置

包都安装完成之后,进入下一步的配置阶段:

(1)添加虚拟主机:(基于FQDN)
  虚拟主机有三种配置方式:一种是基于不同ip,相同端口(80),二是相同IP不同端口,三是同一IP不同主机名(FQDN),不管何种配置方式,最后解析到的主机只有一台,但是在请求报文首部信息会有不同!以下,仅演示基于FQDN的配置方式

编辑:/etc/httpd/conf.d/vhost1.conf文件
[[email protected]‘s linux ~]# vim /etc/httpd/conf.d/vhost1.conf

[[email protected]‘s linux ~]# vim /etc/httpd/conf.d/vhost2.conf 
# 添加如下内容,基于FQDN的虚拟主机配置
<VirtualHost 172.16.100.31:80>  # 固定语法 <VirtualHost ip:port>可忽略大小写
    ServerName www1.wufeng.com # 很重要,基于FQDN的虚拟主机必须要有主机名 
    DocumentRoot "/data/vhost/www1" # 虚拟主机根目录,可指定路径

CustomLog logs/www1-access_log combined #指定日志文件路径以及名字
            <Directory "/data/vhost/www1">  # 对虚拟主机根目录的权限设置
                     Options None        
                    AllowOverride None     
                    require all granted    # 目录的权限设置
            </Directory>               
</VirtualHost>
 
<VirtualHost 172.16.100.31:80>
        ServerName www2.wufeng.com
        DocumentRoot "/data/vhost/www2"
        CustomLog logs/www2-access_log combined
        <Directory "/data/vhost/www2">
                Options None
                AllowOverride None
                Require all granted
        </Directory>
</VirtualHost>

Options:为个目录的选项,可以指定多个特性
    如:Index,启动资源索引,其作用是在用户在访问指定的URL不存在时,返回web资源索引,此选项
非常危险,不建议启用,否则源码则会web源码暴露,后果很严重

访问权限设定:
Require all Granted/deny, Granted表示允许,all表示所有,deny表示拒绝
    需要注意的是:CentOS7是默认拒绝所有主机访问DocumentRoot的资源,所以,配置虚拟主机必须要配置此先参数

(2)为虚拟主机创建配置文件中定义的资源目录并
[[email protected]‘s linux ~]# mkdir   -pv /data/vhost/www{1,2}

(3)添加测试资源
[[email protected]‘s linux ~]# vim /data/vhost/www1/index.php
# 前面这段是测试php与mysql连通性的PHP代码
<?php
    $conn = mysql_connect(‘172.16.100.31‘,‘admin‘,‘admin‘); # ip填写mysql主机ip
    if ($conn)                                          # 用户为mysql所授权的用户,密码空
        echo "DATABASE Connet OK";
    else
        echo "DATABASE Connet Failure";
?>
# 测试php是否正常工作的php代码
<?php
    phpinfo() #此函数调用会显示php的详细信息
?>

(4)配置httpd主配置文件
编辑:/etc/httpd/conf/httpd.conf
[[email protected]‘s linux ~]# vim /etc/httpd/conf/httpd.conf
# 找到 DocumentRoot "/var/www/html" ,#将其注释掉,一般使用虚拟机都要注释掉,避免冲突
#DocumentRoot "/var/www/html"
 
# 添加php主页索引
DirectoryIndex index.php index.html # 将index.php添加在前头,这样就会默认访问此类资源索引
 
# 取消服务器名称注释

(5)启动服务,测试是否正常
# 检测配置文件语法有没有错误
[[email protected]‘s linux ~]# httpd -t
# 语法无误启动服务
[[email protected]‘s linux ~]# systemctl start httpd.service

打开网页查看服务是否正常

http服务测试正常,php模块也能正常工作,但是,mysql的连接是失败,因为我们还mysql的服务器还没有配置

(5)获取wordpress和phpmyadmin
wo是在局域网中ftp服务器中下载的
wordpress配置:

# 下载并解压至/data/vhost/www1
# cd 到wordpress目录 ,配置文件如下
[[email protected]‘s linux wordpress]# ls
index.php        wp-blog-header.php    wp-cron.php        wp-mail.php
license.txt      wp-comments-post.php  wp-includes        wp-settings.php
readme.html      wp-links-opml.php    wp-signup.php
wp-activate.php  wp-config-sample.php  wp-load.php        wp-trackback.php
wp-admin        wp-content            wp-login.php      xmlrpc.php
 
# 复制配置文件以上的 wp-config-sample.php 为 wp-config.php
[[email protected]‘s linux wordpress]# cp wp-config-sample.php  wp-config.php
 
# 编辑配置文件
[[email protected]‘s linux wordpress]# vim wp-config.php
// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
/** WordPress数据库的名称 */
define(‘DB_NAME‘, ‘wpdb‘);  # 此填写mysql所要授权数据库的名字(后面会配置)
 
/** MySQL数据库用户名 */
 
define(‘DB_USER‘, ‘wpuser‘); # 填写数据库的用户名
 
/** MySQL数据库密码 */
define(‘DB_PASSWORD‘, ‘wppasswd‘); # 填写数据的密码
 
/** MySQL主机 */
define(‘DB_HOST‘, ‘172.16.100.31‘); # 填写mysql主机的ip
 
/** 创建数据表时默认的文字编码 */
define(‘DB_CHARSET‘, ‘utf8‘);
 
/** 数据库整理类型。如不确定请勿更改 */
define(‘DB_COLLATE‘, ‘‘);

phpmyadmin配置:
phpMyAdmin-4.4.14.1-all-languages.zip# 将包下载并解压至/data/vhost/www1
# cd 到 文件目录
# 创建符号连接
[[email protected]‘s linux htdoc]# ln -s phpMyAdmin-4.4.14.1-all-languages myadmin
[[email protected]‘s linux htdoc]# ls
index.php  phpMyAdmin-4.4.14.1-all-languages 
myadmin    phpMyAdmin-4.4.14.1-all-languages.zip 
 
#cd 至myadmin 目录里面,修改配置文件
[[email protected]‘s linux htdoc]# cp config.sample.inc.php config.inc.php
 
#编辑配置文件
[[email protected]‘s linux htdoc]# vim config.inc.php
$cfg[‘blowfish_secret‘] = ‘o71mI9rimj6syc00fT3g‘; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
                #单引号填写随机密码,可使用openssl rand -base64 15(密码长度)生成

#也可以用md5生成  :r! echo admin | md5sum
                         
/*
 * Servers configuration
 */
$i = 0;
 
/*
 * First server
 */
$i++;
/* Authentication type */
$cfg[‘Servers‘][$i][‘auth_type‘] = ‘cookie‘;
/* Server parameters */
$cfg[‘Servers‘][$i][‘host‘] = ‘172.16.100.31‘;  # 数据库主机ip 
$cfg[‘Servers‘][$i][‘connect_type‘] = ‘tcp‘;
$cfg[‘Servers‘][$i][‘compress‘] = false;
$cfg[‘Servers‘][$i][‘AllowNoPassword‘] = false;

--------------------------------------------------------------------------------
172.16.100.31主机配置:mysql服务

(1)yum安装程序
[[email protected]‘s linux ~]# yum install mariadb-server
 
========================================================================================
Installing:
 mariadb-server              x86_64      1:5.5.44-2.el7.centos        base      11 M
Installing for dependencies:
 mariadb                      x86_64      1:5.5.44-2.el7.centos        base      8.9 M
 perl-Compress-Raw-Bzip2      x86_64      2.061-3.el7                  base      32 k
 perl-Compress-Raw-Zlib      x86_64      1:2.061-4.el7                base      57 k
 perl-DBD-MySQL              x86_64      4.023-5.el7                  base      140 k
 perl-DBI                    x86_64      1.627-4.el7                  base      802 k
 perl-IO-Compress            noarch      2.061-2.el7                  base      260 k
 perl-Net-Daemon              noarch      0.48-5.el7                    base      51 k
 perl-PlRPC                  noarch      0.2020-14.el7                base      36 k
 
Transaction Summary
========================================================================================

一大推依赖包,只要有yum在且yum源配置没有问题,可以轻松解决

(2)启动服务,执行安全安装操作
[[email protected]‘s linux ~]# systemctl start mariadb
# 查看监听端口,3306为mariaDB的默认监听端口
[[email protected]‘s linux ~]# ss -tnl
State      Recv-Q Send-Q Local Address:Port              Peer Address:Port             
LISTEN    0      50              *:3306                        *:*                 
LISTEN    0      128              *:22                          *:*                 
LISTEN    0      128            :::22                          :::*   
 
执行安全安装操作 
[[email protected]‘s linux ~]# mysql_secure_installation 
 
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
 
Set root password? [Y/n] y  # 设置管理员登陆秘密(此密码和linux系统的root没关系)
 
New password: 
Re-enter new password:    # 输入密码即可
Password updated successfully!
Reloading privilege tables..
 ... Success!
 
Remove anonymous users? [Y/n] y  # 是否移除匿名用户(在执行安全安装之前不需要密码登陆)
 ... Success!                    # 允许匿名登陆时很危险的,建议移除
 
Disallow root login remotely? [Y/n] n  # 是否不允许管理员账号远程登陆,一般情况下建议不允许
 ... skipping.                       
 
Remove test database and access to it? [Y/n] y # 移除测试数据库
 - Dropping test database... 
 ... Success!
 - Removing privileges on test database...
 ... Success!
 
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
 
Reload privilege tables now? [Y/n] y    # 重载权限表
 ... Success!
 
Cleaning up...
 
All done!  If you‘ve completed all of the above steps, your MariaDB
installation should now be secure.
 
Thanks for using MariaDB!

强烈建议在mariaDB安装完成后执行安全安装操作,这样可以使得数据库更安全

(3)创建所需数据库并授权

[[email protected]‘s linux ~]# mysql -uroot -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 66
Server version: 5.5.44-MariaDB MariaDB Server
 
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
 
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
 
MariaDB [(none)]> CREATE DATABASE wpdb; # 创建wordpress的数据库
Query OK, 1 row affected (0.02 sec)   
 
# 授权wordpress数据库

# 创建数据名字

MariaDB [(none)]> GRANT ALL ON wpdb.* TO ‘wpuser‘@‘172.16.%.%‘ IDENTIFIED BY ‘wppass‘;

然后建立这个数据库

MariaDB [(none)]> CREATE DATABASE wpdb;

(4)支持所有配置基本完毕:验证结果
 1、验证数据库联通

2、查看wordpress是否正常

最后补充一下:             
phpMyadmin常见错误:
    1.缺少mbstring插件
    yum 安装php-mbstring即可

2.丢失session目录
   一般 在/var/lib/php/session ,没有则创建即可

时间: 2024-12-24 17:05:06

CentOS7下安装部署LAMP环境的相关文章

Centos7最小化安装下安装,编译lamp环境

centos7默认的php是5.5,mysql已经变为mariadb,如果想要自定义的配置,需要自己手动来编译配置.以下步骤在公司服务器上已经正常操作过. 1.安装centos7选择基本安装,配置完网络后首先要先关闭firewall: 停止firewall # systemctl stop firewalld.service 禁止firewall开机启动 # systemctl disable firewalld.service 2.安装iptables防火墙 yum方式安装iptables #

centos7下安装Java运行环境

目前最新发布的Java是JDK13版本,但大部分公司Java运行的还是jdk8,jdk8版本本身也在持续更新中,这里安装部署Jdk8. oracle官网下载jdk8的安装包,下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html jdk包下载地址(需要注册登录oracle才行):https://download.oracle.com/otn/java/jdk/8u241-b

centos7下安装部署tensorflow GPU 版本

系统环境:centos7 1. 安装 Python 2.7 # yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc gcc-c++ make # download and extract Python 2.7 su hdfs cd  ~/Downloads curl -O https://www.python.org/ftp/pytho

Centos7下安装部署MXNET

Centos下安装MXNET(类似于Amazon Linux下安装MXNET),参考官方文档http://mxnet.io/get_started/setup.html#prerequisites, 安装步骤如下: ###################################################################### # This script installs MXNet for Python along with all required depende

CentOS7下安装配置LAMP详细教程

一. 关闭CentOS7防火墙和SELinux      1.关闭CentOS7防火墙 systemctl stop firewalld.service#停止firewall systemctl disable firewalld.service#禁止firewall开机启动      2.关闭SElinux安全系统 vim /etc/selinux/config 将SELINUX=enforcing改为SELINUX=disabled 重启CentOS      二. yum安装gcc和gcc

Centos7下安装部署Zabbix3.4

主要参考官方文档: https://www.zabbix.com/documentation/3.4/zh/manual/installation/install_from_packages 一.系统基本配置 1.配置IP地址 1)编辑 /etc/sysconfig/network-scripts/ifcfg-eth0文档,修改成如下内容: DEVICE=eth0 ONBOOT=yes BOOTPROTO=none IPADDR=172.17.100.211 NETMASK=255.255.25

linux centos7 下安装 php开发环境 (初学)

1. 安装apache yum install httpd httpd-develservice httpd start 启动service httpd stop 停止service httpd restart 重启service httpd status 状态 chkconfig httpd on 将apache 设置为开机启动项2.卸载apache service httpd stop 停止 rpm -qa|grep httpd   列出相关程序包 rpm -e 程序包名 卸载相关程序包 3

CentOS7.X安装部署mysql5.7主从环境

生产搭建环境:操作系统:CentOS7.5内存大小:32GB硬盘:500G主库IP:192.168.8.129 hostname:master从库IP:192.168.8.130 hostname:slave 涉及主从都需要执行的地方,文中只写主库的操作指使,从库请自觉执行相同的命令 目录:1.环境准备与清理2.参数调优3.安装部署 1.系统初始化1.1.1. 主从库环境关闭selinux [[email protected]]# sed -i 's/SELINUX=enforcing/SELI

Linux环境下安装部署AWStats日志分析系统实例

AWStats是使用Perl语言开发的一款开放性日志分析系统,可分析Apache网站服务器的访问日志,还可以用来分析Samba.Vsftpd.IIS等日志信息.       此文章主要讲解如何在linux系统下安装部署关于对Apache网站服务站日志分析的AWStats. 实验步骤一,安装部署AWStats分析软件. 一,安装AWStats软件包. 直接将其解压到/usr/local/awstats目录下即可完成安装. 使用命令:mkdir -p /usr/local/awstats tar z